Rename and clean up MapleCharacter
This commit is contained in:
@@ -21,6 +21,7 @@
|
||||
*/
|
||||
package server;
|
||||
|
||||
import client.Character;
|
||||
import client.*;
|
||||
import client.autoban.AutobanFactory;
|
||||
import client.inventory.*;
|
||||
@@ -1580,7 +1581,7 @@ public class MapleItemInformationProvider {
|
||||
return false;
|
||||
}
|
||||
|
||||
public Collection<Item> canWearEquipment(MapleCharacter chr, Collection<Item> items) {
|
||||
public Collection<Item> canWearEquipment(Character chr, Collection<Item> items) {
|
||||
Inventory inv = chr.getInventory(InventoryType.EQUIPPED);
|
||||
if (inv.checked()) {
|
||||
return items;
|
||||
@@ -1656,7 +1657,7 @@ public class MapleItemInformationProvider {
|
||||
return itemz;
|
||||
}
|
||||
|
||||
public boolean canWearEquipment(MapleCharacter chr, Equip equip, int dst) {
|
||||
public boolean canWearEquipment(Character chr, Equip equip, int dst) {
|
||||
int id = equip.getItemId();
|
||||
|
||||
if(ItemConstants.isWeddingRing(id) && chr.hasJustMarried()) {
|
||||
@@ -2071,7 +2072,7 @@ public class MapleItemInformationProvider {
|
||||
return list;
|
||||
}
|
||||
|
||||
private boolean canUseSkillBook(MapleCharacter player, Integer skillBookId) {
|
||||
private boolean canUseSkillBook(Character player, Integer skillBookId) {
|
||||
Map<String, Integer> skilldata = getSkillStats(skillBookId, player.getJob().getId());
|
||||
if(skilldata == null || skilldata.get("skillid") == 0) return false;
|
||||
|
||||
@@ -2079,7 +2080,7 @@ public class MapleItemInformationProvider {
|
||||
return (skilldata.get("skillid") != 0 && ((player.getSkillLevel(skill2) >= skilldata.get("reqSkillLevel") || skilldata.get("reqSkillLevel") == 0) && player.getMasterLevel(skill2) < skilldata.get("masterLevel")));
|
||||
}
|
||||
|
||||
public List<Integer> usableMasteryBooks(MapleCharacter player) {
|
||||
public List<Integer> usableMasteryBooks(Character player) {
|
||||
List<Integer> masterybook = new LinkedList<>();
|
||||
for(Integer i = 2290000; i <= 2290139; i++) {
|
||||
if(canUseSkillBook(player, i)) {
|
||||
@@ -2090,7 +2091,7 @@ public class MapleItemInformationProvider {
|
||||
return masterybook;
|
||||
}
|
||||
|
||||
public List<Integer> usableSkillBooks(MapleCharacter player) {
|
||||
public List<Integer> usableSkillBooks(Character player) {
|
||||
List<Integer> skillbook = new LinkedList<>();
|
||||
for(Integer i = 2280000; i <= 2280019; i++) {
|
||||
if(canUseSkillBook(player, i)) {
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
*/
|
||||
package server;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import client.MapleClient;
|
||||
import client.inventory.Inventory;
|
||||
import client.inventory.InventoryType;
|
||||
@@ -102,7 +102,7 @@ public class MapleMarriage extends EventInstanceManager {
|
||||
}
|
||||
}
|
||||
|
||||
public Boolean isMarriageGroom(MapleCharacter chr) {
|
||||
public Boolean isMarriageGroom(Character chr) {
|
||||
Boolean groom = null;
|
||||
try {
|
||||
int groomid = this.getIntProperty("groomId"), brideid = this.getIntProperty("brideId");
|
||||
@@ -116,7 +116,7 @@ public class MapleMarriage extends EventInstanceManager {
|
||||
return groom;
|
||||
}
|
||||
|
||||
public static boolean claimGiftItems(MapleClient c, MapleCharacter chr) {
|
||||
public static boolean claimGiftItems(MapleClient c, Character chr) {
|
||||
List<Item> gifts = loadGiftItemsFromDb(c, chr.getId());
|
||||
if (Inventory.checkSpot(chr, gifts)) {
|
||||
try (Connection con = DatabaseConnection.getConnection()) {
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
*/
|
||||
package server;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import provider.MapleData;
|
||||
import provider.MapleDataProvider;
|
||||
import provider.MapleDataProviderFactory;
|
||||
@@ -266,7 +266,7 @@ public class MapleSkillbookInformationProvider {
|
||||
return sbe != null ? sbe : SkillBookEntry.UNAVAILABLE;
|
||||
}
|
||||
|
||||
public static List<Integer> getTeachableSkills(MapleCharacter chr) {
|
||||
public static List<Integer> getTeachableSkills(Character chr) {
|
||||
List<Integer> list = new ArrayList<>();
|
||||
|
||||
for (Integer book : foundSkillbooks.keySet()) {
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
*/
|
||||
package server;
|
||||
|
||||
import client.Character;
|
||||
import client.*;
|
||||
import client.inventory.Inventory;
|
||||
import client.inventory.InventoryType;
|
||||
@@ -123,7 +124,7 @@ public class MapleStatEffect {
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean isActive(MapleCharacter applyto) {
|
||||
public boolean isActive(Character applyto) {
|
||||
return isEffectActive(applyto.getMapId(), applyto.getPartyMembersOnSameMap().size() > 1);
|
||||
}
|
||||
|
||||
@@ -812,7 +813,7 @@ public class MapleStatEffect {
|
||||
* @param obj
|
||||
* @param attack damage done by the skill
|
||||
*/
|
||||
public void applyPassive(MapleCharacter applyto, MapleMapObject obj, int attack) {
|
||||
public void applyPassive(Character applyto, MapleMapObject obj, int attack) {
|
||||
if (makeChanceResult()) {
|
||||
switch (sourceid) { // MP eater
|
||||
case FPWizard.MP_EATER:
|
||||
@@ -836,32 +837,32 @@ public class MapleStatEffect {
|
||||
}
|
||||
}
|
||||
|
||||
public boolean applyEchoOfHero(MapleCharacter applyfrom) {
|
||||
Map<Integer, MapleCharacter> mapPlayers = applyfrom.getMap().getMapPlayers();
|
||||
public boolean applyEchoOfHero(Character applyfrom) {
|
||||
Map<Integer, Character> mapPlayers = applyfrom.getMap().getMapPlayers();
|
||||
mapPlayers.remove(applyfrom.getId());
|
||||
|
||||
boolean hwResult = applyTo(applyfrom);
|
||||
for (MapleCharacter chr : mapPlayers.values()) { // Echo of Hero not buffing players in the map detected thanks to Masterrulax
|
||||
for (Character chr : mapPlayers.values()) { // Echo of Hero not buffing players in the map detected thanks to Masterrulax
|
||||
applyTo(applyfrom, chr, false, null, false, 1);
|
||||
}
|
||||
|
||||
return hwResult;
|
||||
}
|
||||
|
||||
public boolean applyTo(MapleCharacter chr) {
|
||||
public boolean applyTo(Character chr) {
|
||||
return applyTo(chr, chr, true, null, false, 1);
|
||||
}
|
||||
|
||||
public boolean applyTo(MapleCharacter chr, boolean useMaxRange) {
|
||||
public boolean applyTo(Character chr, boolean useMaxRange) {
|
||||
return applyTo(chr, chr, true, null, useMaxRange, 1);
|
||||
}
|
||||
|
||||
public boolean applyTo(MapleCharacter chr, Point pos) {
|
||||
public boolean applyTo(Character chr, Point pos) {
|
||||
return applyTo(chr, chr, true, pos, false, 1);
|
||||
}
|
||||
|
||||
// primary: the player caster of the buff
|
||||
private boolean applyTo(MapleCharacter applyfrom, MapleCharacter applyto, boolean primary, Point pos, boolean useMaxRange, int affectedPlayers) {
|
||||
private boolean applyTo(Character applyfrom, Character applyto, boolean primary, Point pos, boolean useMaxRange, int affectedPlayers) {
|
||||
if (skill && (sourceid == GM.HIDE || sourceid == SuperGM.HIDE)) {
|
||||
applyto.toggleHide(false);
|
||||
return true;
|
||||
@@ -1041,7 +1042,7 @@ public class MapleStatEffect {
|
||||
MapleParty opposition = applyfrom.getParty().getEnemy();
|
||||
if (skill.targetsAll) {
|
||||
for (MaplePartyCharacter enemyChrs : opposition.getPartyMembers()) {
|
||||
MapleCharacter chrApp = enemyChrs.getPlayer();
|
||||
Character chrApp = enemyChrs.getPlayer();
|
||||
if (chrApp != null && chrApp.getMap().isCPQMap()) {
|
||||
if (dis == null) {
|
||||
chrApp.dispel();
|
||||
@@ -1053,7 +1054,7 @@ public class MapleStatEffect {
|
||||
} else {
|
||||
int amount = opposition.getMembers().size();
|
||||
int randd = (int) Math.floor(Math.random() * amount);
|
||||
MapleCharacter chrApp = applyfrom.getMap().getCharacterById(opposition.getMemberByPos(randd).getId());
|
||||
Character chrApp = applyfrom.getMap().getCharacterById(opposition.getMemberByPos(randd).getId());
|
||||
if (chrApp != null && chrApp.getMap().isCPQMap()) {
|
||||
if (dis == null) {
|
||||
chrApp.dispel();
|
||||
@@ -1072,7 +1073,7 @@ public class MapleStatEffect {
|
||||
MapleDisease dis = MapleDisease.getBySkill(mobSkill);
|
||||
|
||||
if (target > 0) {
|
||||
for (MapleCharacter chr : applyto.getMap().getAllPlayers()) {
|
||||
for (Character chr : applyto.getMap().getAllPlayers()) {
|
||||
if (chr.getId() != applyto.getId()) {
|
||||
chr.giveDebuff(dis, ms);
|
||||
}
|
||||
@@ -1084,15 +1085,15 @@ public class MapleStatEffect {
|
||||
return true;
|
||||
}
|
||||
|
||||
private int applyBuff(MapleCharacter applyfrom, boolean useMaxRange) {
|
||||
private int applyBuff(Character applyfrom, boolean useMaxRange) {
|
||||
int affectedc = 1;
|
||||
|
||||
if (isPartyBuff() && (applyfrom.getParty() != null || isGmBuff())) {
|
||||
Rectangle bounds = (!useMaxRange) ? calculateBoundingBox(applyfrom.getPosition(), applyfrom.isFacingLeft()) : new Rectangle(Integer.MIN_VALUE / 2, Integer.MIN_VALUE / 2, Integer.MAX_VALUE, Integer.MAX_VALUE);
|
||||
List<MapleMapObject> affecteds = applyfrom.getMap().getMapObjectsInRect(bounds, Arrays.asList(MapleMapObjectType.PLAYER));
|
||||
List<MapleCharacter> affectedp = new ArrayList<>(affecteds.size());
|
||||
List<Character> affectedp = new ArrayList<>(affecteds.size());
|
||||
for (MapleMapObject affectedmo : affecteds) {
|
||||
MapleCharacter affected = (MapleCharacter) affectedmo;
|
||||
Character affected = (Character) affectedmo;
|
||||
if (affected != applyfrom && (isGmBuff() || applyfrom.getParty().equals(affected.getParty()))) {
|
||||
if (!isResurrection()) {
|
||||
if (affected.isAlive()) {
|
||||
@@ -1107,7 +1108,7 @@ public class MapleStatEffect {
|
||||
}
|
||||
|
||||
affectedc += affectedp.size(); // used for heal
|
||||
for (MapleCharacter affected : affectedp) {
|
||||
for (Character affected : affectedp) {
|
||||
applyTo(applyfrom, affected, false, null, useMaxRange, affectedc);
|
||||
affected.sendPacket(PacketCreator.showOwnBuffEffect(sourceid, 2));
|
||||
affected.getMap().broadcastMessage(affected, PacketCreator.showBuffEffect(affected.getId(), sourceid, 2), false);
|
||||
@@ -1117,7 +1118,7 @@ public class MapleStatEffect {
|
||||
return affectedc;
|
||||
}
|
||||
|
||||
private void applyMonsterBuff(MapleCharacter applyfrom) {
|
||||
private void applyMonsterBuff(Character applyfrom) {
|
||||
Rectangle bounds = calculateBoundingBox(applyfrom.getPosition(), applyfrom.isFacingLeft());
|
||||
List<MapleMapObject> affected = applyfrom.getMap().getMapObjectsInRect(bounds, Arrays.asList(MapleMapObjectType.MONSTER));
|
||||
Skill skill_ = SkillFactory.getSkill(sourceid);
|
||||
@@ -1161,7 +1162,7 @@ public class MapleStatEffect {
|
||||
return !YamlConfig.config.server.USE_BUFF_EVERLASTING ? duration : Integer.MAX_VALUE;
|
||||
}
|
||||
|
||||
public void silentApplyBuff(MapleCharacter chr, long localStartTime) {
|
||||
public void silentApplyBuff(Character chr, long localStartTime) {
|
||||
int localDuration = getBuffLocalDuration();
|
||||
localDuration = alchemistModifyVal(chr, localDuration, false);
|
||||
//CancelEffectAction cancelAction = new CancelEffectAction(chr, this, starttime);
|
||||
@@ -1181,7 +1182,7 @@ public class MapleStatEffect {
|
||||
}
|
||||
}
|
||||
|
||||
public final void applyComboBuff(final MapleCharacter applyto, int combo) {
|
||||
public final void applyComboBuff(final Character applyto, int combo) {
|
||||
final List<Pair<BuffStat, Integer>> stat = Collections.singletonList(new Pair<>(BuffStat.ARAN_COMBO, combo));
|
||||
applyto.sendPacket(PacketCreator.giveBuff(sourceid, 99999, stat));
|
||||
|
||||
@@ -1191,7 +1192,7 @@ public class MapleStatEffect {
|
||||
applyto.registerEffect(this, starttime, Long.MAX_VALUE, false);
|
||||
}
|
||||
|
||||
public final void applyBeaconBuff(final MapleCharacter applyto, int objectid) { // thanks Thora & Hyun for reporting an issue with homing beacon autoflagging mobs when changing maps
|
||||
public final void applyBeaconBuff(final Character applyto, int objectid) { // thanks Thora & Hyun for reporting an issue with homing beacon autoflagging mobs when changing maps
|
||||
final List<Pair<BuffStat, Integer>> stat = Collections.singletonList(new Pair<>(BuffStat.HOMING_BEACON, objectid));
|
||||
applyto.sendPacket(PacketCreator.giveBuff(1, sourceid, stat));
|
||||
|
||||
@@ -1199,7 +1200,7 @@ public class MapleStatEffect {
|
||||
applyto.registerEffect(this, starttime, Long.MAX_VALUE, false);
|
||||
}
|
||||
|
||||
public void updateBuffEffect(MapleCharacter target, List<Pair<BuffStat, Integer>> activeStats, long starttime) {
|
||||
public void updateBuffEffect(Character target, List<Pair<BuffStat, Integer>> activeStats, long starttime) {
|
||||
int localDuration = getBuffLocalDuration();
|
||||
localDuration = alchemistModifyVal(target, localDuration, false);
|
||||
|
||||
@@ -1213,7 +1214,7 @@ public class MapleStatEffect {
|
||||
}
|
||||
}
|
||||
|
||||
private void applyBuffEffect(MapleCharacter applyfrom, MapleCharacter applyto, boolean primary) {
|
||||
private void applyBuffEffect(Character applyfrom, Character applyto, boolean primary) {
|
||||
if (!isMonsterRiding() && !isCouponBuff() && !isMysticDoor() && !isHyperBody() && !isCombo()) { // last mystic door already dispelled if it has been used before.
|
||||
applyto.cancelEffect(this, true, -1);
|
||||
}
|
||||
@@ -1337,7 +1338,7 @@ public class MapleStatEffect {
|
||||
}
|
||||
}
|
||||
|
||||
private int calcHPChange(MapleCharacter applyfrom, boolean primary, int affectedPlayers) {
|
||||
private int calcHPChange(Character applyfrom, boolean primary, int affectedPlayers) {
|
||||
int hpchange = 0;
|
||||
if (hp != 0) {
|
||||
if (!skill) {
|
||||
@@ -1379,7 +1380,7 @@ public class MapleStatEffect {
|
||||
return (int) ((Math.random() * ((int) (stat * upperfactor * rate) - (int) (stat * lowerfactor * rate) + 1)) + (int) (stat * lowerfactor * rate));
|
||||
}
|
||||
|
||||
private int calcMPChange(MapleCharacter applyfrom, boolean primary) {
|
||||
private int calcMPChange(Character applyfrom, boolean primary) {
|
||||
int mpchange = 0;
|
||||
if (mp != 0) {
|
||||
if (primary) {
|
||||
@@ -1419,7 +1420,7 @@ public class MapleStatEffect {
|
||||
return mpchange;
|
||||
}
|
||||
|
||||
private int alchemistModifyVal(MapleCharacter chr, int val, boolean withX) {
|
||||
private int alchemistModifyVal(Character chr, int val, boolean withX) {
|
||||
if (!skill && (chr.getJob().isA(MapleJob.HERMIT) || chr.getJob().isA(MapleJob.NIGHTWALKER3))) {
|
||||
MapleStatEffect alchemistEffect = getAlchemistEffect(chr);
|
||||
if (alchemistEffect != null) {
|
||||
@@ -1429,7 +1430,7 @@ public class MapleStatEffect {
|
||||
return val;
|
||||
}
|
||||
|
||||
private MapleStatEffect getAlchemistEffect(MapleCharacter chr) {
|
||||
private MapleStatEffect getAlchemistEffect(Character chr) {
|
||||
int id = Hermit.ALCHEMIST;
|
||||
if (chr.isCygnus()) {
|
||||
id = NightWalker.ALCHEMIST;
|
||||
@@ -1724,7 +1725,7 @@ public class MapleStatEffect {
|
||||
return morphId;
|
||||
}
|
||||
|
||||
private int getMorph(MapleCharacter chr) {
|
||||
private int getMorph(Character chr) {
|
||||
if (morphId == 1000 || morphId == 1001 || morphId == 1003) { // morph skill
|
||||
return chr.getGender() == 0 ? morphId : morphId + 100;
|
||||
}
|
||||
@@ -1784,10 +1785,10 @@ public class MapleStatEffect {
|
||||
private static class CancelEffectAction implements Runnable {
|
||||
|
||||
private MapleStatEffect effect;
|
||||
private WeakReference<MapleCharacter> target;
|
||||
private WeakReference<Character> target;
|
||||
private long startTime;
|
||||
|
||||
public CancelEffectAction(MapleCharacter target, MapleStatEffect effect, long startTime) {
|
||||
public CancelEffectAction(Character target, MapleStatEffect effect, long startTime) {
|
||||
this.effect = effect;
|
||||
this.target = new WeakReference<>(target);
|
||||
this.startTime = startTime;
|
||||
@@ -1795,7 +1796,7 @@ public class MapleStatEffect {
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
MapleCharacter realTarget = target.get();
|
||||
Character realTarget = target.get();
|
||||
if (realTarget != null) {
|
||||
realTarget.cancelEffect(effect, false, startTime);
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
*/
|
||||
package server;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import client.inventory.Inventory;
|
||||
import client.inventory.InventoryType;
|
||||
import client.inventory.Item;
|
||||
@@ -75,11 +75,11 @@ public class MapleTrade {
|
||||
private int meso = 0;
|
||||
private int exchangeMeso;
|
||||
private AtomicBoolean locked = new AtomicBoolean(false);
|
||||
private MapleCharacter chr;
|
||||
private Character chr;
|
||||
private byte number;
|
||||
private boolean fullTrade = false;
|
||||
|
||||
public MapleTrade(byte number, MapleCharacter chr) {
|
||||
public MapleTrade(byte number, Character chr) {
|
||||
this.chr = chr;
|
||||
this.number = number;
|
||||
}
|
||||
@@ -229,7 +229,7 @@ public class MapleTrade {
|
||||
this.partner = partner;
|
||||
}
|
||||
|
||||
public MapleCharacter getChr() {
|
||||
public Character getChr() {
|
||||
return chr;
|
||||
}
|
||||
|
||||
@@ -290,7 +290,7 @@ public class MapleTrade {
|
||||
}
|
||||
}
|
||||
|
||||
public static void completeTrade(MapleCharacter chr) {
|
||||
public static void completeTrade(Character chr) {
|
||||
MapleTrade local = chr.getTrade();
|
||||
MapleTrade partner = local.getPartner();
|
||||
if (local.checkCompleteHandshake()) {
|
||||
@@ -358,7 +358,7 @@ public class MapleTrade {
|
||||
}
|
||||
}
|
||||
|
||||
private static void cancelTradeInternal(MapleCharacter chr, byte selfResult, byte partnerResult) {
|
||||
private static void cancelTradeInternal(Character chr, byte selfResult, byte partnerResult) {
|
||||
MapleTrade trade = chr.getTrade();
|
||||
if(trade == null) return;
|
||||
|
||||
@@ -416,20 +416,20 @@ public class MapleTrade {
|
||||
}
|
||||
}
|
||||
|
||||
public static void cancelTrade(MapleCharacter chr, TradeResult result) {
|
||||
public static void cancelTrade(Character chr, TradeResult result) {
|
||||
MapleTrade trade = chr.getTrade();
|
||||
if(trade == null) return;
|
||||
|
||||
trade.cancelHandshake(result.getValue());
|
||||
}
|
||||
|
||||
public static void startTrade(MapleCharacter chr) {
|
||||
public static void startTrade(Character chr) {
|
||||
if (chr.getTrade() == null) {
|
||||
chr.setTrade(new MapleTrade((byte) 0, chr));
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean hasTradeInviteBack(MapleCharacter c1, MapleCharacter c2) {
|
||||
private static boolean hasTradeInviteBack(Character c1, Character c2) {
|
||||
MapleTrade other = c2.getTrade();
|
||||
if (other != null) {
|
||||
MapleTrade otherPartner = other.getPartner();
|
||||
@@ -443,7 +443,7 @@ public class MapleTrade {
|
||||
return false;
|
||||
}
|
||||
|
||||
public static void inviteTrade(MapleCharacter c1, MapleCharacter c2) {
|
||||
public static void inviteTrade(Character c1, Character c2) {
|
||||
if (MapleInviteCoordinator.hasInvite(InviteType.TRADE, c1.getId())) {
|
||||
if (hasTradeInviteBack(c1, c2)) {
|
||||
c1.message("You are already managing this player's trade invitation.");
|
||||
@@ -476,7 +476,7 @@ public class MapleTrade {
|
||||
}
|
||||
}
|
||||
|
||||
public static void visitTrade(MapleCharacter c1, MapleCharacter c2) {
|
||||
public static void visitTrade(Character c1, Character c2) {
|
||||
MapleInviteResult inviteRes = MapleInviteCoordinator.answerInvite(InviteType.TRADE, c1.getId(), c2.getId(), true);
|
||||
|
||||
InviteResult res = inviteRes.result;
|
||||
@@ -495,11 +495,11 @@ public class MapleTrade {
|
||||
}
|
||||
}
|
||||
|
||||
public static void declineTrade(MapleCharacter chr) {
|
||||
public static void declineTrade(Character chr) {
|
||||
MapleTrade trade = chr.getTrade();
|
||||
if (trade != null) {
|
||||
if (trade.getPartner() != null) {
|
||||
MapleCharacter other = trade.getPartner().getChr();
|
||||
Character other = trade.getPartner().getChr();
|
||||
if (MapleInviteCoordinator.answerInvite(InviteType.TRADE, chr.getId(), other.getId(), false).result == InviteResult.DENIED) {
|
||||
other.message(chr.getName() + " has declined your trade request.");
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
package server.events;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import client.SkillFactory;
|
||||
|
||||
/**
|
||||
@@ -34,7 +34,7 @@ public class RescueGaga extends MapleEvents {
|
||||
return getCompleted();
|
||||
}
|
||||
|
||||
public void giveSkill(MapleCharacter chr) {
|
||||
public void giveSkill(Character chr) {
|
||||
int skillid = 0;
|
||||
switch (chr.getJobType()) {
|
||||
case 0:
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
package server.events.gm;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import server.TimerManager;
|
||||
import server.maps.MapleMap;
|
||||
import tools.PacketCreator;
|
||||
@@ -64,7 +64,7 @@ public class MapleCoconut extends MapleEvent {
|
||||
if (getMapleScore() == getStoryScore()) {
|
||||
bonusTime();
|
||||
} else if (getMapleScore() > getStoryScore()) {
|
||||
for (MapleCharacter chr : map.getCharacters()) {
|
||||
for (Character chr : map.getCharacters()) {
|
||||
if (chr.getTeam() == 0) {
|
||||
chr.sendPacket(PacketCreator.showEffect("event/coconut/victory"));
|
||||
chr.sendPacket(PacketCreator.playSound("Coconut/Victory"));
|
||||
@@ -75,7 +75,7 @@ public class MapleCoconut extends MapleEvent {
|
||||
}
|
||||
warpOut();
|
||||
} else {
|
||||
for (MapleCharacter chr : map.getCharacters()) {
|
||||
for (Character chr : map.getCharacters()) {
|
||||
if (chr.getTeam() == 1) {
|
||||
chr.sendPacket(PacketCreator.showEffect("event/coconut/victory"));
|
||||
chr.sendPacket(PacketCreator.playSound("Coconut/Victory"));
|
||||
@@ -94,13 +94,13 @@ public class MapleCoconut extends MapleEvent {
|
||||
map.broadcastMessage(PacketCreator.getClock(120));
|
||||
TimerManager.getInstance().schedule(() -> {
|
||||
if (getMapleScore() == getStoryScore()) {
|
||||
for (MapleCharacter chr : map.getCharacters()) {
|
||||
for (Character chr : map.getCharacters()) {
|
||||
chr.sendPacket(PacketCreator.showEffect("event/coconut/lose"));
|
||||
chr.sendPacket(PacketCreator.playSound("Coconut/Failed"));
|
||||
}
|
||||
warpOut();
|
||||
} else if (getMapleScore() > getStoryScore()) {
|
||||
for (MapleCharacter chr : map.getCharacters()) {
|
||||
for (Character chr : map.getCharacters()) {
|
||||
if (chr.getTeam() == 0) {
|
||||
chr.sendPacket(PacketCreator.showEffect("event/coconut/victory"));
|
||||
chr.sendPacket(PacketCreator.playSound("Coconut/Victory"));
|
||||
@@ -111,7 +111,7 @@ public class MapleCoconut extends MapleEvent {
|
||||
}
|
||||
warpOut();
|
||||
} else {
|
||||
for (MapleCharacter chr : map.getCharacters()) {
|
||||
for (Character chr : map.getCharacters()) {
|
||||
if (chr.getTeam() == 1) {
|
||||
chr.sendPacket(PacketCreator.showEffect("event/coconut/victory"));
|
||||
chr.sendPacket(PacketCreator.playSound("Coconut/Victory"));
|
||||
@@ -129,9 +129,9 @@ public class MapleCoconut extends MapleEvent {
|
||||
public void warpOut() {
|
||||
setCoconutsHittable(false);
|
||||
TimerManager.getInstance().schedule(() -> {
|
||||
List<MapleCharacter> chars = new ArrayList<>(map.getCharacters());
|
||||
List<Character> chars = new ArrayList<>(map.getCharacters());
|
||||
|
||||
for (MapleCharacter chr : chars) {
|
||||
for (Character chr : chars) {
|
||||
if ((getMapleScore() > getStoryScore() && chr.getTeam() == 0) || (getStoryScore() > getMapleScore() && chr.getTeam() == 1)) {
|
||||
chr.changeMap(109050000);
|
||||
} else {
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
package server.events.gm;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import server.TimerManager;
|
||||
import tools.PacketCreator;
|
||||
|
||||
@@ -33,13 +33,13 @@ import java.util.concurrent.ScheduledFuture;
|
||||
* @author kevintjuh93
|
||||
*/
|
||||
public class MapleFitness {
|
||||
private MapleCharacter chr;
|
||||
private Character chr;
|
||||
private long time = 0;
|
||||
private long timeStarted = 0;
|
||||
private ScheduledFuture<?> schedule = null;
|
||||
private ScheduledFuture<?> schedulemsg = null;
|
||||
|
||||
public MapleFitness(final MapleCharacter chr) {
|
||||
public MapleFitness(final Character chr) {
|
||||
this.chr = chr;
|
||||
this.schedule = TimerManager.getInstance().schedule(() -> {
|
||||
if (chr.getMapId() >= 109040000 && chr.getMapId() <= 109040004)
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
*/
|
||||
package server.events.gm;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import server.TimerManager;
|
||||
import tools.PacketCreator;
|
||||
|
||||
@@ -32,12 +32,12 @@ import java.util.concurrent.ScheduledFuture;
|
||||
* @author kevintjuh93
|
||||
*/
|
||||
public class MapleOla {
|
||||
private MapleCharacter chr;
|
||||
private Character chr;
|
||||
private long time = 0;
|
||||
private long timeStarted = 0;
|
||||
private ScheduledFuture<?> schedule = null;
|
||||
|
||||
public MapleOla(final MapleCharacter chr) {
|
||||
public MapleOla(final Character chr) {
|
||||
this.chr = chr;
|
||||
this.schedule = TimerManager.getInstance().schedule(() -> {
|
||||
if (chr.getMapId() >= 109030001 && chr.getMapId() <= 109030303)
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
*/
|
||||
package server.events.gm;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import provider.MapleDataProvider;
|
||||
import provider.MapleDataProviderFactory;
|
||||
import provider.MapleDataTool;
|
||||
@@ -51,7 +51,7 @@ public final class MapleOxQuiz {
|
||||
this.question = 1;
|
||||
}
|
||||
|
||||
private boolean isCorrectAnswer(MapleCharacter chr, int answer) {
|
||||
private boolean isCorrectAnswer(Character chr, int answer) {
|
||||
double x = chr.getPosition().getX();
|
||||
double y = chr.getPosition().getY();
|
||||
if ((x > -234 && y > -26 && answer == 0) || (x < -234 && y > -26 && answer == 1)) {
|
||||
@@ -63,7 +63,7 @@ public final class MapleOxQuiz {
|
||||
|
||||
public void sendQuestion() {
|
||||
int gm = 0;
|
||||
for (MapleCharacter mc : map.getCharacters()) {
|
||||
for (Character mc : map.getCharacters()) {
|
||||
if (mc.gmLevel() > 1) {
|
||||
gm++;
|
||||
}
|
||||
@@ -72,9 +72,9 @@ public final class MapleOxQuiz {
|
||||
map.broadcastMessage(PacketCreator.showOXQuiz(round, question, true));
|
||||
TimerManager.getInstance().schedule(() -> {
|
||||
map.broadcastMessage(PacketCreator.showOXQuiz(round, question, true));
|
||||
List<MapleCharacter> chars = new ArrayList<>(map.getCharacters());
|
||||
List<Character> chars = new ArrayList<>(map.getCharacters());
|
||||
|
||||
for (MapleCharacter chr : chars) {
|
||||
for (Character chr : chars) {
|
||||
if (chr != null) // make sure they aren't null... maybe something can happen in 12 seconds.
|
||||
{
|
||||
if (!isCorrectAnswer(chr, getOXAnswer(round, question)) && !chr.isGM()) {
|
||||
|
||||
@@ -21,7 +21,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
package server.events.gm;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import server.TimerManager;
|
||||
import server.maps.MapleMap;
|
||||
import tools.PacketCreator;
|
||||
@@ -41,13 +41,13 @@ public class MapleSnowball {
|
||||
private boolean hittable = false;
|
||||
private int team;
|
||||
private boolean winner = false;
|
||||
List<MapleCharacter> characters = new LinkedList<>();
|
||||
List<Character> characters = new LinkedList<>();
|
||||
|
||||
public MapleSnowball(int team, MapleMap map) {
|
||||
this.map = map;
|
||||
this.team = team;
|
||||
|
||||
for (MapleCharacter chr : map.getCharacters()) {
|
||||
for (Character chr : map.getCharacters()) {
|
||||
if (chr.getTeam() == team)
|
||||
characters.add(chr);
|
||||
}
|
||||
@@ -56,7 +56,7 @@ public class MapleSnowball {
|
||||
public void startEvent() {
|
||||
if (hittable == true) return;
|
||||
|
||||
for (MapleCharacter chr : characters) {
|
||||
for (Character chr : characters) {
|
||||
if (chr != null) {
|
||||
chr.sendPacket(PacketCreator.rollSnowBall(false, 1, map.getSnowball(0), map.getSnowball(1)));
|
||||
chr.sendPacket(PacketCreator.getClock(600));
|
||||
@@ -65,13 +65,13 @@ public class MapleSnowball {
|
||||
hittable = true;
|
||||
TimerManager.getInstance().schedule(() -> {
|
||||
if (map.getSnowball(team).getPosition() > map.getSnowball(team == 0 ? 1 : 0).getPosition()) {
|
||||
for (MapleCharacter chr : characters) {
|
||||
for (Character chr : characters) {
|
||||
if (chr != null)
|
||||
chr.sendPacket(PacketCreator.rollSnowBall(false, 3, map.getSnowball(0), map.getSnowball(0)));
|
||||
}
|
||||
winner = true;
|
||||
} else if (map.getSnowball(team == 0 ? 1 : 0).getPosition() > map.getSnowball(team).getPosition()) {
|
||||
for (MapleCharacter chr : characters) {
|
||||
for (Character chr : characters) {
|
||||
if (chr != null)
|
||||
chr.sendPacket(PacketCreator.rollSnowBall(false, 4, map.getSnowball(0), map.getSnowball(0)));
|
||||
}
|
||||
@@ -136,7 +136,7 @@ public class MapleSnowball {
|
||||
}
|
||||
|
||||
public void message(int message) {
|
||||
for (MapleCharacter chr : characters) {
|
||||
for (Character chr : characters) {
|
||||
if (chr != null)
|
||||
chr.sendPacket(PacketCreator.snowballMessage(team, message));
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
package server.expeditions;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import net.packet.Packet;
|
||||
import net.server.PlayerStorage;
|
||||
import net.server.Server;
|
||||
@@ -81,7 +81,7 @@ public class MapleExpedition {
|
||||
9420544,// - Furious Targa
|
||||
};
|
||||
|
||||
private MapleCharacter leader;
|
||||
private Character leader;
|
||||
private MapleExpeditionType type;
|
||||
private boolean registering;
|
||||
private MapleMap startMap;
|
||||
@@ -95,7 +95,7 @@ public class MapleExpedition {
|
||||
private int minSize, maxSize;
|
||||
private MonitoredReentrantLock pL = MonitoredReentrantLockFactory.createLock(MonitoredLockType.EIM_PARTY, true);
|
||||
|
||||
public MapleExpedition(MapleCharacter player, MapleExpeditionType met, boolean sil, int minPlayers, int maxPlayers) {
|
||||
public MapleExpedition(Character player, MapleExpeditionType met, boolean sil, int minPlayers, int maxPlayers) {
|
||||
leader = player;
|
||||
members.put(player.getId(), player.getName());
|
||||
startMap = player.getMap();
|
||||
@@ -162,7 +162,7 @@ dispose(false);
|
||||
Server.getInstance().broadcastGMMessage(startMap.getWorld(), PacketCreator.serverNotice(6, "[Expedition] " + type.toString() + " Expedition started with leader: " + leader.getName()));
|
||||
}
|
||||
|
||||
public String addMember(MapleCharacter player) {
|
||||
public String addMember(Character player) {
|
||||
if (!registering){
|
||||
return "Sorry, this expedition is already underway. Registration is closed!";
|
||||
}
|
||||
@@ -184,7 +184,7 @@ dispose(false);
|
||||
return "You have registered for the expedition successfully!";
|
||||
}
|
||||
|
||||
public int addMemberInt(MapleCharacter player) {
|
||||
public int addMemberInt(Character player) {
|
||||
if (!registering) {
|
||||
return 1; //"Sorry, this expedition is already underway. Registration is closed!";
|
||||
}
|
||||
@@ -204,18 +204,18 @@ dispose(false);
|
||||
private void registerExpeditionAttempt(){
|
||||
int channel = this.getRecruitingMap().getChannelServer().getId();
|
||||
|
||||
for (MapleCharacter chr : getActiveMembers()){
|
||||
for (Character chr : getActiveMembers()){
|
||||
MapleExpeditionBossLog.attemptBoss(chr.getId(), channel, this, true);
|
||||
}
|
||||
}
|
||||
|
||||
private void broadcastExped(Packet packet){
|
||||
for (MapleCharacter chr : getActiveMembers()){
|
||||
for (Character chr : getActiveMembers()){
|
||||
chr.sendPacket(packet);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean removeMember(MapleCharacter chr) {
|
||||
public boolean removeMember(Character chr) {
|
||||
if(members.remove(chr.getId()) != null) {
|
||||
chr.sendPacket(PacketCreator.removeClock());
|
||||
if (!silent) {
|
||||
@@ -236,7 +236,7 @@ dispose(false);
|
||||
|
||||
if (!silent) broadcastExped(PacketCreator.serverNotice(6, "[Expedition] " + chr.getValue() + " has been banned from the expedition."));
|
||||
|
||||
MapleCharacter player = startMap.getWorldServer().getPlayerStorage().getCharacterById(cid);
|
||||
Character player = startMap.getWorldServer().getPlayerStorage().getCharacterById(cid);
|
||||
if (player != null && player.isLoggedinWorld()) {
|
||||
player.sendPacket(PacketCreator.removeClock());
|
||||
if (!silent) player.dropMessage(6, "[Expedition] You have been banned from this expedition.");
|
||||
@@ -247,7 +247,7 @@ dispose(false);
|
||||
}
|
||||
}
|
||||
|
||||
public void monsterKilled(MapleCharacter chr, MapleMonster mob) {
|
||||
public void monsterKilled(Character chr, MapleMonster mob) {
|
||||
for (int expeditionBoss : EXPEDITION_BOSSES) {
|
||||
if (mob.getId() == expeditionBoss) { //If the monster killed was a boss
|
||||
String timeStamp = new SimpleDateFormat("HH:mm:ss").format(new Date());
|
||||
@@ -279,12 +279,12 @@ dispose(false);
|
||||
return type;
|
||||
}
|
||||
|
||||
public List<MapleCharacter> getActiveMembers() { // thanks MedicOP for figuring out an issue with broadcasting packets to offline members
|
||||
public List<Character> getActiveMembers() { // thanks MedicOP for figuring out an issue with broadcasting packets to offline members
|
||||
PlayerStorage ps = startMap.getWorldServer().getPlayerStorage();
|
||||
|
||||
List<MapleCharacter> activeMembers = new LinkedList<>();
|
||||
List<Character> activeMembers = new LinkedList<>();
|
||||
for (Integer chrid : getMembers().keySet()){
|
||||
MapleCharacter chr = ps.getCharacterById(chrid);
|
||||
Character chr = ps.getCharacterById(chrid);
|
||||
if (chr != null && chr.isLoggedinWorld()) {
|
||||
activeMembers.add(chr);
|
||||
}
|
||||
@@ -317,11 +317,11 @@ dispose(false);
|
||||
}
|
||||
|
||||
public final boolean isExpeditionTeamTogether() {
|
||||
List<MapleCharacter> chars = getActiveMembers();
|
||||
List<Character> chars = getActiveMembers();
|
||||
if(chars.size() <= 1) return true;
|
||||
|
||||
Iterator<MapleCharacter> iterator = chars.iterator();
|
||||
MapleCharacter mc = iterator.next();
|
||||
Iterator<Character> iterator = chars.iterator();
|
||||
Character mc = iterator.next();
|
||||
int mapId = mc.getMapId();
|
||||
|
||||
for (; iterator.hasNext();) {
|
||||
@@ -333,35 +333,35 @@ dispose(false);
|
||||
}
|
||||
|
||||
public final void warpExpeditionTeam(int warpFrom, int warpTo) {
|
||||
List<MapleCharacter> players = getActiveMembers();
|
||||
List<Character> players = getActiveMembers();
|
||||
|
||||
for (MapleCharacter chr : players) {
|
||||
for (Character chr : players) {
|
||||
if(chr.getMapId() == warpFrom)
|
||||
chr.changeMap(warpTo);
|
||||
}
|
||||
}
|
||||
|
||||
public final void warpExpeditionTeam(int warpTo) {
|
||||
List<MapleCharacter> players = getActiveMembers();
|
||||
List<Character> players = getActiveMembers();
|
||||
|
||||
for (MapleCharacter chr : players) {
|
||||
for (Character chr : players) {
|
||||
chr.changeMap(warpTo);
|
||||
}
|
||||
}
|
||||
|
||||
public final void warpExpeditionTeamToMapSpawnPoint(int warpFrom, int warpTo, int toSp) {
|
||||
List<MapleCharacter> players = getActiveMembers();
|
||||
List<Character> players = getActiveMembers();
|
||||
|
||||
for (MapleCharacter chr : players) {
|
||||
for (Character chr : players) {
|
||||
if(chr.getMapId() == warpFrom)
|
||||
chr.changeMap(warpTo, toSp);
|
||||
}
|
||||
}
|
||||
|
||||
public final void warpExpeditionTeamToMapSpawnPoint(int warpTo, int toSp) {
|
||||
List<MapleCharacter> players = getActiveMembers();
|
||||
List<Character> players = getActiveMembers();
|
||||
|
||||
for (MapleCharacter chr : players) {
|
||||
for (Character chr : players) {
|
||||
chr.changeMap(warpTo, toSp);
|
||||
}
|
||||
}
|
||||
@@ -374,7 +374,7 @@ dispose(false);
|
||||
ch.removeExpedition(this);
|
||||
}
|
||||
|
||||
public MapleCharacter getLeader(){
|
||||
public Character getLeader(){
|
||||
return leader;
|
||||
}
|
||||
|
||||
@@ -382,11 +382,11 @@ dispose(false);
|
||||
return startMap;
|
||||
}
|
||||
|
||||
public boolean contains(MapleCharacter player) {
|
||||
public boolean contains(Character player) {
|
||||
return members.containsKey(player.getId()) || isLeader(player);
|
||||
}
|
||||
|
||||
public boolean isLeader(MapleCharacter player) {
|
||||
public boolean isLeader(Character player) {
|
||||
return isLeader(player.getId());
|
||||
}
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
*/
|
||||
package server.life;
|
||||
|
||||
import client.Character;
|
||||
import client.*;
|
||||
import client.status.MonsterStatus;
|
||||
import client.status.MonsterStatusEffect;
|
||||
@@ -70,7 +71,7 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
||||
private AtomicInteger hp = new AtomicInteger(1);
|
||||
private AtomicLong maxHpPlusHeal = new AtomicLong(1);
|
||||
private int mp;
|
||||
private WeakReference<MapleCharacter> controller = new WeakReference<>(null);
|
||||
private WeakReference<Character> controller = new WeakReference<>(null);
|
||||
private boolean controllerHasAggro, controllerKnowsAboutAggro, controllerHasPuppet;
|
||||
private Collection<MonsterListener> listeners = new LinkedList<>();
|
||||
private EnumMap<MonsterStatus, MonsterStatusEffect> stati = new EnumMap<>(MonsterStatus.class);
|
||||
@@ -361,7 +362,7 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
||||
hp.set(-1);
|
||||
}
|
||||
|
||||
public void broadcastMobHpBar(MapleCharacter from) {
|
||||
public void broadcastMobHpBar(Character from) {
|
||||
if (hasBossHPBar()) {
|
||||
from.setPlayerAggro(this.hashCode());
|
||||
from.getMap().broadcastBossHpMessage(this, this.hashCode(), makeBossHPBarPacket(), getPosition());
|
||||
@@ -370,7 +371,7 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
||||
Packet packet = PacketCreator.showMonsterHP(getObjectId(), remainingHP);
|
||||
if (from.getParty() != null) {
|
||||
for (MaplePartyCharacter mpc : from.getParty().getMembers()) {
|
||||
MapleCharacter member = from.getMap().getCharacterById(mpc.getId()); // god bless
|
||||
Character member = from.getMap().getCharacterById(mpc.getId()); // god bless
|
||||
if (member != null) {
|
||||
member.sendPacket(packet);
|
||||
}
|
||||
@@ -381,7 +382,7 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
||||
}
|
||||
}
|
||||
|
||||
public boolean damage(MapleCharacter attacker, int damage, boolean stayAlive) {
|
||||
public boolean damage(Character attacker, int damage, boolean stayAlive) {
|
||||
boolean lastHit = false;
|
||||
|
||||
this.lockMonster();
|
||||
@@ -432,7 +433,7 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
||||
* @param damage
|
||||
* @param stayAlive
|
||||
*/
|
||||
private void applyDamage(MapleCharacter from, int damage, boolean stayAlive, boolean fake) {
|
||||
private void applyDamage(Character from, int damage, boolean stayAlive, boolean fake) {
|
||||
Integer trueDamage = applyAndGetHpDamage(damage, stayAlive);
|
||||
if (trueDamage == null) {
|
||||
return;
|
||||
@@ -455,7 +456,7 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
||||
broadcastMobHpBar(from);
|
||||
}
|
||||
|
||||
public void applyFakeDamage(MapleCharacter from, int damage, boolean stayAlive) {
|
||||
public void applyFakeDamage(Character from, int damage, boolean stayAlive) {
|
||||
applyDamage(from, damage, stayAlive, true);
|
||||
}
|
||||
|
||||
@@ -480,11 +481,11 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
||||
dispatchMonsterHealed(hpHealed);
|
||||
}
|
||||
|
||||
public boolean isAttackedBy(MapleCharacter chr) {
|
||||
public boolean isAttackedBy(Character chr) {
|
||||
return takenDamage.containsKey(chr.getId());
|
||||
}
|
||||
|
||||
private static boolean isWhiteExpGain(MapleCharacter chr, Map<Integer, Float> personalRatio, double sdevRatio) {
|
||||
private static boolean isWhiteExpGain(Character chr, Map<Integer, Float> personalRatio, double sdevRatio) {
|
||||
Float pr = personalRatio.get(chr.getId());
|
||||
if (pr == null) {
|
||||
return false;
|
||||
@@ -511,7 +512,7 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
||||
return avgExpReward + Math.sqrt(varExpReward);
|
||||
}
|
||||
|
||||
private void distributePlayerExperience(MapleCharacter chr, float exp, float partyBonusMod, int totalPartyLevel, boolean highestPartyDamager, boolean whiteExpGain, boolean hasPartySharers) {
|
||||
private void distributePlayerExperience(Character chr, float exp, float partyBonusMod, int totalPartyLevel, boolean highestPartyDamager, boolean whiteExpGain, boolean hasPartySharers) {
|
||||
float playerExp = (YamlConfig.config.server.EXP_SPLIT_COMMON_MOD * chr.getLevel()) / totalPartyLevel;
|
||||
if (highestPartyDamager) playerExp += YamlConfig.config.server.EXP_SPLIT_MVP_MOD;
|
||||
|
||||
@@ -522,13 +523,13 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
||||
giveFamilyRep(chr.getFamilyEntry());
|
||||
}
|
||||
|
||||
private void distributePartyExperience(Map<MapleCharacter, Long> partyParticipation, float expPerDmg, Set<MapleCharacter> underleveled, Map<Integer, Float> personalRatio, double sdevRatio) {
|
||||
private void distributePartyExperience(Map<Character, Long> partyParticipation, float expPerDmg, Set<Character> underleveled, Map<Integer, Float> personalRatio, double sdevRatio) {
|
||||
IntervalBuilder leechInterval = new IntervalBuilder();
|
||||
leechInterval.addInterval(this.getLevel() - YamlConfig.config.server.EXP_SPLIT_LEVEL_INTERVAL, this.getLevel() + YamlConfig.config.server.EXP_SPLIT_LEVEL_INTERVAL);
|
||||
|
||||
long maxDamage = 0, partyDamage = 0;
|
||||
MapleCharacter participationMvp = null;
|
||||
for (Entry<MapleCharacter, Long> e : partyParticipation.entrySet()) {
|
||||
Character participationMvp = null;
|
||||
for (Entry<Character, Long> e : partyParticipation.entrySet()) {
|
||||
long entryDamage = e.getValue();
|
||||
partyDamage += entryDamage;
|
||||
|
||||
@@ -542,12 +543,12 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
||||
leechInterval.addInterval(chrLevel - YamlConfig.config.server.EXP_SPLIT_LEECH_INTERVAL, chrLevel + YamlConfig.config.server.EXP_SPLIT_LEECH_INTERVAL);
|
||||
}
|
||||
|
||||
List<MapleCharacter> expMembers = new LinkedList<>();
|
||||
List<Character> expMembers = new LinkedList<>();
|
||||
int totalPartyLevel = 0;
|
||||
|
||||
// thanks G h o s t, Alfred, Vcoc, BHB for poiting out a bug in detecting party members after membership transactions in a party took place
|
||||
if (YamlConfig.config.server.USE_ENFORCE_MOB_LEVEL_RANGE) {
|
||||
for (MapleCharacter member : partyParticipation.keySet().iterator().next().getPartyMembersOnSameMap()) {
|
||||
for (Character member : partyParticipation.keySet().iterator().next().getPartyMembersOnSameMap()) {
|
||||
if (!leechInterval.inInterval(member.getLevel())) {
|
||||
underleveled.add(member);
|
||||
continue;
|
||||
@@ -557,7 +558,7 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
||||
expMembers.add(member);
|
||||
}
|
||||
} else { // thanks Ari for noticing unused server flag after EXP system overhaul
|
||||
for (MapleCharacter member : partyParticipation.keySet().iterator().next().getPartyMembersOnSameMap()) {
|
||||
for (Character member : partyParticipation.keySet().iterator().next().getPartyMembersOnSameMap()) {
|
||||
totalPartyLevel += member.getLevel();
|
||||
expMembers.add(member);
|
||||
}
|
||||
@@ -570,7 +571,7 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
||||
boolean hasPartySharers = membersSize > 1;
|
||||
float partyBonusMod = hasPartySharers ? 0.05f * membersSize : 0.0f;
|
||||
|
||||
for (MapleCharacter mc : expMembers) {
|
||||
for (Character mc : expMembers) {
|
||||
distributePlayerExperience(mc, participationExp, partyBonusMod, totalPartyLevel, mc == participationMvp, isWhiteExpGain(mc, personalRatio, sdevRatio), hasPartySharers);
|
||||
giveFamilyRep(mc.getFamilyEntry());
|
||||
}
|
||||
@@ -581,20 +582,20 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
||||
return;
|
||||
}
|
||||
|
||||
Map<MapleParty, Map<MapleCharacter, Long>> partyExpDist = new HashMap<>();
|
||||
Map<MapleCharacter, Long> soloExpDist = new HashMap<>();
|
||||
Map<MapleParty, Map<Character, Long>> partyExpDist = new HashMap<>();
|
||||
Map<Character, Long> soloExpDist = new HashMap<>();
|
||||
|
||||
Map<Integer, MapleCharacter> mapPlayers = map.getMapAllPlayers();
|
||||
Map<Integer, Character> mapPlayers = map.getMapAllPlayers();
|
||||
|
||||
int totalEntries = 0; // counts "participant parties", players who no longer are available in the map is an "independent party"
|
||||
for (Entry<Integer, AtomicLong> e : takenDamage.entrySet()) {
|
||||
MapleCharacter chr = mapPlayers.get(e.getKey());
|
||||
Character chr = mapPlayers.get(e.getKey());
|
||||
if (chr != null) {
|
||||
long damage = e.getValue().longValue();
|
||||
|
||||
MapleParty p = chr.getParty();
|
||||
if (p != null) {
|
||||
Map<MapleCharacter, Long> partyParticipation = partyExpDist.get(p);
|
||||
Map<Character, Long> partyParticipation = partyExpDist.get(p);
|
||||
if (partyParticipation == null) {
|
||||
partyParticipation = new HashMap<>(6);
|
||||
partyExpDist.put(p, partyParticipation);
|
||||
@@ -618,16 +619,16 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
||||
|
||||
Map<Integer, Float> personalRatio = new HashMap<>();
|
||||
List<Float> entryExpRatio = new LinkedList<>();
|
||||
for (Entry<MapleCharacter, Long> e : soloExpDist.entrySet()) {
|
||||
for (Entry<Character, Long> e : soloExpDist.entrySet()) {
|
||||
float ratio = ((float) e.getValue()) / totalDamage;
|
||||
|
||||
personalRatio.put(e.getKey().getId(), ratio);
|
||||
entryExpRatio.add(ratio);
|
||||
}
|
||||
|
||||
for (Map<MapleCharacter, Long> m : partyExpDist.values()) {
|
||||
for (Map<Character, Long> m : partyExpDist.values()) {
|
||||
float ratio = 0.0f;
|
||||
for (Entry<MapleCharacter, Long> e : m.entrySet()) {
|
||||
for (Entry<Character, Long> e : m.entrySet()) {
|
||||
float chrRatio = ((float) e.getValue()) / totalDamage;
|
||||
|
||||
personalRatio.put(e.getKey().getId(), chrRatio);
|
||||
@@ -640,33 +641,33 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
||||
double sdevRatio = calcExperienceStandDevThreshold(entryExpRatio, totalEntries);
|
||||
|
||||
// GMS-like player and party split calculations found thanks to Russt, KaidaTan, Dusk, AyumiLove - src: https://ayumilovemaple.wordpress.com/maplestory_calculator_formula/
|
||||
Set<MapleCharacter> underleveled = new HashSet<>();
|
||||
for (Entry<MapleCharacter, Long> chrParticipation : soloExpDist.entrySet()) {
|
||||
Set<Character> underleveled = new HashSet<>();
|
||||
for (Entry<Character, Long> chrParticipation : soloExpDist.entrySet()) {
|
||||
float exp = chrParticipation.getValue() * expPerDmg;
|
||||
MapleCharacter chr = chrParticipation.getKey();
|
||||
Character chr = chrParticipation.getKey();
|
||||
|
||||
distributePlayerExperience(chr, exp, 0.0f, chr.getLevel(), true, isWhiteExpGain(chr, personalRatio, sdevRatio), false);
|
||||
}
|
||||
|
||||
for (Map<MapleCharacter, Long> partyParticipation : partyExpDist.values()) {
|
||||
for (Map<Character, Long> partyParticipation : partyExpDist.values()) {
|
||||
distributePartyExperience(partyParticipation, expPerDmg, underleveled, personalRatio, sdevRatio);
|
||||
}
|
||||
|
||||
EventInstanceManager eim = getMap().getEventInstance();
|
||||
if (eim != null) {
|
||||
MapleCharacter chr = mapPlayers.get(killerId);
|
||||
Character chr = mapPlayers.get(killerId);
|
||||
if (chr != null) {
|
||||
eim.monsterKilled(chr, this);
|
||||
}
|
||||
}
|
||||
|
||||
for(MapleCharacter mc : underleveled) {
|
||||
for(Character mc : underleveled) {
|
||||
mc.showUnderleveledInfo(this);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private float getStatusExpMultiplier(MapleCharacter attacker, boolean hasPartySharers) {
|
||||
private float getStatusExpMultiplier(Character attacker, boolean hasPartySharers) {
|
||||
float multiplier = 1.0f;
|
||||
|
||||
// thanks Prophecy & Aika for finding out Holy Symbol not being applied on party bonuses
|
||||
@@ -702,7 +703,7 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
||||
return (int) Math.round(exp); // operations on float point are not point-precise... thanks IxianMace for noticing -1 EXP gains
|
||||
}
|
||||
|
||||
private void giveExpToCharacter(MapleCharacter attacker, Float personalExp, Float partyExp, boolean white, boolean hasPartySharers) {
|
||||
private void giveExpToCharacter(Character attacker, Float personalExp, Float partyExp, boolean white, boolean hasPartySharers) {
|
||||
if (attacker.isAlive()) {
|
||||
if (personalExp != null) {
|
||||
personalExp *= getStatusExpMultiplier(attacker, hasPartySharers);
|
||||
@@ -739,11 +740,11 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
||||
return MapleMonsterInformationProvider.getInstance().retrieveEffectiveDrop(this.getId());
|
||||
}
|
||||
|
||||
Map<Integer, MapleCharacter> pchars = map.getMapAllPlayers();
|
||||
Map<Integer, Character> pchars = map.getMapAllPlayers();
|
||||
|
||||
List<MapleCharacter> lootChars = new LinkedList<>();
|
||||
List<Character> lootChars = new LinkedList<>();
|
||||
for (Integer cid : takenDamage.keySet()) {
|
||||
MapleCharacter chr = pchars.get(cid);
|
||||
Character chr = pchars.get(cid);
|
||||
if (chr != null && chr.isLoggedinWorld()) {
|
||||
lootChars.add(chr);
|
||||
}
|
||||
@@ -752,10 +753,10 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
||||
return MapleLootManager.retrieveRelevantDrops(this.getId(), lootChars);
|
||||
}
|
||||
|
||||
public MapleCharacter killBy(final MapleCharacter killer) {
|
||||
public Character killBy(final Character killer) {
|
||||
distributeExperience(killer != null ? killer.getId() : 0);
|
||||
|
||||
final Pair<MapleCharacter, Boolean> lastController = aggroRemoveController();
|
||||
final Pair<Character, Boolean> lastController = aggroRemoveController();
|
||||
final List<Integer> toSpawn = this.getRevives();
|
||||
if (toSpawn != null) {
|
||||
final MapleMap reviveMap = map;
|
||||
@@ -774,7 +775,7 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
||||
final EventInstanceManager eim = this.getMap().getEventInstance();
|
||||
|
||||
TimerManager.getInstance().schedule(() -> {
|
||||
MapleCharacter controller = lastController.getLeft();
|
||||
Character controller = lastController.getLeft();
|
||||
boolean aggro = lastController.getRight();
|
||||
|
||||
for (Integer mid : toSpawn) {
|
||||
@@ -823,7 +824,7 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
||||
System.out.println("[CRITICAL LOSS] toSpawn is null for " + this.getName());
|
||||
}
|
||||
|
||||
MapleCharacter looter = map.getCharacterById(getHighestDamagerId());
|
||||
Character looter = map.getCharacterById(getHighestDamagerId());
|
||||
return looter != null ? looter : killer;
|
||||
}
|
||||
|
||||
@@ -839,9 +840,9 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
||||
}
|
||||
|
||||
MapleMap map = m.getMap();
|
||||
List<MapleCharacter> chrList = map.getAllPlayers();
|
||||
List<Character> chrList = map.getAllPlayers();
|
||||
if (!chrList.isEmpty()) {
|
||||
MapleCharacter chr = chrList.get(0);
|
||||
Character chr = chrList.get(0);
|
||||
|
||||
EventInstanceManager eim = map.getEventInstance();
|
||||
if (eim != null) {
|
||||
@@ -856,12 +857,12 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
||||
private void dispatchRaiseQuestMobCount() {
|
||||
Set<Integer> attackerChrids = takenDamage.keySet();
|
||||
if(!attackerChrids.isEmpty()) {
|
||||
Map<Integer, MapleCharacter> mapChars = map.getMapPlayers();
|
||||
Map<Integer, Character> mapChars = map.getMapPlayers();
|
||||
if(!mapChars.isEmpty()) {
|
||||
int mobid = getId();
|
||||
|
||||
for (Integer chrid : attackerChrids) {
|
||||
MapleCharacter chr = mapChars.get(chrid);
|
||||
Character chr = mapChars.get(chrid);
|
||||
|
||||
if(chr != null && chr.isLoggedinWorld()) {
|
||||
chr.raiseQuestMobCount(mobid);
|
||||
@@ -914,7 +915,7 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
||||
}
|
||||
}
|
||||
|
||||
private void dispatchMonsterDamaged(MapleCharacter from, int trueDmg) {
|
||||
private void dispatchMonsterDamaged(Character from, int trueDmg) {
|
||||
MonsterListener[] listenersList;
|
||||
statiLock.lock();
|
||||
try {
|
||||
@@ -975,11 +976,11 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
||||
}
|
||||
}
|
||||
|
||||
public MapleCharacter getController() {
|
||||
public Character getController() {
|
||||
return controller.get();
|
||||
}
|
||||
|
||||
private void setController(MapleCharacter controller) {
|
||||
private void setController(Character controller) {
|
||||
this.controller = new WeakReference<>(controller);
|
||||
}
|
||||
|
||||
@@ -1078,8 +1079,8 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
||||
}
|
||||
}
|
||||
|
||||
private MapleCharacter getActiveController() {
|
||||
MapleCharacter chr = getController();
|
||||
private Character getActiveController() {
|
||||
Character chr = getController();
|
||||
|
||||
if (chr != null && chr.isLoggedinWorld() && chr.getMap() == this.getMap()) {
|
||||
return chr;
|
||||
@@ -1091,7 +1092,7 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
||||
private void broadcastMonsterStatusMessage(Packet packet) {
|
||||
map.broadcastMessage(packet, getPosition());
|
||||
|
||||
MapleCharacter chrController = getActiveController();
|
||||
Character chrController = getActiveController();
|
||||
if (chrController != null && !chrController.isMapObjectVisible(MapleMonster.this)) {
|
||||
chrController.sendPacket(packet);
|
||||
}
|
||||
@@ -1105,11 +1106,11 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
||||
return animationTime;
|
||||
}
|
||||
|
||||
public boolean applyStatus(MapleCharacter from, final MonsterStatusEffect status, boolean poison, long duration) {
|
||||
public boolean applyStatus(Character from, final MonsterStatusEffect status, boolean poison, long duration) {
|
||||
return applyStatus(from, status, poison, duration, false);
|
||||
}
|
||||
|
||||
public boolean applyStatus(MapleCharacter from, final MonsterStatusEffect status, boolean poison, long duration, boolean venom) {
|
||||
public boolean applyStatus(Character from, final MonsterStatusEffect status, boolean poison, long duration, boolean venom) {
|
||||
switch (getMonsterEffectiveness(status.getSkill().getElement())) {
|
||||
case IMMUNE:
|
||||
case STRONG:
|
||||
@@ -1602,12 +1603,12 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
||||
private final class DamageTask implements Runnable {
|
||||
|
||||
private final int dealDamage;
|
||||
private final MapleCharacter chr;
|
||||
private final Character chr;
|
||||
private final MonsterStatusEffect status;
|
||||
private final int type;
|
||||
private final MapleMap map;
|
||||
|
||||
private DamageTask(int dealDamage, MapleCharacter chr, MonsterStatusEffect status, int type) {
|
||||
private DamageTask(int dealDamage, Character chr, MonsterStatusEffect status, int type) {
|
||||
this.dealDamage = dealDamage;
|
||||
this.chr = chr;
|
||||
this.status = status;
|
||||
@@ -1796,7 +1797,7 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
||||
return summon.getPosition().distanceSq(this.getPosition()) < 177777;
|
||||
}
|
||||
|
||||
public boolean isCharacterPuppetInVicinity(MapleCharacter chr) {
|
||||
public boolean isCharacterPuppetInVicinity(Character chr) {
|
||||
MapleStatEffect mse = chr.getBuffEffect(BuffStat.PUPPET);
|
||||
if (mse != null) {
|
||||
MapleSummon summon = chr.getSummonByKey(mse.getSourceId());
|
||||
@@ -1815,7 +1816,7 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
||||
}
|
||||
|
||||
public boolean isLeadingPuppetInVicinity() {
|
||||
MapleCharacter chrController = this.getActiveController();
|
||||
Character chrController = this.getActiveController();
|
||||
|
||||
if (chrController != null) {
|
||||
if (this.isCharacterPuppetInVicinity(chrController)) {
|
||||
@@ -1826,16 +1827,16 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
||||
return false;
|
||||
}
|
||||
|
||||
private MapleCharacter getNextControllerCandidate() {
|
||||
private Character getNextControllerCandidate() {
|
||||
int mincontrolled = Integer.MAX_VALUE;
|
||||
MapleCharacter newController = null;
|
||||
Character newController = null;
|
||||
|
||||
int mincontrolleddead = Integer.MAX_VALUE;
|
||||
MapleCharacter newControllerDead = null;
|
||||
Character newControllerDead = null;
|
||||
|
||||
MapleCharacter newControllerWithPuppet = null;
|
||||
Character newControllerWithPuppet = null;
|
||||
|
||||
for (MapleCharacter chr : getMap().getAllPlayers()) {
|
||||
for (Character chr : getMap().getAllPlayers()) {
|
||||
if (!chr.isHidden()) {
|
||||
int ctrlMonsSize = chr.getNumControlledMonsters();
|
||||
|
||||
@@ -1869,8 +1870,8 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
||||
* Removes controllability status from the current controller of this mob.
|
||||
*
|
||||
*/
|
||||
public Pair<MapleCharacter, Boolean> aggroRemoveController() {
|
||||
MapleCharacter chrController;
|
||||
public Pair<Character, Boolean> aggroRemoveController() {
|
||||
Character chrController;
|
||||
boolean hadAggro;
|
||||
|
||||
aggroUpdateLock.lock();
|
||||
@@ -1898,10 +1899,10 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
||||
* player controller.
|
||||
*
|
||||
*/
|
||||
public void aggroSwitchController(MapleCharacter newController, boolean immediateAggro) {
|
||||
public void aggroSwitchController(Character newController, boolean immediateAggro) {
|
||||
if (aggroUpdateLock.tryLock()) {
|
||||
try {
|
||||
MapleCharacter prevController = getController();
|
||||
Character prevController = getController();
|
||||
if (prevController == newController) {
|
||||
return;
|
||||
}
|
||||
@@ -1925,7 +1926,7 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
||||
}
|
||||
}
|
||||
|
||||
public void aggroAddPuppet(MapleCharacter player) {
|
||||
public void aggroAddPuppet(Character player) {
|
||||
MapleMonsterAggroCoordinator mmac = map.getAggroCoordinator();
|
||||
mmac.addPuppetAggro(player);
|
||||
|
||||
@@ -1936,7 +1937,7 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
||||
}
|
||||
}
|
||||
|
||||
public void aggroRemovePuppet(MapleCharacter player) {
|
||||
public void aggroRemovePuppet(Character player) {
|
||||
MapleMonsterAggroCoordinator mmac = map.getAggroCoordinator();
|
||||
mmac.removePuppetAggro(player.getId());
|
||||
|
||||
@@ -1953,12 +1954,12 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
||||
*
|
||||
*/
|
||||
public void aggroUpdateController() {
|
||||
MapleCharacter chrController = this.getActiveController();
|
||||
Character chrController = this.getActiveController();
|
||||
if (chrController != null && chrController.isAlive()) {
|
||||
return;
|
||||
}
|
||||
|
||||
MapleCharacter newController = getNextControllerCandidate();
|
||||
Character newController = getNextControllerCandidate();
|
||||
if (newController == null) { // was a new controller found? (if not no one is on the map)
|
||||
return;
|
||||
}
|
||||
@@ -1971,8 +1972,8 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
||||
* puppet nearby on the map it is from...
|
||||
*
|
||||
*/
|
||||
private void aggroUpdatePuppetController(MapleCharacter newController) {
|
||||
MapleCharacter chrController = this.getActiveController();
|
||||
private void aggroUpdatePuppetController(Character newController) {
|
||||
Character chrController = this.getActiveController();
|
||||
boolean updateController = false;
|
||||
|
||||
if (chrController != null && chrController.isAlive()) {
|
||||
@@ -1990,7 +1991,7 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
||||
List<Integer> toRemovePuppets = new LinkedList<>();
|
||||
|
||||
for (Integer cid : puppetOwners) {
|
||||
MapleCharacter chr = map.getCharacterById(cid);
|
||||
Character chr = map.getCharacterById(cid);
|
||||
|
||||
if (chr != null) {
|
||||
if (isCharacterPuppetInVicinity(chr)) {
|
||||
@@ -2035,8 +2036,8 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
||||
* specified player is currently not this mob's controller.
|
||||
*
|
||||
*/
|
||||
public Boolean aggroMoveLifeUpdate(MapleCharacter player) {
|
||||
MapleCharacter chrController = getController();
|
||||
public Boolean aggroMoveLifeUpdate(Character player) {
|
||||
Character chrController = getController();
|
||||
if (chrController != null && player.getId() == chrController.getId()) {
|
||||
boolean aggro = this.isControllerHasAggro();
|
||||
if (aggro) {
|
||||
@@ -2054,8 +2055,8 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
||||
* there is already an active controller for this mob.
|
||||
*
|
||||
*/
|
||||
public void aggroAutoAggroUpdate(MapleCharacter player) {
|
||||
MapleCharacter chrController = this.getActiveController();
|
||||
public void aggroAutoAggroUpdate(Character player) {
|
||||
Character chrController = this.getActiveController();
|
||||
|
||||
if (chrController == null) {
|
||||
this.aggroSwitchController(player, true);
|
||||
@@ -2072,11 +2073,11 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
||||
* target update for the attacker shortly.
|
||||
*
|
||||
*/
|
||||
public void aggroMonsterDamage(MapleCharacter attacker, int damage) {
|
||||
public void aggroMonsterDamage(Character attacker, int damage) {
|
||||
MapleMonsterAggroCoordinator mmac = this.getMapAggroCoordinator();
|
||||
mmac.addAggroDamage(this, attacker.getId(), damage);
|
||||
|
||||
MapleCharacter chrController = this.getController(); // aggro based on DPS rather than first-come-first-served, now live after suggestions thanks to MedicOP, Thora, Vcoc
|
||||
Character chrController = this.getController(); // aggro based on DPS rather than first-come-first-served, now live after suggestions thanks to MedicOP, Thora, Vcoc
|
||||
if (chrController != attacker) {
|
||||
if (this.getMapAggroCoordinator().isLeadingCharacterAggro(this, attacker)) {
|
||||
this.aggroSwitchController(attacker, true);
|
||||
@@ -2104,7 +2105,7 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
||||
c.sendPacket(PacketCreator.controlMonster(mob, false, immediateAggro));
|
||||
}
|
||||
|
||||
private void aggroRefreshPuppetVisibility(MapleCharacter chrController, MapleSummon puppet) {
|
||||
private void aggroRefreshPuppetVisibility(Character chrController, MapleSummon puppet) {
|
||||
// lame patch for client to redirect all aggro to the puppet
|
||||
|
||||
List<MapleMonster> puppetControlled = new LinkedList<>();
|
||||
@@ -2134,7 +2135,7 @@ public class MapleMonster extends AbstractLoadedMapleLife {
|
||||
availablePuppetUpdate = false;
|
||||
Runnable r = () -> {
|
||||
try {
|
||||
MapleCharacter chrController = MapleMonster.this.getActiveController();
|
||||
Character chrController = MapleMonster.this.getActiveController();
|
||||
if (chrController == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
*/
|
||||
package server.life;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import client.MapleClient;
|
||||
import client.inventory.InventoryType;
|
||||
import client.inventory.Item;
|
||||
@@ -373,7 +373,7 @@ public class MaplePlayerNPC extends AbstractMapleMapObject {
|
||||
return availablesBranch.remove(availablesBranch.size() - 1);
|
||||
}
|
||||
|
||||
private static MaplePlayerNPC createPlayerNPCInternal(MapleMap map, Point pos, MapleCharacter chr) {
|
||||
private static MaplePlayerNPC createPlayerNPCInternal(MapleMap map, Point pos, Character chr) {
|
||||
int mapId = map.getId();
|
||||
|
||||
if (!canSpawnPlayerNpc(chr.getName(), mapId)) {
|
||||
@@ -481,7 +481,7 @@ public class MaplePlayerNPC extends AbstractMapleMapObject {
|
||||
}
|
||||
}
|
||||
|
||||
private static List<Integer> removePlayerNPCInternal(MapleMap map, MapleCharacter chr) {
|
||||
private static List<Integer> removePlayerNPCInternal(MapleMap map, Character chr) {
|
||||
Set<Integer> updateMapids = new HashSet<>();
|
||||
|
||||
List<Integer> mapids = new LinkedList<>();
|
||||
@@ -519,7 +519,7 @@ public class MaplePlayerNPC extends AbstractMapleMapObject {
|
||||
return mapids;
|
||||
}
|
||||
|
||||
private static synchronized Pair<MaplePlayerNPC, List<Integer>> processPlayerNPCInternal(MapleMap map, Point pos, MapleCharacter chr, boolean create) {
|
||||
private static synchronized Pair<MaplePlayerNPC, List<Integer>> processPlayerNPCInternal(MapleMap map, Point pos, Character chr, boolean create) {
|
||||
if(create) {
|
||||
return new Pair<>(createPlayerNPCInternal(map, pos, chr), null);
|
||||
} else {
|
||||
@@ -527,11 +527,11 @@ public class MaplePlayerNPC extends AbstractMapleMapObject {
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean spawnPlayerNPC(int mapid, MapleCharacter chr) {
|
||||
public static boolean spawnPlayerNPC(int mapid, Character chr) {
|
||||
return spawnPlayerNPC(mapid, null, chr);
|
||||
}
|
||||
|
||||
public static boolean spawnPlayerNPC(int mapid, Point pos, MapleCharacter chr) {
|
||||
public static boolean spawnPlayerNPC(int mapid, Point pos, Character chr) {
|
||||
if(chr == null) return false;
|
||||
|
||||
MaplePlayerNPC pn = processPlayerNPCInternal(chr.getClient().getChannelServer().getMapFactory().getMap(mapid), pos, chr, true).getLeft();
|
||||
@@ -563,7 +563,7 @@ public class MaplePlayerNPC extends AbstractMapleMapObject {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static void removePlayerNPC(MapleCharacter chr) {
|
||||
public static void removePlayerNPC(Character chr) {
|
||||
if(chr == null) return;
|
||||
|
||||
List<Integer> updateMapids = processPlayerNPCInternal(null, null, chr, false).getRight();
|
||||
@@ -592,7 +592,7 @@ public class MaplePlayerNPC extends AbstractMapleMapObject {
|
||||
c.setWorld(world);
|
||||
c.setChannel(1);
|
||||
|
||||
for(MapleCharacter mc : wserv.loadAndGetAllCharactersView()) {
|
||||
for(Character mc : wserv.loadAndGetAllCharactersView()) {
|
||||
mc.setClient(c);
|
||||
spawnPlayerNPC(mapid, mc);
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
*/
|
||||
package server.life;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import client.MapleDisease;
|
||||
import client.status.MonsterStatus;
|
||||
import constants.game.GameConstants;
|
||||
@@ -106,7 +106,7 @@ public class MobSkill {
|
||||
this.limit = limit;
|
||||
}
|
||||
|
||||
public void applyDelayedEffect(final MapleCharacter player, final MapleMonster monster, final boolean skill, int animationTime) {
|
||||
public void applyDelayedEffect(final Character player, final MapleMonster monster, final boolean skill, int animationTime) {
|
||||
Runnable toRun = () -> {
|
||||
if (monster.isAlive()) {
|
||||
applyEffect(player, monster, skill, null);
|
||||
@@ -117,7 +117,7 @@ public class MobSkill {
|
||||
service.registerOverallAction(monster.getMap().getId(), toRun, animationTime);
|
||||
}
|
||||
|
||||
public void applyEffect(MapleCharacter player, MapleMonster monster, boolean skill, List<MapleCharacter> banishPlayers) {
|
||||
public void applyEffect(Character player, MapleMonster monster, boolean skill, List<Character> banishPlayers) {
|
||||
MapleDisease disease = null;
|
||||
Map<MonsterStatus, Integer> stats = new ArrayMap<>();
|
||||
List<Integer> reflection = new LinkedList<>();
|
||||
@@ -176,7 +176,7 @@ public class MobSkill {
|
||||
break;
|
||||
case 127:
|
||||
if (lt != null && rb != null && skill) {
|
||||
for (MapleCharacter character : getPlayersInRange(monster)) {
|
||||
for (Character character : getPlayersInRange(monster)) {
|
||||
character.dispel();
|
||||
}
|
||||
} else {
|
||||
@@ -327,7 +327,7 @@ public class MobSkill {
|
||||
if (disease != null) {
|
||||
if (lt != null && rb != null && skill) {
|
||||
int i = 0;
|
||||
for (MapleCharacter character : getPlayersInRange(monster)) {
|
||||
for (Character character : getPlayersInRange(monster)) {
|
||||
if (!character.hasActiveBuff(2321005)) { // holy shield
|
||||
if (disease.equals(MapleDisease.SEDUCE)) {
|
||||
if (i < count) {
|
||||
@@ -345,7 +345,7 @@ public class MobSkill {
|
||||
}
|
||||
}
|
||||
|
||||
private List<MapleCharacter> getPlayersInRange(MapleMonster monster) {
|
||||
private List<Character> getPlayersInRange(MapleMonster monster) {
|
||||
return monster.getMap().getPlayersInRange(calculateBoundingBox(monster.getPosition()));
|
||||
}
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package server.life;
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
|
||||
public interface MonsterListener {
|
||||
|
||||
void monsterKilled(int aniTime);
|
||||
void monsterDamaged(MapleCharacter from, int trueDmg);
|
||||
void monsterDamaged(Character from, int trueDmg);
|
||||
void monsterHealed(int trueHeal);
|
||||
}
|
||||
|
||||
@@ -21,11 +21,12 @@
|
||||
*/
|
||||
package server.life;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import java.awt.Point;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import client.Character;
|
||||
import net.server.Server;
|
||||
|
||||
import java.awt.*;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
public class SpawnPoint {
|
||||
private int monster, mobTime, team, fh, f;
|
||||
private Point pos;
|
||||
@@ -93,7 +94,7 @@ public class SpawnPoint {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void monsterDamaged(MapleCharacter from, int trueDmg) {}
|
||||
public void monsterDamaged(Character from, int trueDmg) {}
|
||||
|
||||
@Override
|
||||
public void monsterHealed(int trueHeal) {}
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
*/
|
||||
package server.loot;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import client.inventory.InventoryType;
|
||||
import client.inventory.Item;
|
||||
|
||||
@@ -34,7 +34,7 @@ import java.util.Map;
|
||||
public class MapleLootInventory {
|
||||
Map<Integer, Integer> items = new HashMap<>(50);
|
||||
|
||||
public MapleLootInventory(MapleCharacter from) {
|
||||
public MapleLootInventory(Character from) {
|
||||
for (InventoryType values : InventoryType.values()) {
|
||||
|
||||
for(Item it : from.getInventory(values).list()) {
|
||||
|
||||
@@ -19,22 +19,21 @@
|
||||
*/
|
||||
package server.loot;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
//import server.MapleItemInformationProvider;
|
||||
import client.Character;
|
||||
import server.life.MapleMonsterInformationProvider;
|
||||
import server.life.MonsterDropEntry;
|
||||
import server.quest.MapleQuest;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Ronan
|
||||
*/
|
||||
public class MapleLootManager {
|
||||
|
||||
private static boolean isRelevantDrop(MonsterDropEntry dropEntry, List<MapleCharacter> players, List<MapleLootInventory> playersInv) {
|
||||
private static boolean isRelevantDrop(MonsterDropEntry dropEntry, List<Character> players, List<MapleLootInventory> playersInv) {
|
||||
int qStartAmount = 0, qCompleteAmount = 0;
|
||||
MapleQuest quest = MapleQuest.getInstance(dropEntry.questid);
|
||||
if (quest != null) {
|
||||
@@ -74,12 +73,12 @@ public class MapleLootManager {
|
||||
return false;
|
||||
}
|
||||
|
||||
public static List<MonsterDropEntry> retrieveRelevantDrops(int monsterId, List<MapleCharacter> players) {
|
||||
public static List<MonsterDropEntry> retrieveRelevantDrops(int monsterId, List<Character> players) {
|
||||
List<MonsterDropEntry> loots = MapleMonsterInformationProvider.getInstance().retrieveEffectiveDrop(monsterId);
|
||||
if(loots.isEmpty()) return loots;
|
||||
|
||||
List<MapleLootInventory> playersInv = new LinkedList<>();
|
||||
for(MapleCharacter chr : players) {
|
||||
for(Character chr : players) {
|
||||
MapleLootInventory lootInv = new MapleLootInventory(chr);
|
||||
playersInv.add(lootInv);
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
*/
|
||||
package server.maps;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import config.YamlConfig;
|
||||
import net.server.services.task.channel.OverallService;
|
||||
import net.server.services.type.ChannelServices;
|
||||
@@ -47,7 +47,7 @@ public class MapleDoor {
|
||||
private MapleDoorObject townDoor;
|
||||
private MapleDoorObject areaDoor;
|
||||
|
||||
public MapleDoor(MapleCharacter owner, Point targetPosition) {
|
||||
public MapleDoor(Character owner, Point targetPosition) {
|
||||
this.ownerId = owner.getId();
|
||||
this.target = owner.getMap();
|
||||
|
||||
@@ -79,7 +79,7 @@ public class MapleDoor {
|
||||
}
|
||||
}
|
||||
|
||||
public void updateDoorPortal(MapleCharacter owner) {
|
||||
public void updateDoorPortal(Character owner) {
|
||||
int slot = owner.fetchDoorSlot();
|
||||
|
||||
MaplePortal nextTownPortal = getTownDoorPortal(slot);
|
||||
@@ -89,25 +89,25 @@ public class MapleDoor {
|
||||
}
|
||||
}
|
||||
|
||||
private void broadcastRemoveDoor(MapleCharacter owner) {
|
||||
private void broadcastRemoveDoor(Character owner) {
|
||||
MapleDoorObject areaDoor = this.getAreaDoor();
|
||||
MapleDoorObject townDoor = this.getTownDoor();
|
||||
|
||||
MapleMap target = this.getTarget();
|
||||
MapleMap town = this.getTown();
|
||||
|
||||
Collection<MapleCharacter> targetChars = target.getCharacters();
|
||||
Collection<MapleCharacter> townChars = town.getCharacters();
|
||||
Collection<Character> targetChars = target.getCharacters();
|
||||
Collection<Character> townChars = town.getCharacters();
|
||||
|
||||
target.removeMapObject(areaDoor);
|
||||
town.removeMapObject(townDoor);
|
||||
|
||||
for (MapleCharacter chr : targetChars) {
|
||||
for (Character chr : targetChars) {
|
||||
areaDoor.sendDestroyData(chr.getClient());
|
||||
chr.removeVisibleMapObject(areaDoor);
|
||||
}
|
||||
|
||||
for (MapleCharacter chr : townChars) {
|
||||
for (Character chr : townChars) {
|
||||
townDoor.sendDestroyData(chr.getClient());
|
||||
chr.removeVisibleMapObject(townDoor);
|
||||
}
|
||||
@@ -115,7 +115,7 @@ public class MapleDoor {
|
||||
owner.removePartyDoor(false);
|
||||
|
||||
if (this.getTownPortal().getId() == 0x80) {
|
||||
for (MapleCharacter chr : townChars) {
|
||||
for (Character chr : townChars) {
|
||||
MapleDoor door = chr.getMainTownDoor();
|
||||
if (door != null) {
|
||||
townDoor.sendSpawnData(chr.getClient());
|
||||
@@ -125,7 +125,7 @@ public class MapleDoor {
|
||||
}
|
||||
}
|
||||
|
||||
public static void attemptRemoveDoor(final MapleCharacter owner) {
|
||||
public static void attemptRemoveDoor(final Character owner) {
|
||||
final MapleDoor destroyDoor = owner.getPlayerDoor();
|
||||
if (destroyDoor != null && destroyDoor.dispose()) {
|
||||
long effectTimeLeft = 3000 - destroyDoor.getElapsedDeployTime(); // portal deployment effect duration
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
*/
|
||||
package server.maps;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import client.MapleClient;
|
||||
import net.server.audit.locks.MonitoredLockType;
|
||||
import net.server.audit.locks.MonitoredReadLock;
|
||||
@@ -88,7 +88,7 @@ public class MapleDoorObject extends AbstractMapleMapObject {
|
||||
}
|
||||
}
|
||||
|
||||
public void warp(final MapleCharacter chr) {
|
||||
public void warp(final Character chr) {
|
||||
MapleParty party = chr.getParty();
|
||||
if (chr.getId() == ownerId || (party != null && party.getMemberById(ownerId) != null)) {
|
||||
chr.sendPacket(PacketCreator.playPortalSound());
|
||||
@@ -110,7 +110,7 @@ public class MapleDoorObject extends AbstractMapleMapObject {
|
||||
}
|
||||
|
||||
public void sendSpawnData(MapleClient client, boolean launched) {
|
||||
MapleCharacter chr = client.getPlayer();
|
||||
Character chr = client.getPlayer();
|
||||
if (this.getFrom().getId() == chr.getMapId()) {
|
||||
if (chr.getParty() != null && (this.getOwnerId() == chr.getId() || chr.getParty().getMemberById(this.getOwnerId()) != null)) {
|
||||
chr.sendPacket(PacketCreator.partyPortal(this.getFrom().getId(), this.getTo().getId(), this.toPosition()));
|
||||
@@ -125,7 +125,7 @@ public class MapleDoorObject extends AbstractMapleMapObject {
|
||||
|
||||
@Override
|
||||
public void sendDestroyData(MapleClient client) {
|
||||
MapleCharacter chr = client.getPlayer();
|
||||
Character chr = client.getPlayer();
|
||||
if (from.getId() == chr.getMapId()) {
|
||||
MapleParty party = chr.getParty();
|
||||
if (party != null && (ownerId == chr.getId() || party.getMemberById(ownerId) != null)) {
|
||||
|
||||
@@ -21,7 +21,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package server.maps;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import client.MapleClient;
|
||||
import tools.PacketCreator;
|
||||
|
||||
@@ -29,9 +29,9 @@ import tools.PacketCreator;
|
||||
|
||||
public class MapleDragon extends AbstractAnimatedMapleMapObject {
|
||||
|
||||
private MapleCharacter owner;
|
||||
private Character owner;
|
||||
|
||||
public MapleDragon(MapleCharacter chr) {
|
||||
public MapleDragon(Character chr) {
|
||||
super();
|
||||
this.owner = chr;
|
||||
this.setPosition(chr.getPosition());
|
||||
@@ -59,7 +59,7 @@ public class MapleDragon extends AbstractAnimatedMapleMapObject {
|
||||
c.sendPacket(PacketCreator.removeDragon(owner.getId()));
|
||||
}
|
||||
|
||||
public MapleCharacter getOwner() {
|
||||
public Character getOwner() {
|
||||
return owner;
|
||||
}
|
||||
}
|
||||
@@ -21,7 +21,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package server.maps;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import client.MapleClient;
|
||||
import constants.game.GameConstants;
|
||||
import net.server.audit.locks.MonitoredLockType;
|
||||
@@ -142,7 +142,7 @@ public class MapleGenericPortal implements MaplePortal {
|
||||
npe.printStackTrace();
|
||||
}
|
||||
} else if (getTargetMapId() != 999999999) {
|
||||
MapleCharacter chr = c.getPlayer();
|
||||
Character chr = c.getPlayer();
|
||||
if (!(chr.getChalkboard() != null && GameConstants.isFreeMarketRoom(getTargetMapId()))) {
|
||||
MapleMap to = chr.getEventInstance() == null ? c.getChannelServer().getMapFactory().getMap(getTargetMapId()) : chr.getEventInstance().getMapInstance(getTargetMapId());
|
||||
MaplePortal pto = to.getPortal(getTarget());
|
||||
|
||||
@@ -21,7 +21,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package server.maps;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import client.MapleClient;
|
||||
import client.inventory.Inventory;
|
||||
import client.inventory.InventoryType;
|
||||
@@ -63,7 +63,7 @@ public class MapleHiredMerchant extends AbstractMapleMapObject {
|
||||
private long start;
|
||||
private String ownerName = "";
|
||||
private String description = "";
|
||||
private MapleCharacter[] visitors = new MapleCharacter[3];
|
||||
private Character[] visitors = new Character[3];
|
||||
private final List<MaplePlayerShopItem> items = new LinkedList<>();
|
||||
private List<Pair<String, Byte>> messages = new LinkedList<>();
|
||||
private List<SoldItem> sold = new LinkedList<>();
|
||||
@@ -72,7 +72,7 @@ public class MapleHiredMerchant extends AbstractMapleMapObject {
|
||||
private MapleMap map;
|
||||
private Lock visitorLock = MonitoredReentrantLockFactory.createLock(MonitoredLockType.VISITOR_MERCH, true);
|
||||
|
||||
public MapleHiredMerchant(final MapleCharacter owner, String desc, int itemId) {
|
||||
public MapleHiredMerchant(final Character owner, String desc, int itemId) {
|
||||
this.setPosition(owner.getPosition());
|
||||
this.start = System.currentTimeMillis();
|
||||
this.ownerId = owner.getId();
|
||||
@@ -94,7 +94,7 @@ public class MapleHiredMerchant extends AbstractMapleMapObject {
|
||||
}
|
||||
|
||||
private void broadcastToVisitors(Packet packet) {
|
||||
for (MapleCharacter visitor : visitors) {
|
||||
for (Character visitor : visitors) {
|
||||
if (visitor != null) {
|
||||
visitor.sendPacket(packet);
|
||||
}
|
||||
@@ -106,7 +106,7 @@ public class MapleHiredMerchant extends AbstractMapleMapObject {
|
||||
try {
|
||||
byte count = 0;
|
||||
if (this.isOpen()) {
|
||||
for (MapleCharacter visitor : visitors) {
|
||||
for (Character visitor : visitors) {
|
||||
if (visitor != null) {
|
||||
count++;
|
||||
}
|
||||
@@ -121,7 +121,7 @@ public class MapleHiredMerchant extends AbstractMapleMapObject {
|
||||
}
|
||||
}
|
||||
|
||||
public boolean addVisitor(MapleCharacter visitor) {
|
||||
public boolean addVisitor(Character visitor) {
|
||||
visitorLock.lock();
|
||||
try {
|
||||
int i = this.getFreeSlot();
|
||||
@@ -139,7 +139,7 @@ public class MapleHiredMerchant extends AbstractMapleMapObject {
|
||||
}
|
||||
}
|
||||
|
||||
public void removeVisitor(MapleCharacter visitor) {
|
||||
public void removeVisitor(Character visitor) {
|
||||
visitorLock.lock();
|
||||
try {
|
||||
int slot = getVisitorSlot(visitor);
|
||||
@@ -156,7 +156,7 @@ public class MapleHiredMerchant extends AbstractMapleMapObject {
|
||||
}
|
||||
}
|
||||
|
||||
public int getVisitorSlotThreadsafe(MapleCharacter visitor) {
|
||||
public int getVisitorSlotThreadsafe(Character visitor) {
|
||||
visitorLock.lock();
|
||||
try {
|
||||
return getVisitorSlot(visitor);
|
||||
@@ -165,7 +165,7 @@ public class MapleHiredMerchant extends AbstractMapleMapObject {
|
||||
}
|
||||
}
|
||||
|
||||
private int getVisitorSlot(MapleCharacter visitor) {
|
||||
private int getVisitorSlot(Character visitor) {
|
||||
for (int i = 0; i < 3; i++) {
|
||||
if (visitors[i] != null && visitors[i].getId() == visitor.getId()){
|
||||
return i;
|
||||
@@ -178,7 +178,7 @@ public class MapleHiredMerchant extends AbstractMapleMapObject {
|
||||
visitorLock.lock();
|
||||
try {
|
||||
for (int i = 0; i < 3; i++) {
|
||||
MapleCharacter visitor = visitors[i];
|
||||
Character visitor = visitors[i];
|
||||
|
||||
if (visitor != null) {
|
||||
visitor.setHiredMerchant(null);
|
||||
@@ -196,7 +196,7 @@ public class MapleHiredMerchant extends AbstractMapleMapObject {
|
||||
}
|
||||
}
|
||||
|
||||
private void removeOwner(MapleCharacter owner) {
|
||||
private void removeOwner(Character owner) {
|
||||
if (owner.getHiredMerchant() == this) {
|
||||
owner.sendPacket(PacketCreator.hiredMerchantOwnerLeave());
|
||||
owner.sendPacket(PacketCreator.leaveHiredMerchant(0x00, 0x03));
|
||||
@@ -204,7 +204,7 @@ public class MapleHiredMerchant extends AbstractMapleMapObject {
|
||||
}
|
||||
}
|
||||
|
||||
public void withdrawMesos(MapleCharacter chr) {
|
||||
public void withdrawMesos(Character chr) {
|
||||
if (isOwner(chr)) {
|
||||
synchronized (items) {
|
||||
chr.withdrawMerchantMesos();
|
||||
@@ -212,7 +212,7 @@ public class MapleHiredMerchant extends AbstractMapleMapObject {
|
||||
}
|
||||
}
|
||||
|
||||
public void takeItemBack(int slot, MapleCharacter chr) {
|
||||
public void takeItemBack(int slot, Character chr) {
|
||||
synchronized (items) {
|
||||
MaplePlayerShopItem shopItem = items.get(slot);
|
||||
if(shopItem.isExist()) {
|
||||
@@ -292,7 +292,7 @@ public class MapleHiredMerchant extends AbstractMapleMapObject {
|
||||
announceItemSold(newItem, price, getQuantityLeft(pItem.getItem().getItemId()));
|
||||
}
|
||||
|
||||
MapleCharacter owner = Server.getInstance().getWorld(world).getPlayerStorage().getCharacterByName(ownerName);
|
||||
Character owner = Server.getInstance().getWorld(world).getPlayerStorage().getCharacterByName(ownerName);
|
||||
if (owner != null) {
|
||||
owner.addMerchantMesos(price);
|
||||
} else {
|
||||
@@ -338,7 +338,7 @@ public class MapleHiredMerchant extends AbstractMapleMapObject {
|
||||
private void announceItemSold(Item item, int mesos, int inStore) {
|
||||
String qtyStr = (item.getQuantity() > 1) ? " x " + item.getQuantity() : "";
|
||||
|
||||
MapleCharacter player = Server.getInstance().getWorld(world).getPlayerStorage().getCharacterById(ownerId);
|
||||
Character player = Server.getInstance().getWorld(world).getPlayerStorage().getCharacterById(ownerId);
|
||||
if(player != null && player.isLoggedinWorld()) {
|
||||
player.dropMessage(6, "[Hired Merchant] Item '" + MapleItemInformationProvider.getInstance().getName(item.getItemId()) + "'" + qtyStr + " has been sold for " + mesos + " mesos. (" + inStore + " left)");
|
||||
}
|
||||
@@ -349,7 +349,7 @@ public class MapleHiredMerchant extends AbstractMapleMapObject {
|
||||
map.broadcastMessage(PacketCreator.removeHiredMerchantBox(getOwnerId()));
|
||||
map.removeMapObject(this);
|
||||
|
||||
MapleCharacter owner = Server.getInstance().getWorld(world).getPlayerStorage().getCharacterById(ownerId);
|
||||
Character owner = Server.getInstance().getWorld(world).getPlayerStorage().getCharacterById(ownerId);
|
||||
|
||||
visitorLock.lock();
|
||||
try {
|
||||
@@ -374,7 +374,7 @@ public class MapleHiredMerchant extends AbstractMapleMapObject {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
|
||||
MapleCharacter player = Server.getInstance().getWorld(world).getPlayerStorage().getCharacterById(ownerId);
|
||||
Character player = Server.getInstance().getWorld(world).getPlayerStorage().getCharacterById(ownerId);
|
||||
if (player != null) {
|
||||
player.setHasMerchant(false);
|
||||
} else {
|
||||
@@ -390,7 +390,7 @@ public class MapleHiredMerchant extends AbstractMapleMapObject {
|
||||
map = null;
|
||||
}
|
||||
|
||||
public void closeOwnerMerchant(MapleCharacter chr) {
|
||||
public void closeOwnerMerchant(Character chr) {
|
||||
if(this.isOwner(chr)) {
|
||||
this.closeShop(chr.getClient(), false);
|
||||
chr.setHasMerchant(false);
|
||||
@@ -430,7 +430,7 @@ public class MapleHiredMerchant extends AbstractMapleMapObject {
|
||||
}
|
||||
|
||||
// thanks Rohenn for noticing a possible dupe scenario on closing shop
|
||||
MapleCharacter player = c.getWorldServer().getPlayerStorage().getCharacterById(ownerId);
|
||||
Character player = c.getWorldServer().getPlayerStorage().getCharacterById(ownerId);
|
||||
if (player != null) {
|
||||
player.setHasMerchant(false);
|
||||
} else {
|
||||
@@ -455,7 +455,7 @@ public class MapleHiredMerchant extends AbstractMapleMapObject {
|
||||
Server.getInstance().getWorld(world).unregisterHiredMerchant(this);
|
||||
}
|
||||
|
||||
public synchronized void visitShop(MapleCharacter chr) {
|
||||
public synchronized void visitShop(Character chr) {
|
||||
visitorLock.lock();
|
||||
try {
|
||||
if (this.isOwner(chr)) {
|
||||
@@ -496,10 +496,10 @@ public class MapleHiredMerchant extends AbstractMapleMapObject {
|
||||
return description;
|
||||
}
|
||||
|
||||
public MapleCharacter[] getVisitors() {
|
||||
public Character[] getVisitors() {
|
||||
visitorLock.lock();
|
||||
try {
|
||||
MapleCharacter[] copy = new MapleCharacter[3];
|
||||
Character[] copy = new Character[3];
|
||||
for(int i = 0; i < visitors.length; i++) copy[i] = visitors[i];
|
||||
|
||||
return copy;
|
||||
@@ -589,11 +589,11 @@ public class MapleHiredMerchant extends AbstractMapleMapObject {
|
||||
return itemId;
|
||||
}
|
||||
|
||||
public boolean isOwner(MapleCharacter chr) {
|
||||
public boolean isOwner(Character chr) {
|
||||
return chr.getId() == ownerId;
|
||||
}
|
||||
|
||||
public void sendMessage(MapleCharacter chr, String msg) {
|
||||
public void sendMessage(Character chr, String msg) {
|
||||
String message = chr.getName() + " : " + msg;
|
||||
byte slot = (byte) (getVisitorSlot(chr) + 1);
|
||||
|
||||
@@ -647,7 +647,7 @@ public class MapleHiredMerchant extends AbstractMapleMapObject {
|
||||
FredrickProcessor.insertFredrickLog(this.ownerId);
|
||||
}
|
||||
|
||||
private static boolean check(MapleCharacter chr, List<MaplePlayerShopItem> items) {
|
||||
private static boolean check(Character chr, List<MaplePlayerShopItem> items) {
|
||||
List<Pair<Item, InventoryType>> li = new ArrayList<>();
|
||||
for (MaplePlayerShopItem item : items) {
|
||||
Item it = item.getItem().copy();
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package server.maps;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import client.MapleClient;
|
||||
import net.packet.Packet;
|
||||
import tools.PacketCreator;
|
||||
@@ -9,12 +9,12 @@ import java.awt.*;
|
||||
|
||||
public class MapleKite extends AbstractMapleMapObject {
|
||||
private final Point pos;
|
||||
private final MapleCharacter owner;
|
||||
private final Character owner;
|
||||
private final String text;
|
||||
private final int ft;
|
||||
private final int itemid;
|
||||
|
||||
public MapleKite(MapleCharacter owner, String text, int itemId) {
|
||||
public MapleKite(Character owner, String text, int itemId) {
|
||||
this.owner = owner;
|
||||
this.pos = owner.getPosition();
|
||||
this.ft = owner.getFh();
|
||||
@@ -32,7 +32,7 @@ public class MapleKite extends AbstractMapleMapObject {
|
||||
return pos.getLocation();
|
||||
}
|
||||
|
||||
public MapleCharacter getOwner() {
|
||||
public Character getOwner() {
|
||||
return owner;
|
||||
}
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
package server.maps;
|
||||
|
||||
import client.BuffStat;
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import client.MapleClient;
|
||||
import client.autoban.AutobanFactory;
|
||||
import client.inventory.Equip;
|
||||
@@ -88,7 +88,7 @@ public class MapleMap {
|
||||
private Collection<SpawnPoint> allMonsterSpawn = Collections.synchronizedList(new LinkedList<>());
|
||||
private AtomicInteger spawnedMonstersOnMap = new AtomicInteger(0);
|
||||
private AtomicInteger droppedItemCount = new AtomicInteger(0);
|
||||
private Collection<MapleCharacter> characters = new LinkedHashSet<>();
|
||||
private Collection<Character> characters = new LinkedHashSet<>();
|
||||
private Map<Integer, Set<Integer>> mapParty = new LinkedHashMap<>();
|
||||
private Map<Integer, MaplePortal> portals = new HashMap<>();
|
||||
private Map<Integer, Integer> backgroundTypes = new HashMap<>();
|
||||
@@ -139,7 +139,7 @@ public class MapleMap {
|
||||
private Pair<Integer, String> timeMob = null;
|
||||
private short mobInterval = 5000;
|
||||
private boolean allowSummons = true; // All maps should have this true at the beginning
|
||||
private MapleCharacter mapOwner = null;
|
||||
private Character mapOwner = null;
|
||||
private long mapOwnerLastActivityTime = Long.MAX_VALUE;
|
||||
|
||||
// events
|
||||
@@ -202,15 +202,15 @@ public class MapleMap {
|
||||
return world;
|
||||
}
|
||||
|
||||
public void broadcastPacket(MapleCharacter source, Packet packet) {
|
||||
public void broadcastPacket(Character source, Packet packet) {
|
||||
broadcastPacket(packet, chr -> chr != source);
|
||||
}
|
||||
|
||||
public void broadcastGMPacket(MapleCharacter source, Packet packet) {
|
||||
public void broadcastGMPacket(Character source, Packet packet) {
|
||||
broadcastPacket(packet, chr -> chr != source && chr.gmLevel() >= source.gmLevel());
|
||||
}
|
||||
|
||||
private void broadcastPacket(Packet packet, Predicate<MapleCharacter> chrFilter) {
|
||||
private void broadcastPacket(Packet packet, Predicate<Character> chrFilter) {
|
||||
chrRLock.lock();
|
||||
try {
|
||||
characters.stream()
|
||||
@@ -344,7 +344,7 @@ public class MapleMap {
|
||||
}
|
||||
|
||||
public int getCurrentPartyId() {
|
||||
for (MapleCharacter chr : this.getCharacters()) {
|
||||
for (Character chr : this.getCharacters()) {
|
||||
if (chr.getPartyId() != -1) {
|
||||
return chr.getPartyId();
|
||||
}
|
||||
@@ -388,7 +388,7 @@ public class MapleMap {
|
||||
}
|
||||
|
||||
private void spawnAndAddRangedMapObject(MapleMapObject mapobject, DelayedPacketCreation packetbakery, SpawnCondition condition) {
|
||||
List<MapleCharacter> inRangeCharacters = new LinkedList<>();
|
||||
List<Character> inRangeCharacters = new LinkedList<>();
|
||||
int curOID = getUsableOID();
|
||||
|
||||
chrRLock.lock();
|
||||
@@ -396,7 +396,7 @@ public class MapleMap {
|
||||
try {
|
||||
mapobject.setObjectId(curOID);
|
||||
this.mapobjects.put(curOID, mapobject);
|
||||
for (MapleCharacter chr : characters) {
|
||||
for (Character chr : characters) {
|
||||
if (condition == null || condition.canSpawn(chr)) {
|
||||
if (chr.getPosition().distanceSq(mapobject.getPosition()) <= getRangedDistance()) {
|
||||
inRangeCharacters.add(chr);
|
||||
@@ -409,19 +409,19 @@ public class MapleMap {
|
||||
chrRLock.unlock();
|
||||
}
|
||||
|
||||
for (MapleCharacter chr : inRangeCharacters) {
|
||||
for (Character chr : inRangeCharacters) {
|
||||
packetbakery.sendPackets(chr.getClient());
|
||||
}
|
||||
}
|
||||
|
||||
private void spawnRangedMapObject(MapleMapObject mapobject, DelayedPacketCreation packetbakery, SpawnCondition condition) {
|
||||
List<MapleCharacter> inRangeCharacters = new LinkedList<>();
|
||||
List<Character> inRangeCharacters = new LinkedList<>();
|
||||
|
||||
chrRLock.lock();
|
||||
try {
|
||||
int curOID = getUsableOID();
|
||||
mapobject.setObjectId(curOID);
|
||||
for (MapleCharacter chr : characters) {
|
||||
for (Character chr : characters) {
|
||||
if (condition == null || condition.canSpawn(chr)) {
|
||||
if (chr.getPosition().distanceSq(mapobject.getPosition()) <= getRangedDistance()) {
|
||||
inRangeCharacters.add(chr);
|
||||
@@ -433,7 +433,7 @@ public class MapleMap {
|
||||
chrRLock.unlock();
|
||||
}
|
||||
|
||||
for (MapleCharacter chr : inRangeCharacters) {
|
||||
for (Character chr : inRangeCharacters) {
|
||||
packetbakery.sendPackets(chr.getClient());
|
||||
}
|
||||
}
|
||||
@@ -608,7 +608,7 @@ public class MapleMap {
|
||||
return new Pair<>(getRoundedCoordinate(angle), (int) distn);
|
||||
}
|
||||
|
||||
private static void sortDropEntries(List<MonsterDropEntry> from, List<MonsterDropEntry> item, List<MonsterDropEntry> visibleQuest, List<MonsterDropEntry> otherQuest, MapleCharacter chr) {
|
||||
private static void sortDropEntries(List<MonsterDropEntry> from, List<MonsterDropEntry> item, List<MonsterDropEntry> visibleQuest, List<MonsterDropEntry> otherQuest, Character chr) {
|
||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
||||
|
||||
for(MonsterDropEntry mde : from) {
|
||||
@@ -624,7 +624,7 @@ public class MapleMap {
|
||||
}
|
||||
}
|
||||
|
||||
private byte dropItemsFromMonsterOnMap(List<MonsterDropEntry> dropEntry, Point pos, byte d, int chRate, byte droptype, int mobpos, MapleCharacter chr, MapleMonster mob) {
|
||||
private byte dropItemsFromMonsterOnMap(List<MonsterDropEntry> dropEntry, Point pos, byte d, int chRate, byte droptype, int mobpos, Character chr, MapleMonster mob) {
|
||||
if(dropEntry.isEmpty()) {
|
||||
return d;
|
||||
}
|
||||
@@ -673,7 +673,7 @@ public class MapleMap {
|
||||
return d;
|
||||
}
|
||||
|
||||
private byte dropGlobalItemsFromMonsterOnMap(List<MonsterGlobalDropEntry> globalEntry, Point pos, byte d, byte droptype, int mobpos, MapleCharacter chr, MapleMonster mob) {
|
||||
private byte dropGlobalItemsFromMonsterOnMap(List<MonsterGlobalDropEntry> globalEntry, Point pos, byte d, byte droptype, int mobpos, Character chr, MapleMonster mob) {
|
||||
Collections.shuffle(globalEntry);
|
||||
|
||||
Item idrop;
|
||||
@@ -701,7 +701,7 @@ public class MapleMap {
|
||||
return d;
|
||||
}
|
||||
|
||||
private void dropFromMonster(final MapleCharacter chr, final MapleMonster mob, final boolean useBaseRate) {
|
||||
private void dropFromMonster(final Character chr, final MapleMonster mob, final boolean useBaseRate) {
|
||||
if (mob.dropsDisabled() || !dropsOn) {
|
||||
return;
|
||||
}
|
||||
@@ -738,7 +738,7 @@ public class MapleMap {
|
||||
registerMobItemDrops(droptype, mobpos, chRate, pos, dropEntry, visibleQuestEntry, otherQuestEntry, globalEntry, chr, mob);
|
||||
}
|
||||
|
||||
public void dropItemsFromMonster(List<MonsterDropEntry> list, final MapleCharacter chr, final MapleMonster mob) {
|
||||
public void dropItemsFromMonster(List<MonsterDropEntry> list, final Character chr, final MapleMonster mob) {
|
||||
if (mob.dropsDisabled() || !dropsOn) {
|
||||
return;
|
||||
}
|
||||
@@ -752,11 +752,11 @@ public class MapleMap {
|
||||
dropItemsFromMonsterOnMap(list, pos, d, chRate, droptype, mobpos, chr, mob);
|
||||
}
|
||||
|
||||
public void dropFromFriendlyMonster(final MapleCharacter chr, final MapleMonster mob) {
|
||||
public void dropFromFriendlyMonster(final Character chr, final MapleMonster mob) {
|
||||
dropFromMonster(chr, mob, true);
|
||||
}
|
||||
|
||||
public void dropFromReactor(final MapleCharacter chr, final MapleReactor reactor, Item drop, Point dropPos, short questid) {
|
||||
public void dropFromReactor(final Character chr, final MapleReactor reactor, Item drop, Point dropPos, short questid) {
|
||||
spawnDrop(drop, this.calcDropPos(dropPos, reactor.getPosition()), reactor, chr, (byte)(chr.getParty() != null ? 1 : 0), questid);
|
||||
}
|
||||
|
||||
@@ -935,7 +935,7 @@ public class MapleMap {
|
||||
}
|
||||
}
|
||||
|
||||
private void registerMobItemDrops(byte droptype, int mobpos, int chRate, Point pos, List<MonsterDropEntry> dropEntry, List<MonsterDropEntry> visibleQuestEntry, List<MonsterDropEntry> otherQuestEntry, List<MonsterGlobalDropEntry> globalEntry, MapleCharacter chr, MapleMonster mob) {
|
||||
private void registerMobItemDrops(byte droptype, int mobpos, int chRate, Point pos, List<MonsterDropEntry> dropEntry, List<MonsterDropEntry> visibleQuestEntry, List<MonsterDropEntry> otherQuestEntry, List<MonsterGlobalDropEntry> globalEntry, Character chr, MapleMonster mob) {
|
||||
MobLootEntry mle = new MobLootEntry(droptype, mobpos, chRate, pos, dropEntry, visibleQuestEntry, otherQuestEntry, globalEntry, chr, mob);
|
||||
|
||||
if(YamlConfig.config.server.USE_SPAWN_LOOT_ON_ANIMATION) {
|
||||
@@ -1021,7 +1021,7 @@ public class MapleMap {
|
||||
unregisterItemDrop(mdrop);
|
||||
}
|
||||
|
||||
public List<MapleMapItem> updatePlayerItemDropsToParty(int partyid, int charid, List<MapleCharacter> partyMembers, MapleCharacter partyLeaver) {
|
||||
public List<MapleMapItem> updatePlayerItemDropsToParty(int partyid, int charid, List<Character> partyMembers, Character partyLeaver) {
|
||||
List<MapleMapItem> partyDrops = new LinkedList<>();
|
||||
|
||||
for (MapleMapItem mdrop : getDroppedItems()) {
|
||||
@@ -1037,7 +1037,7 @@ public class MapleMap {
|
||||
Packet removePacket = PacketCreator.silentRemoveItemFromMap(mdrop.getObjectId());
|
||||
Packet updatePacket = PacketCreator.updateMapItemObject(mdrop, partyLeaver == null);
|
||||
|
||||
for (MapleCharacter mc : partyMembers) {
|
||||
for (Character mc : partyMembers) {
|
||||
if (this.equals(mc.getMap())) {
|
||||
mc.sendPacket(removePacket);
|
||||
|
||||
@@ -1067,7 +1067,7 @@ public class MapleMap {
|
||||
return partyDrops;
|
||||
}
|
||||
|
||||
public void updatePartyItemDropsToNewcomer(MapleCharacter newcomer, List<MapleMapItem> partyItems) {
|
||||
public void updatePartyItemDropsToNewcomer(Character newcomer, List<MapleMapItem> partyItems) {
|
||||
for (MapleMapItem mdrop : partyItems) {
|
||||
mdrop.lockItem();
|
||||
try {
|
||||
@@ -1093,11 +1093,11 @@ public class MapleMap {
|
||||
}
|
||||
}
|
||||
|
||||
private void spawnDrop(final Item idrop, final Point dropPos, final MapleMapObject dropper, final MapleCharacter chr, final byte droptype, final short questid) {
|
||||
private void spawnDrop(final Item idrop, final Point dropPos, final MapleMapObject dropper, final Character chr, final byte droptype, final short questid) {
|
||||
final MapleMapItem mdrop = new MapleMapItem(idrop, dropPos, dropper, chr, chr.getClient(), droptype, false, questid);
|
||||
mdrop.setDropTime(Server.getInstance().getCurrentTime());
|
||||
spawnAndAddRangedMapObject(mdrop, c -> {
|
||||
MapleCharacter chr1 = c.getPlayer();
|
||||
Character chr1 = c.getPlayer();
|
||||
|
||||
if (chr1.needQuestItem(questid, idrop.getItemId())) {
|
||||
mdrop.lockItem();
|
||||
@@ -1113,7 +1113,7 @@ public class MapleMap {
|
||||
activateItemReactors(mdrop, chr.getClient());
|
||||
}
|
||||
|
||||
public final void spawnMesoDrop(final int meso, final Point position, final MapleMapObject dropper, final MapleCharacter owner, final boolean playerDrop, final byte droptype) {
|
||||
public final void spawnMesoDrop(final int meso, final Point position, final MapleMapObject dropper, final Character owner, final boolean playerDrop, final byte droptype) {
|
||||
final Point droppos = calcDropPos(position, position);
|
||||
final MapleMapItem mdrop = new MapleMapItem(meso, droppos, dropper, owner, owner.getClient(), droptype, playerDrop);
|
||||
mdrop.setDropTime(Server.getInstance().getCurrentTime());
|
||||
@@ -1130,7 +1130,7 @@ public class MapleMap {
|
||||
instantiateItemDrop(mdrop);
|
||||
}
|
||||
|
||||
public final void disappearingItemDrop(final MapleMapObject dropper, final MapleCharacter owner, final Item item, final Point pos) {
|
||||
public final void disappearingItemDrop(final MapleMapObject dropper, final Character owner, final Item item, final Point pos) {
|
||||
final Point droppos = calcDropPos(pos, pos);
|
||||
final MapleMapItem mdrop = new MapleMapItem(item, droppos, dropper, owner, owner.getClient(), (byte) 1, false);
|
||||
|
||||
@@ -1142,7 +1142,7 @@ public class MapleMap {
|
||||
}
|
||||
}
|
||||
|
||||
public final void disappearingMesoDrop(final int meso, final MapleMapObject dropper, final MapleCharacter owner, final Point pos) {
|
||||
public final void disappearingMesoDrop(final int meso, final MapleMapObject dropper, final Character owner, final Point pos) {
|
||||
final Point droppos = calcDropPos(pos, pos);
|
||||
final MapleMapItem mdrop = new MapleMapItem(meso, droppos, dropper, owner, owner.getClient(), (byte) 1, false);
|
||||
|
||||
@@ -1235,8 +1235,8 @@ public class MapleMap {
|
||||
return getMapObjectsInRange(new Point(0, 0), Double.POSITIVE_INFINITY, Arrays.asList(MapleMapObjectType.PLAYER));
|
||||
}
|
||||
|
||||
public List<MapleCharacter> getAllPlayers() {
|
||||
List<MapleCharacter> character;
|
||||
public List<Character> getAllPlayers() {
|
||||
List<Character> character;
|
||||
chrRLock.lock();
|
||||
try {
|
||||
character = new ArrayList<>(characters);
|
||||
@@ -1247,20 +1247,20 @@ public class MapleMap {
|
||||
return character;
|
||||
}
|
||||
|
||||
public Map<Integer, MapleCharacter> getMapAllPlayers() {
|
||||
Map<Integer, MapleCharacter> pchars = new HashMap<>();
|
||||
for (MapleCharacter chr : this.getAllPlayers()) {
|
||||
public Map<Integer, Character> getMapAllPlayers() {
|
||||
Map<Integer, Character> pchars = new HashMap<>();
|
||||
for (Character chr : this.getAllPlayers()) {
|
||||
pchars.put(chr.getId(), chr);
|
||||
}
|
||||
|
||||
return pchars;
|
||||
}
|
||||
|
||||
public List<MapleCharacter> getPlayersInRange(Rectangle box) {
|
||||
List<MapleCharacter> character = new LinkedList<>();
|
||||
public List<Character> getPlayersInRange(Rectangle box) {
|
||||
List<Character> character = new LinkedList<>();
|
||||
chrRLock.lock();
|
||||
try {
|
||||
for (MapleCharacter chr : characters) {
|
||||
for (Character chr : characters) {
|
||||
if (box.contains(chr.getPosition())) {
|
||||
character.add(chr);
|
||||
}
|
||||
@@ -1275,7 +1275,7 @@ public class MapleMap {
|
||||
public int countAlivePlayers() {
|
||||
int count = 0;
|
||||
|
||||
for(MapleCharacter mc: getAllPlayers()) {
|
||||
for(Character mc: getAllPlayers()) {
|
||||
if (mc.isAlive()) {
|
||||
count++;
|
||||
}
|
||||
@@ -1296,7 +1296,7 @@ public class MapleMap {
|
||||
return count;
|
||||
}
|
||||
|
||||
public boolean damageMonster(final MapleCharacter chr, final MapleMonster monster, final int damage) {
|
||||
public boolean damageMonster(final Character chr, final MapleMonster monster, final int damage) {
|
||||
if (monster.getId() == 8800000) {
|
||||
for (MapleMapObject object : chr.getMap().getMapObjects()) {
|
||||
MapleMonster mons = chr.getMap().getMonsterByOid(object.getObjectId());
|
||||
@@ -1361,11 +1361,11 @@ public class MapleMap {
|
||||
}
|
||||
}
|
||||
|
||||
public void killMonster(final MapleMonster monster, final MapleCharacter chr, final boolean withDrops) {
|
||||
public void killMonster(final MapleMonster monster, final Character chr, final boolean withDrops) {
|
||||
killMonster(monster, chr, withDrops, 1);
|
||||
}
|
||||
|
||||
public void killMonster(final MapleMonster monster, final MapleCharacter chr, final boolean withDrops, int animation) {
|
||||
public void killMonster(final MapleMonster monster, final Character chr, final boolean withDrops, int animation) {
|
||||
if (monster == null) {
|
||||
return;
|
||||
}
|
||||
@@ -1398,7 +1398,7 @@ public class MapleMap {
|
||||
if (buff > -1) {
|
||||
MapleItemInformationProvider mii = MapleItemInformationProvider.getInstance();
|
||||
for (MapleMapObject mmo : this.getPlayers()) {
|
||||
MapleCharacter character = (MapleCharacter) mmo;
|
||||
Character character = (Character) mmo;
|
||||
if (character.isAlive()) {
|
||||
MapleStatEffect statEffect = mii.getItemEffect(buff);
|
||||
character.sendPacket(PacketCreator.showOwnBuffEffect(buff, 1));
|
||||
@@ -1435,7 +1435,7 @@ public class MapleMap {
|
||||
}
|
||||
}
|
||||
|
||||
MapleCharacter dropOwner = monster.killBy(chr);
|
||||
Character dropOwner = monster.killBy(chr);
|
||||
if (withDrops && !monster.dropsDisabled()) {
|
||||
if (dropOwner == null) {
|
||||
dropOwner = chr;
|
||||
@@ -1444,7 +1444,7 @@ public class MapleMap {
|
||||
}
|
||||
|
||||
if (monster.hasBossHPBar()) {
|
||||
for(MapleCharacter mc : this.getAllPlayers()) {
|
||||
for(Character mc : this.getAllPlayers()) {
|
||||
if(mc.getTargetHpBarHash() == monster.hashCode()) {
|
||||
mc.resetPlayerAggro();
|
||||
}
|
||||
@@ -1461,11 +1461,11 @@ public class MapleMap {
|
||||
}
|
||||
|
||||
public void killFriendlies(MapleMonster mob) {
|
||||
this.killMonster(mob, (MapleCharacter) getPlayers().get(0), false);
|
||||
this.killMonster(mob, (Character) getPlayers().get(0), false);
|
||||
}
|
||||
|
||||
public void killMonster(int mobId) {
|
||||
MapleCharacter chr = (MapleCharacter) getPlayers().get(0);
|
||||
Character chr = (Character) getPlayers().get(0);
|
||||
List<MapleMonster> mobList = getAllMonsters();
|
||||
|
||||
for (MapleMonster mob : mobList) {
|
||||
@@ -1476,15 +1476,15 @@ public class MapleMap {
|
||||
}
|
||||
|
||||
public void killMonsterWithDrops(int mobId) {
|
||||
Map<Integer, MapleCharacter> mapChars = this.getMapPlayers();
|
||||
Map<Integer, Character> mapChars = this.getMapPlayers();
|
||||
|
||||
if(!mapChars.isEmpty()) {
|
||||
MapleCharacter defaultChr = mapChars.entrySet().iterator().next().getValue();
|
||||
Character defaultChr = mapChars.entrySet().iterator().next().getValue();
|
||||
List<MapleMonster> mobList = getAllMonsters();
|
||||
|
||||
for (MapleMonster mob : mobList) {
|
||||
if (mob.getId() == mobId) {
|
||||
MapleCharacter chr = mapChars.get(mob.getHighestDamagerId());
|
||||
Character chr = mapChars.get(mob.getHighestDamagerId());
|
||||
if (chr == null) {
|
||||
chr = defaultChr;
|
||||
}
|
||||
@@ -2042,7 +2042,7 @@ public class MapleMap {
|
||||
|
||||
public void spawnDoor(final MapleDoorObject door) {
|
||||
spawnAndAddRangedMapObject(door, c -> {
|
||||
MapleCharacter chr = c.getPlayer();
|
||||
Character chr = c.getPlayer();
|
||||
if (chr != null) {
|
||||
door.sendSpawnData(c, false);
|
||||
chr.addVisibleMapObject(door);
|
||||
@@ -2089,7 +2089,7 @@ public class MapleMap {
|
||||
List<MapleMapObject> players = getMapObjectsInBox(mist.getBox(), Collections.singletonList(MapleMapObjectType.PLAYER));
|
||||
for (MapleMapObject mo : players) {
|
||||
if (mist.makeChanceResult()) {
|
||||
MapleCharacter chr = (MapleCharacter) mo;
|
||||
Character chr = (Character) mo;
|
||||
if (mist.getOwner().getId() == chr.getId() || mist.getOwner().getParty() != null && mist.getOwner().getParty().containsMembers(chr.getMPC())) {
|
||||
chr.addMP(mist.getSourceSkill().getEffect(chr.getSkillLevel(mist.getSourceSkill().getId())).getX() * chr.getMp() / 100);
|
||||
}
|
||||
@@ -2125,11 +2125,11 @@ public class MapleMap {
|
||||
getWorldServer().registerTimedMapObject(expireKite, YamlConfig.config.server.KITE_EXPIRE_TIME);
|
||||
}
|
||||
|
||||
public final void spawnItemDrop(final MapleMapObject dropper, final MapleCharacter owner, final Item item, Point pos, final boolean ffaDrop, final boolean playerDrop) {
|
||||
public final void spawnItemDrop(final MapleMapObject dropper, final Character owner, final Item item, Point pos, final boolean ffaDrop, final boolean playerDrop) {
|
||||
spawnItemDrop(dropper, owner, item, pos, (byte)(ffaDrop ? 2 : 0), playerDrop);
|
||||
}
|
||||
|
||||
public final void spawnItemDrop(final MapleMapObject dropper, final MapleCharacter owner, final Item item, Point pos, final byte dropType, final boolean playerDrop) {
|
||||
public final void spawnItemDrop(final MapleMapObject dropper, final Character owner, final Item item, Point pos, final byte dropType, final boolean playerDrop) {
|
||||
if (FieldLimit.DROP_LIMIT.check(this.getFieldLimit())) { // thanks Conrad for noticing some maps shouldn't have loots available
|
||||
this.disappearingItemDrop(dropper, owner, item, pos);
|
||||
return;
|
||||
@@ -2159,16 +2159,16 @@ public class MapleMap {
|
||||
activateItemReactors(mdrop, owner.getClient());
|
||||
}
|
||||
|
||||
public final void spawnItemDropList(List<Integer> list, final MapleMapObject dropper, final MapleCharacter owner, Point pos) {
|
||||
public final void spawnItemDropList(List<Integer> list, final MapleMapObject dropper, final Character owner, Point pos) {
|
||||
spawnItemDropList(list, 1, 1, dropper, owner, pos, true, false);
|
||||
}
|
||||
|
||||
public final void spawnItemDropList(List<Integer> list, int minCopies, int maxCopies, final MapleMapObject dropper, final MapleCharacter owner, Point pos) {
|
||||
public final void spawnItemDropList(List<Integer> list, int minCopies, int maxCopies, final MapleMapObject dropper, final Character owner, Point pos) {
|
||||
spawnItemDropList(list, minCopies, maxCopies, dropper, owner, pos, true, false);
|
||||
}
|
||||
|
||||
// spawns item instances of all defined item ids on a list
|
||||
public final void spawnItemDropList(List<Integer> list, int minCopies, int maxCopies, final MapleMapObject dropper, final MapleCharacter owner, Point pos, final boolean ffaDrop, final boolean playerDrop) {
|
||||
public final void spawnItemDropList(List<Integer> list, int minCopies, int maxCopies, final MapleMapObject dropper, final Character owner, Point pos, final boolean ffaDrop, final boolean playerDrop) {
|
||||
int copies = (maxCopies - minCopies) + 1;
|
||||
if(copies < 1) {
|
||||
return;
|
||||
@@ -2284,8 +2284,8 @@ public class MapleMap {
|
||||
registerMapSchedule(r, time);
|
||||
}
|
||||
|
||||
public MapleCharacter getAnyCharacterFromParty(int partyid) {
|
||||
for (MapleCharacter chr : this.getAllPlayers()) {
|
||||
public Character getAnyCharacterFromParty(int partyid) {
|
||||
for (Character chr : this.getAllPlayers()) {
|
||||
if (chr.getPartyId() == partyid) {
|
||||
return chr;
|
||||
}
|
||||
@@ -2294,7 +2294,7 @@ public class MapleMap {
|
||||
return null;
|
||||
}
|
||||
|
||||
private void addPartyMemberInternal(MapleCharacter chr, int partyid) {
|
||||
private void addPartyMemberInternal(Character chr, int partyid) {
|
||||
if (partyid == -1) {
|
||||
return;
|
||||
}
|
||||
@@ -2310,7 +2310,7 @@ public class MapleMap {
|
||||
}
|
||||
}
|
||||
|
||||
private void removePartyMemberInternal(MapleCharacter chr, int partyid) {
|
||||
private void removePartyMemberInternal(Character chr, int partyid) {
|
||||
if (partyid == -1) {
|
||||
return;
|
||||
}
|
||||
@@ -2325,7 +2325,7 @@ public class MapleMap {
|
||||
}
|
||||
}
|
||||
|
||||
public void addPartyMember(MapleCharacter chr, int partyid) {
|
||||
public void addPartyMember(Character chr, int partyid) {
|
||||
chrWLock.lock();
|
||||
try {
|
||||
addPartyMemberInternal(chr, partyid);
|
||||
@@ -2334,7 +2334,7 @@ public class MapleMap {
|
||||
}
|
||||
}
|
||||
|
||||
public void removePartyMember(MapleCharacter chr, int partyid) {
|
||||
public void removePartyMember(Character chr, int partyid) {
|
||||
chrWLock.lock();
|
||||
try {
|
||||
removePartyMemberInternal(chr, partyid);
|
||||
@@ -2352,7 +2352,7 @@ public class MapleMap {
|
||||
}
|
||||
}
|
||||
|
||||
public void addPlayer(final MapleCharacter chr) {
|
||||
public void addPlayer(final Character chr) {
|
||||
int chrSize;
|
||||
MapleParty party = chr.getParty();
|
||||
chrWLock.lock();
|
||||
@@ -2649,19 +2649,19 @@ public class MapleMap {
|
||||
}
|
||||
*/
|
||||
|
||||
public void addPlayerPuppet(MapleCharacter player) {
|
||||
public void addPlayerPuppet(Character player) {
|
||||
for (MapleMonster mm : this.getAllMonsters()) {
|
||||
mm.aggroAddPuppet(player);
|
||||
}
|
||||
}
|
||||
|
||||
public void removePlayerPuppet(MapleCharacter player) {
|
||||
public void removePlayerPuppet(Character player) {
|
||||
for (MapleMonster mm : this.getAllMonsters()) {
|
||||
mm.aggroRemovePuppet(player);
|
||||
}
|
||||
}
|
||||
|
||||
public void removePlayer(MapleCharacter chr) {
|
||||
public void removePlayer(Character chr) {
|
||||
Channel cserv = chr.getClient().getChannelServer();
|
||||
|
||||
FaceExpressionService service = (FaceExpressionService) this.getChannelServer().getServiceAccess(ChannelServices.FACE_EXPRESSION);
|
||||
@@ -2731,7 +2731,7 @@ public class MapleMap {
|
||||
* @param packet
|
||||
* @param repeatToSource
|
||||
*/
|
||||
public void broadcastMessage(MapleCharacter source, Packet packet, boolean repeatToSource) {
|
||||
public void broadcastMessage(Character source, Packet packet, boolean repeatToSource) {
|
||||
broadcastMessage(repeatToSource ? null : source, packet, Double.POSITIVE_INFINITY, source.getPosition());
|
||||
}
|
||||
|
||||
@@ -2743,7 +2743,7 @@ public class MapleMap {
|
||||
* @param repeatToSource
|
||||
* @param ranged
|
||||
*/
|
||||
public void broadcastMessage(MapleCharacter source, Packet packet, boolean repeatToSource, boolean ranged) {
|
||||
public void broadcastMessage(Character source, Packet packet, boolean repeatToSource, boolean ranged) {
|
||||
broadcastMessage(repeatToSource ? null : source, packet, ranged ? getRangedDistance() : Double.POSITIVE_INFINITY, source.getPosition());
|
||||
}
|
||||
|
||||
@@ -2764,14 +2764,14 @@ public class MapleMap {
|
||||
* @param packet
|
||||
* @param rangedFrom
|
||||
*/
|
||||
public void broadcastMessage(MapleCharacter source, Packet packet, Point rangedFrom) {
|
||||
public void broadcastMessage(Character source, Packet packet, Point rangedFrom) {
|
||||
broadcastMessage(source, packet, getRangedDistance(), rangedFrom);
|
||||
}
|
||||
|
||||
private void broadcastMessage(MapleCharacter source, Packet packet, double rangeSq, Point rangedFrom) {
|
||||
private void broadcastMessage(Character source, Packet packet, double rangeSq, Point rangedFrom) {
|
||||
chrRLock.lock();
|
||||
try {
|
||||
for (MapleCharacter chr : characters) {
|
||||
for (Character chr : characters) {
|
||||
if (chr != source) {
|
||||
if (rangeSq < Double.POSITIVE_INFINITY) {
|
||||
if (rangedFrom.distanceSq(chr.getPosition()) <= rangeSq) {
|
||||
@@ -2810,10 +2810,10 @@ public class MapleMap {
|
||||
broadcastBossHpMessage(mm, bossHash, null, packet, getRangedDistance(), rangedFrom);
|
||||
}
|
||||
|
||||
private void broadcastBossHpMessage(MapleMonster mm, int bossHash, MapleCharacter source, Packet packet, double rangeSq, Point rangedFrom) {
|
||||
private void broadcastBossHpMessage(MapleMonster mm, int bossHash, Character source, Packet packet, double rangeSq, Point rangedFrom) {
|
||||
chrRLock.lock();
|
||||
try {
|
||||
for (MapleCharacter chr : characters) {
|
||||
for (Character chr : characters) {
|
||||
if (chr != source) {
|
||||
if (rangeSq < Double.POSITIVE_INFINITY) {
|
||||
if (rangedFrom.distanceSq(chr.getPosition()) <= rangeSq) {
|
||||
@@ -2840,7 +2840,7 @@ public class MapleMap {
|
||||
private void broadcastItemDropMessage(MapleMapItem mdrop, Point dropperPos, Point dropPos, byte mod, double rangeSq, Point rangedFrom) {
|
||||
chrRLock.lock();
|
||||
try {
|
||||
for (MapleCharacter chr : characters) {
|
||||
for (Character chr : characters) {
|
||||
Packet packet = PacketCreator.dropItemFromMapObject(chr, mdrop, dropperPos, dropPos, mod);
|
||||
|
||||
if (rangeSq < Double.POSITIVE_INFINITY) {
|
||||
@@ -2856,19 +2856,19 @@ public class MapleMap {
|
||||
}
|
||||
}
|
||||
|
||||
public void broadcastSpawnPlayerMapObjectMessage(MapleCharacter source, MapleCharacter player, boolean enteringField) {
|
||||
public void broadcastSpawnPlayerMapObjectMessage(Character source, Character player, boolean enteringField) {
|
||||
broadcastSpawnPlayerMapObjectMessage(source, player, enteringField, false);
|
||||
}
|
||||
|
||||
public void broadcastGMSpawnPlayerMapObjectMessage(MapleCharacter source, MapleCharacter player, boolean enteringField) {
|
||||
public void broadcastGMSpawnPlayerMapObjectMessage(Character source, Character player, boolean enteringField) {
|
||||
broadcastSpawnPlayerMapObjectMessage(source, player, enteringField, true);
|
||||
}
|
||||
|
||||
private void broadcastSpawnPlayerMapObjectMessage(MapleCharacter source, MapleCharacter player, boolean enteringField, boolean gmBroadcast) {
|
||||
private void broadcastSpawnPlayerMapObjectMessage(Character source, Character player, boolean enteringField, boolean gmBroadcast) {
|
||||
chrRLock.lock();
|
||||
try {
|
||||
if (gmBroadcast) {
|
||||
for (MapleCharacter chr : characters) {
|
||||
for (Character chr : characters) {
|
||||
if (chr.isGM()) {
|
||||
if (chr != source) {
|
||||
chr.sendPacket(PacketCreator.spawnPlayerMapObject(chr.getClient(), player, enteringField));
|
||||
@@ -2876,7 +2876,7 @@ public class MapleMap {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (MapleCharacter chr : characters) {
|
||||
for (Character chr : characters) {
|
||||
if (chr != source) {
|
||||
chr.sendPacket(PacketCreator.spawnPlayerMapObject(chr.getClient(), player, enteringField));
|
||||
}
|
||||
@@ -2887,10 +2887,10 @@ public class MapleMap {
|
||||
}
|
||||
}
|
||||
|
||||
public void broadcastUpdateCharLookMessage(MapleCharacter source, MapleCharacter player) {
|
||||
public void broadcastUpdateCharLookMessage(Character source, Character player) {
|
||||
chrRLock.lock();
|
||||
try {
|
||||
for (MapleCharacter chr : characters) {
|
||||
for (Character chr : characters) {
|
||||
if (chr != source) {
|
||||
chr.sendPacket(PacketCreator.updateCharLook(chr.getClient(), player));
|
||||
}
|
||||
@@ -2924,7 +2924,7 @@ public class MapleMap {
|
||||
}
|
||||
|
||||
private void sendObjectPlacement(MapleClient c) {
|
||||
MapleCharacter chr = c.getPlayer();
|
||||
Character chr = c.getPlayer();
|
||||
Collection<MapleMapObject> objects;
|
||||
|
||||
objectRLock.lock();
|
||||
@@ -3125,19 +3125,19 @@ public class MapleMap {
|
||||
}
|
||||
}
|
||||
|
||||
public void reportMonsterSpawnPoints(MapleCharacter chr) {
|
||||
public void reportMonsterSpawnPoints(Character chr) {
|
||||
chr.dropMessage(6, "Mob spawnpoints on map " + getId() + ", with available Mob SPs " + monsterSpawn.size() + ", used " + spawnedMonstersOnMap.get() + ":");
|
||||
for(SpawnPoint sp: getAllMonsterSpawn()) {
|
||||
chr.dropMessage(6, " id: " + sp.getMonsterId() + " canSpawn: " + !sp.getDenySpawn() + " numSpawned: " + sp.getSpawned() + " x: " + sp.getPosition().getX() + " y: " + sp.getPosition().getY() + " time: " + sp.getMobTime() + " team: " + sp.getTeam());
|
||||
}
|
||||
}
|
||||
|
||||
public Map<Integer, MapleCharacter> getMapPlayers() {
|
||||
public Map<Integer, Character> getMapPlayers() {
|
||||
chrRLock.lock();
|
||||
try {
|
||||
Map<Integer, MapleCharacter> mapChars = new HashMap<>(characters.size());
|
||||
Map<Integer, Character> mapChars = new HashMap<>(characters.size());
|
||||
|
||||
for(MapleCharacter chr : characters) {
|
||||
for(Character chr : characters) {
|
||||
mapChars.put(chr.getId(), chr);
|
||||
}
|
||||
|
||||
@@ -3147,7 +3147,7 @@ public class MapleMap {
|
||||
}
|
||||
}
|
||||
|
||||
public Collection<MapleCharacter> getCharacters() {
|
||||
public Collection<Character> getCharacters() {
|
||||
chrRLock.lock();
|
||||
try {
|
||||
return Collections.unmodifiableCollection(this.characters);
|
||||
@@ -3156,10 +3156,10 @@ public class MapleMap {
|
||||
}
|
||||
}
|
||||
|
||||
public MapleCharacter getCharacterById(int id) {
|
||||
public Character getCharacterById(int id) {
|
||||
chrRLock.lock();
|
||||
try {
|
||||
for (MapleCharacter chr : this.characters) {
|
||||
for (Character chr : this.characters) {
|
||||
if (chr.getId() == id) {
|
||||
return chr;
|
||||
}
|
||||
@@ -3170,7 +3170,7 @@ public class MapleMap {
|
||||
return null;
|
||||
}
|
||||
|
||||
private static void updateMapObjectVisibility(MapleCharacter chr, MapleMapObject mo) {
|
||||
private static void updateMapObjectVisibility(Character chr, MapleMapObject mo) {
|
||||
if (!chr.isMapObjectVisible(mo)) { // object entered view range
|
||||
if (mo.getType() == MapleMapObjectType.SUMMON || mo.getPosition().distanceSq(chr.getPosition()) <= getRangedDistance()) {
|
||||
chr.addVisibleMapObject(mo);
|
||||
@@ -3184,12 +3184,12 @@ public class MapleMap {
|
||||
|
||||
public void moveMonster(MapleMonster monster, Point reportedPos) {
|
||||
monster.setPosition(reportedPos);
|
||||
for (MapleCharacter chr : getAllPlayers()) {
|
||||
for (Character chr : getAllPlayers()) {
|
||||
updateMapObjectVisibility(chr, monster);
|
||||
}
|
||||
}
|
||||
|
||||
public void movePlayer(MapleCharacter player, Point newPosition) {
|
||||
public void movePlayer(Character player, Point newPosition) {
|
||||
player.setPosition(newPosition);
|
||||
|
||||
try {
|
||||
@@ -3308,7 +3308,7 @@ public class MapleMap {
|
||||
}
|
||||
|
||||
// not really costly to keep generating imo
|
||||
public void sendNightEffect(MapleCharacter chr) {
|
||||
public void sendNightEffect(Character chr) {
|
||||
for (Entry<Integer, Integer> types : backgroundTypes.entrySet()) {
|
||||
if (types.getValue() >= 3) { // 3 is a special number
|
||||
chr.sendPacket(PacketCreator.changeBackgroundEffect(true, types.getKey(), 0));
|
||||
@@ -3319,7 +3319,7 @@ public class MapleMap {
|
||||
public void broadcastNightEffect() {
|
||||
chrRLock.lock();
|
||||
try {
|
||||
for (MapleCharacter chr : this.characters) {
|
||||
for (Character chr : this.characters) {
|
||||
sendNightEffect(chr);
|
||||
}
|
||||
} finally {
|
||||
@@ -3327,10 +3327,10 @@ public class MapleMap {
|
||||
}
|
||||
}
|
||||
|
||||
public MapleCharacter getCharacterByName(String name) {
|
||||
public Character getCharacterByName(String name) {
|
||||
chrRLock.lock();
|
||||
try {
|
||||
for (MapleCharacter chr : this.characters) {
|
||||
for (Character chr : this.characters) {
|
||||
if (chr.getName().toLowerCase().equals(name.toLowerCase())) {
|
||||
return chr;
|
||||
}
|
||||
@@ -3377,10 +3377,10 @@ public class MapleMap {
|
||||
private List<MonsterDropEntry> visibleQuestEntry;
|
||||
private List<MonsterDropEntry> otherQuestEntry;
|
||||
private List<MonsterGlobalDropEntry> globalEntry;
|
||||
private MapleCharacter chr;
|
||||
private Character chr;
|
||||
private MapleMonster mob;
|
||||
|
||||
protected MobLootEntry(byte droptype, int mobpos, int chRate, Point pos, List<MonsterDropEntry> dropEntry, List<MonsterDropEntry> visibleQuestEntry, List<MonsterDropEntry> otherQuestEntry, List<MonsterGlobalDropEntry> globalEntry, MapleCharacter chr, MapleMonster mob) {
|
||||
protected MobLootEntry(byte droptype, int mobpos, int chRate, Point pos, List<MonsterDropEntry> dropEntry, List<MonsterDropEntry> visibleQuestEntry, List<MonsterDropEntry> otherQuestEntry, List<MonsterGlobalDropEntry> globalEntry, Character chr, MapleMonster mob) {
|
||||
this.droptype = droptype;
|
||||
this.mobpos = mobpos;
|
||||
this.chRate = chRate;
|
||||
@@ -3636,7 +3636,7 @@ public class MapleMap {
|
||||
|
||||
chrRLock.lock();
|
||||
try {
|
||||
final Iterator<MapleCharacter> ltr = characters.iterator();
|
||||
final Iterator<Character> ltr = characters.iterator();
|
||||
while (ltr.hasNext()) {
|
||||
if (rect.contains(ltr.next().getPosition())) {
|
||||
ret++;
|
||||
@@ -3666,7 +3666,7 @@ public class MapleMap {
|
||||
|
||||
private interface SpawnCondition {
|
||||
|
||||
boolean canSpawn(MapleCharacter chr);
|
||||
boolean canSpawn(Character chr);
|
||||
}
|
||||
|
||||
public int getHPDec() {
|
||||
@@ -3717,14 +3717,14 @@ public class MapleMap {
|
||||
return seats;
|
||||
}
|
||||
|
||||
public void broadcastGMMessage(MapleCharacter source, Packet packet, boolean repeatToSource) {
|
||||
public void broadcastGMMessage(Character source, Packet packet, boolean repeatToSource) {
|
||||
broadcastGMMessage(repeatToSource ? null : source, packet, Double.POSITIVE_INFINITY, source.getPosition());
|
||||
}
|
||||
|
||||
private void broadcastGMMessage(MapleCharacter source, Packet packet, double rangeSq, Point rangedFrom) {
|
||||
private void broadcastGMMessage(Character source, Packet packet, double rangeSq, Point rangedFrom) {
|
||||
chrRLock.lock();
|
||||
try {
|
||||
for (MapleCharacter chr : characters) {
|
||||
for (Character chr : characters) {
|
||||
if (chr != source && chr.isGM()) {
|
||||
if (rangeSq < Double.POSITIVE_INFINITY) {
|
||||
if (rangedFrom.distanceSq(chr.getPosition()) <= rangeSq) {
|
||||
@@ -3740,10 +3740,10 @@ public class MapleMap {
|
||||
}
|
||||
}
|
||||
|
||||
public void broadcastNONGMMessage(MapleCharacter source, Packet packet, boolean repeatToSource) {
|
||||
public void broadcastNONGMMessage(Character source, Packet packet, boolean repeatToSource) {
|
||||
chrRLock.lock();
|
||||
try {
|
||||
for (MapleCharacter chr : characters) {
|
||||
for (Character chr : characters) {
|
||||
if (chr != source && !chr.isGM()) {
|
||||
chr.sendPacket(packet);
|
||||
}
|
||||
@@ -3793,7 +3793,7 @@ public class MapleMap {
|
||||
this.fieldType = fieldType;
|
||||
}
|
||||
|
||||
public void clearDrops(MapleCharacter player) {
|
||||
public void clearDrops(Character player) {
|
||||
for (MapleMapObject i : getMapObjectsInRange(player.getPosition(), Double.POSITIVE_INFINITY, Arrays.asList(MapleMapObjectType.ITEM))) {
|
||||
droppedItemCount.decrementAndGet();
|
||||
removeMapObject(i);
|
||||
@@ -3826,17 +3826,17 @@ public class MapleMap {
|
||||
}
|
||||
|
||||
public void warpEveryone(int to) {
|
||||
List<MapleCharacter> players = new ArrayList<>(getCharacters());
|
||||
List<Character> players = new ArrayList<>(getCharacters());
|
||||
|
||||
for (MapleCharacter chr : players) {
|
||||
for (Character chr : players) {
|
||||
chr.changeMap(to);
|
||||
}
|
||||
}
|
||||
|
||||
public void warpEveryone(int to, int pto) {
|
||||
List<MapleCharacter> players = new ArrayList<>(getCharacters());
|
||||
List<Character> players = new ArrayList<>(getCharacters());
|
||||
|
||||
for (MapleCharacter chr : players) {
|
||||
for (Character chr : players) {
|
||||
chr.changeMap(to, pto);
|
||||
}
|
||||
}
|
||||
@@ -3879,8 +3879,8 @@ public class MapleMap {
|
||||
}
|
||||
|
||||
public void warpOutByTeam(int team, int mapid) {
|
||||
List<MapleCharacter> chars = new ArrayList<>(getCharacters());
|
||||
for (MapleCharacter chr : chars) {
|
||||
List<Character> chars = new ArrayList<>(getCharacters());
|
||||
for (Character chr : chars) {
|
||||
if (chr != null) {
|
||||
if (chr.getTeam() == team) {
|
||||
chr.changeMap(mapid);
|
||||
@@ -3889,7 +3889,7 @@ public class MapleMap {
|
||||
}
|
||||
}
|
||||
|
||||
public void startEvent(final MapleCharacter chr) {
|
||||
public void startEvent(final Character chr) {
|
||||
if (this.mapid == 109080000 && getCoconut() == null) {
|
||||
setCoconut(new MapleCoconut(this));
|
||||
coconut.startEvent();
|
||||
@@ -4049,7 +4049,7 @@ public class MapleMap {
|
||||
public void monsterKilled(int aniTime) {}
|
||||
|
||||
@Override
|
||||
public void monsterDamaged(MapleCharacter from, int trueDmg) {
|
||||
public void monsterDamaged(Character from, int trueDmg) {
|
||||
ht.addHp(trueDmg);
|
||||
}
|
||||
|
||||
@@ -4069,7 +4069,7 @@ public class MapleMap {
|
||||
public void monsterKilled(int aniTime) {}
|
||||
|
||||
@Override
|
||||
public void monsterDamaged(MapleCharacter from, int trueDmg) {
|
||||
public void monsterDamaged(Character from, int trueDmg) {
|
||||
// thanks Halcyon for noticing HT not dropping loots due to propagated damage not registering attacker
|
||||
ht.applyFakeDamage(from, trueDmg, true);
|
||||
}
|
||||
@@ -4084,7 +4084,7 @@ public class MapleMap {
|
||||
}
|
||||
}
|
||||
|
||||
public boolean claimOwnership(MapleCharacter chr) {
|
||||
public boolean claimOwnership(Character chr) {
|
||||
if (mapOwner == null) {
|
||||
this.mapOwner = chr;
|
||||
chr.setOwnedMap(this);
|
||||
@@ -4098,12 +4098,12 @@ public class MapleMap {
|
||||
}
|
||||
}
|
||||
|
||||
public MapleCharacter unclaimOwnership() {
|
||||
MapleCharacter lastOwner = this.mapOwner;
|
||||
public Character unclaimOwnership() {
|
||||
Character lastOwner = this.mapOwner;
|
||||
return unclaimOwnership(lastOwner) ? lastOwner : null;
|
||||
}
|
||||
|
||||
public boolean unclaimOwnership(MapleCharacter chr) {
|
||||
public boolean unclaimOwnership(Character chr) {
|
||||
if (chr != null && mapOwner == chr) {
|
||||
this.mapOwner = null;
|
||||
chr.setOwnedMap(null);
|
||||
@@ -4121,8 +4121,8 @@ public class MapleMap {
|
||||
mapOwnerLastActivityTime = Server.getInstance().getCurrentTime();
|
||||
}
|
||||
|
||||
public boolean isOwnershipRestricted(MapleCharacter chr) {
|
||||
MapleCharacter owner = mapOwner;
|
||||
public boolean isOwnershipRestricted(Character chr) {
|
||||
Character owner = mapOwner;
|
||||
|
||||
if (owner != null) {
|
||||
if (owner != chr && !owner.isPartyMember(chr)) { // thanks Vcoc & BHB for suggesting the map ownership feature
|
||||
@@ -4306,7 +4306,7 @@ public class MapleMap {
|
||||
this.spawnReactor(reactor);
|
||||
reactor.setGuardian(pt);
|
||||
this.buffMonsters(team, skill);
|
||||
getReactorByOid(reactor.getObjectId()).hitReactor(((MapleCharacter) this.getAllPlayer().get(0)).getClient());
|
||||
getReactorByOid(reactor.getObjectId()).hitReactor(((Character) this.getAllPlayer().get(0)).getClient());
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
*/
|
||||
package server.maps;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import client.MapleClient;
|
||||
import client.inventory.Item;
|
||||
import net.server.audit.locks.MonitoredLockType;
|
||||
@@ -40,7 +40,7 @@ public class MapleMapItem extends AbstractMapleMapObject {
|
||||
protected long dropTime;
|
||||
private Lock itemLock = MonitoredReentrantLockFactory.createLock(MonitoredLockType.MAP_ITEM);
|
||||
|
||||
public MapleMapItem(Item item, Point position, MapleMapObject dropper, MapleCharacter owner, MapleClient ownerClient, byte type, boolean playerDrop) {
|
||||
public MapleMapItem(Item item, Point position, MapleMapObject dropper, Character owner, MapleClient ownerClient, byte type, boolean playerDrop) {
|
||||
setPosition(position);
|
||||
this.item = item;
|
||||
this.dropper = dropper;
|
||||
@@ -53,7 +53,7 @@ public class MapleMapItem extends AbstractMapleMapObject {
|
||||
this.playerDrop = playerDrop;
|
||||
}
|
||||
|
||||
public MapleMapItem(Item item, Point position, MapleMapObject dropper, MapleCharacter owner, MapleClient ownerClient, byte type, boolean playerDrop, int questid) {
|
||||
public MapleMapItem(Item item, Point position, MapleMapObject dropper, Character owner, MapleClient ownerClient, byte type, boolean playerDrop, int questid) {
|
||||
setPosition(position);
|
||||
this.item = item;
|
||||
this.dropper = dropper;
|
||||
@@ -67,7 +67,7 @@ public class MapleMapItem extends AbstractMapleMapObject {
|
||||
this.questid = questid;
|
||||
}
|
||||
|
||||
public MapleMapItem(int meso, Point position, MapleMapObject dropper, MapleCharacter owner, MapleClient ownerClient, byte type, boolean playerDrop) {
|
||||
public MapleMapItem(int meso, Point position, MapleMapObject dropper, Character owner, MapleClient ownerClient, byte type, boolean playerDrop) {
|
||||
setPosition(position);
|
||||
this.item = null;
|
||||
this.dropper = dropper;
|
||||
@@ -119,7 +119,7 @@ public class MapleMapItem extends AbstractMapleMapObject {
|
||||
}
|
||||
}
|
||||
|
||||
public final boolean hasClientsideOwnership(MapleCharacter player) {
|
||||
public final boolean hasClientsideOwnership(Character player) {
|
||||
return this.character_ownerid == player.getId() || this.party_ownerid == player.getPartyId() || hasExpiredOwnershipTime();
|
||||
}
|
||||
|
||||
@@ -131,7 +131,7 @@ public class MapleMapItem extends AbstractMapleMapObject {
|
||||
return System.currentTimeMillis() - dropTime >= 15 * 1000;
|
||||
}
|
||||
|
||||
public final boolean canBePickedBy(MapleCharacter chr) {
|
||||
public final boolean canBePickedBy(Character chr) {
|
||||
if (character_ownerid <= 0 || isFFADrop()) return true;
|
||||
|
||||
if (party_ownerid == -1) {
|
||||
@@ -200,7 +200,7 @@ public class MapleMapItem extends AbstractMapleMapObject {
|
||||
|
||||
@Override
|
||||
public void sendSpawnData(final MapleClient client) {
|
||||
MapleCharacter chr = client.getPlayer();
|
||||
Character chr = client.getPlayer();
|
||||
|
||||
if (chr.needQuestItem(questid, getItemId())) {
|
||||
this.lockItem();
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
*/
|
||||
package server.maps;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import net.server.audit.locks.MonitoredLockType;
|
||||
import net.server.audit.locks.factory.MonitoredReentrantLockFactory;
|
||||
import server.TimerManager;
|
||||
@@ -35,7 +35,7 @@ import java.util.concurrent.locks.Lock;
|
||||
* @author Ronan
|
||||
*/
|
||||
public class MapleMiniDungeon {
|
||||
List<MapleCharacter> players = new ArrayList<>();
|
||||
List<Character> players = new ArrayList<>();
|
||||
ScheduledFuture<?> timeoutTask = null;
|
||||
Lock lock = MonitoredReentrantLockFactory.createLock(MonitoredLockType.MINIDUNGEON, true);
|
||||
|
||||
@@ -51,7 +51,7 @@ public class MapleMiniDungeon {
|
||||
expireTime += System.currentTimeMillis();
|
||||
}
|
||||
|
||||
public boolean registerPlayer(MapleCharacter chr) {
|
||||
public boolean registerPlayer(Character chr) {
|
||||
int time = (int)((expireTime - System.currentTimeMillis()) / 1000);
|
||||
if(time > 0) chr.sendPacket(PacketCreator.getClock(time));
|
||||
|
||||
@@ -67,7 +67,7 @@ public class MapleMiniDungeon {
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean unregisterPlayer(MapleCharacter chr) {
|
||||
public boolean unregisterPlayer(Character chr) {
|
||||
chr.sendPacket(PacketCreator.removeClock());
|
||||
|
||||
lock.lock();
|
||||
@@ -92,9 +92,9 @@ public class MapleMiniDungeon {
|
||||
public void close() {
|
||||
lock.lock();
|
||||
try {
|
||||
List<MapleCharacter> lchr = new ArrayList<>(players);
|
||||
List<Character> lchr = new ArrayList<>(players);
|
||||
|
||||
for(MapleCharacter chr : lchr) {
|
||||
for(Character chr : lchr) {
|
||||
chr.changeMap(baseMap);
|
||||
}
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
*/
|
||||
package server.maps;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import client.MapleClient;
|
||||
import net.packet.Packet;
|
||||
import net.server.Server;
|
||||
@@ -37,8 +37,8 @@ import java.util.List;
|
||||
* @author Ronan (HeavenMS)
|
||||
*/
|
||||
public class MapleMiniGame extends AbstractMapleMapObject {
|
||||
private MapleCharacter owner;
|
||||
private MapleCharacter visitor;
|
||||
private Character owner;
|
||||
private Character visitor;
|
||||
private String password;
|
||||
private MiniGameType GameType = MiniGameType.UNDEFINED;
|
||||
private int piecetype;
|
||||
@@ -73,7 +73,7 @@ public class MapleMiniGame extends AbstractMapleMapObject {
|
||||
WIN, LOSS, TIE
|
||||
}
|
||||
|
||||
public MapleMiniGame(MapleCharacter owner, String description, String password) {
|
||||
public MapleMiniGame(Character owner, String description, String password) {
|
||||
this.owner = owner;
|
||||
this.description = description;
|
||||
this.password = password;
|
||||
@@ -91,11 +91,11 @@ public class MapleMiniGame extends AbstractMapleMapObject {
|
||||
return visitor == null;
|
||||
}
|
||||
|
||||
public boolean isOwner(MapleCharacter chr) {
|
||||
public boolean isOwner(Character chr) {
|
||||
return owner.equals(chr);
|
||||
}
|
||||
|
||||
public void addVisitor(MapleCharacter challenger) {
|
||||
public void addVisitor(Character challenger) {
|
||||
visitor = challenger;
|
||||
if (lastvisitor != challenger.getId()) {
|
||||
ownerscore = 0;
|
||||
@@ -106,7 +106,7 @@ public class MapleMiniGame extends AbstractMapleMapObject {
|
||||
lastvisitor = challenger.getId();
|
||||
}
|
||||
|
||||
MapleCharacter owner = this.getOwner();
|
||||
Character owner = this.getOwner();
|
||||
if (GameType == MiniGameType.OMOK) {
|
||||
owner.sendPacket(PacketCreator.getMiniGameNewVisitor(this, challenger, 1));
|
||||
owner.getMap().broadcastMessage(PacketCreator.addOmokBox(owner, 2, 0));
|
||||
@@ -133,7 +133,7 @@ public class MapleMiniGame extends AbstractMapleMapObject {
|
||||
owner = null;
|
||||
}
|
||||
|
||||
public void removeVisitor(boolean forceClose, MapleCharacter challenger) {
|
||||
public void removeVisitor(boolean forceClose, Character challenger) {
|
||||
if (visitor == challenger) {
|
||||
if (forceClose) {
|
||||
visitor.sendPacket(PacketCreator.getMiniGameClose(true, 4));
|
||||
@@ -151,7 +151,7 @@ public class MapleMiniGame extends AbstractMapleMapObject {
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isVisitor(MapleCharacter challenger) {
|
||||
public boolean isVisitor(Character challenger) {
|
||||
return visitor == challenger;
|
||||
}
|
||||
|
||||
@@ -205,7 +205,7 @@ public class MapleMiniGame extends AbstractMapleMapObject {
|
||||
visitorquit = false;
|
||||
}
|
||||
|
||||
public void setQuitAfterGame(MapleCharacter player, boolean quit) {
|
||||
public void setQuitAfterGame(Character player, boolean quit) {
|
||||
if (isOwner(player)) {
|
||||
ownerquit = quit;
|
||||
} else {
|
||||
@@ -217,7 +217,7 @@ public class MapleMiniGame extends AbstractMapleMapObject {
|
||||
return inprogress != 0;
|
||||
}
|
||||
|
||||
public void denyTie(MapleCharacter chr) {
|
||||
public void denyTie(Character chr) {
|
||||
if (this.isOwner(chr)) {
|
||||
inprogress |= (1 << 1);
|
||||
} else {
|
||||
@@ -225,7 +225,7 @@ public class MapleMiniGame extends AbstractMapleMapObject {
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isTieDenied(MapleCharacter chr) {
|
||||
public boolean isTieDenied(Character chr) {
|
||||
if (this.isOwner(chr)) {
|
||||
return ((inprogress >> 2) % 2) == 1;
|
||||
} else {
|
||||
@@ -402,15 +402,15 @@ public class MapleMiniGame extends AbstractMapleMapObject {
|
||||
c.sendPacket(PacketCreator.getMatchCard(c, this, isOwner(c.getPlayer()), type));
|
||||
}
|
||||
|
||||
public MapleCharacter getOwner() {
|
||||
public Character getOwner() {
|
||||
return owner;
|
||||
}
|
||||
|
||||
public MapleCharacter getVisitor() {
|
||||
public Character getVisitor() {
|
||||
return visitor;
|
||||
}
|
||||
|
||||
public void setPiece(int move1, int move2, int type, MapleCharacter chr) {
|
||||
public void setPiece(int move1, int move2, int type, Character chr) {
|
||||
int slot = move2 * 15 + move1 + 1;
|
||||
if (piece[slot] == 0) {
|
||||
piece[slot] = type;
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
*/
|
||||
package server.maps;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import client.MapleClient;
|
||||
import client.Skill;
|
||||
import client.SkillFactory;
|
||||
@@ -40,7 +40,7 @@ import java.awt.*;
|
||||
*/
|
||||
public class MapleMist extends AbstractMapleMapObject {
|
||||
private Rectangle mistPosition;
|
||||
private MapleCharacter owner = null;
|
||||
private Character owner = null;
|
||||
private MapleMonster mob = null;
|
||||
private MapleStatEffect source;
|
||||
private MobSkill skill;
|
||||
@@ -57,7 +57,7 @@ public class MapleMist extends AbstractMapleMapObject {
|
||||
skillDelay = 0;
|
||||
}
|
||||
|
||||
public MapleMist(Rectangle mistPosition, MapleCharacter owner, MapleStatEffect source) {
|
||||
public MapleMist(Rectangle mistPosition, Character owner, MapleStatEffect source) {
|
||||
this.mistPosition = mistPosition;
|
||||
this.owner = owner;
|
||||
this.source = source;
|
||||
@@ -116,7 +116,7 @@ public class MapleMist extends AbstractMapleMapObject {
|
||||
return mob;
|
||||
}
|
||||
|
||||
public MapleCharacter getOwner() {
|
||||
public Character getOwner() {
|
||||
return owner;
|
||||
}
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
*/
|
||||
package server.maps;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import client.MapleClient;
|
||||
import client.inventory.Inventory;
|
||||
import client.inventory.InventoryType;
|
||||
@@ -46,20 +46,20 @@ import java.util.concurrent.locks.Lock;
|
||||
*/
|
||||
public class MaplePlayerShop extends AbstractMapleMapObject {
|
||||
private AtomicBoolean open = new AtomicBoolean(false);
|
||||
private MapleCharacter owner;
|
||||
private Character owner;
|
||||
private int itemid;
|
||||
|
||||
private MapleCharacter[] visitors = new MapleCharacter[3];
|
||||
private Character[] visitors = new Character[3];
|
||||
private List<MaplePlayerShopItem> items = new ArrayList<>();
|
||||
private List<SoldItem> sold = new LinkedList<>();
|
||||
private String description;
|
||||
private int boughtnumber = 0;
|
||||
private List<String> bannedList = new ArrayList<>();
|
||||
private List<Pair<MapleCharacter, String>> chatLog = new LinkedList<>();
|
||||
private List<Pair<Character, String>> chatLog = new LinkedList<>();
|
||||
private Map<Integer, Byte> chatSlot = new LinkedHashMap<>();
|
||||
private Lock visitorLock = MonitoredReentrantLockFactory.createLock(MonitoredLockType.VISITOR_PSHOP, true);
|
||||
|
||||
public MaplePlayerShop(MapleCharacter owner, String description, int itemid) {
|
||||
public MaplePlayerShop(Character owner, String description, int itemid) {
|
||||
this.setPosition(owner.getPosition());
|
||||
this.owner = owner;
|
||||
this.description = description;
|
||||
@@ -100,7 +100,7 @@ public class MaplePlayerShop extends AbstractMapleMapObject {
|
||||
try {
|
||||
byte count = 0;
|
||||
//if (this.isOpen()) {
|
||||
for (MapleCharacter visitor : visitors) {
|
||||
for (Character visitor : visitors) {
|
||||
if (visitor != null) {
|
||||
count++;
|
||||
}
|
||||
@@ -115,11 +115,11 @@ public class MaplePlayerShop extends AbstractMapleMapObject {
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isOwner(MapleCharacter chr) {
|
||||
public boolean isOwner(Character chr) {
|
||||
return owner.equals(chr);
|
||||
}
|
||||
|
||||
private void addVisitor(MapleCharacter visitor) {
|
||||
private void addVisitor(Character visitor) {
|
||||
for (int i = 0; i < 3; i++) {
|
||||
if (visitors[i] == null) {
|
||||
visitors[i] = visitor;
|
||||
@@ -132,7 +132,7 @@ public class MaplePlayerShop extends AbstractMapleMapObject {
|
||||
}
|
||||
}
|
||||
|
||||
public void forceRemoveVisitor(MapleCharacter visitor) {
|
||||
public void forceRemoveVisitor(Character visitor) {
|
||||
if (visitor == owner) {
|
||||
owner.getMap().removeMapObject(this);
|
||||
owner.setPlayerShop(null);
|
||||
@@ -156,7 +156,7 @@ public class MaplePlayerShop extends AbstractMapleMapObject {
|
||||
}
|
||||
}
|
||||
|
||||
public void removeVisitor(MapleCharacter visitor) {
|
||||
public void removeVisitor(Character visitor) {
|
||||
if (visitor == owner) {
|
||||
owner.getMap().removeMapObject(this);
|
||||
owner.setPlayerShop(null);
|
||||
@@ -190,7 +190,7 @@ public class MaplePlayerShop extends AbstractMapleMapObject {
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isVisitor(MapleCharacter visitor) {
|
||||
public boolean isVisitor(Character visitor) {
|
||||
visitorLock.lock();
|
||||
try {
|
||||
return visitors[0] == visitor || visitors[1] == visitor || visitors[2] == visitor;
|
||||
@@ -216,7 +216,7 @@ public class MaplePlayerShop extends AbstractMapleMapObject {
|
||||
return InventoryManipulator.checkSpace(c, newItem.getItemId(), newItem.getQuantity(), newItem.getOwner()) && InventoryManipulator.addFromDrop(c, newItem, false);
|
||||
}
|
||||
|
||||
public void takeItemBack(int slot, MapleCharacter chr) {
|
||||
public void takeItemBack(int slot, Character chr) {
|
||||
synchronized (items) {
|
||||
MaplePlayerShopItem shopItem = items.get(slot);
|
||||
if(shopItem.isExist()) {
|
||||
@@ -351,7 +351,7 @@ public class MaplePlayerShop extends AbstractMapleMapObject {
|
||||
}
|
||||
|
||||
public void removeVisitors() {
|
||||
List<MapleCharacter> visitorList = new ArrayList<>(3);
|
||||
List<Character> visitorList = new ArrayList<>(3);
|
||||
|
||||
visitorLock.lock();
|
||||
try {
|
||||
@@ -369,7 +369,7 @@ public class MaplePlayerShop extends AbstractMapleMapObject {
|
||||
visitorLock.unlock();
|
||||
}
|
||||
|
||||
for(MapleCharacter mc : visitorList) forceRemoveVisitor(mc);
|
||||
for(Character mc : visitorList) forceRemoveVisitor(mc);
|
||||
if (owner != null) {
|
||||
forceRemoveVisitor(owner);
|
||||
}
|
||||
@@ -383,9 +383,9 @@ public class MaplePlayerShop extends AbstractMapleMapObject {
|
||||
broadcastToVisitors(packet);
|
||||
}
|
||||
|
||||
private byte getVisitorSlot(MapleCharacter chr) {
|
||||
private byte getVisitorSlot(Character chr) {
|
||||
byte s = 0;
|
||||
for (MapleCharacter mc : getVisitors()) {
|
||||
for (Character mc : getVisitors()) {
|
||||
s++;
|
||||
if (mc != null) {
|
||||
if (mc.getName().equalsIgnoreCase(chr.getName())) {
|
||||
@@ -413,8 +413,8 @@ public class MaplePlayerShop extends AbstractMapleMapObject {
|
||||
|
||||
private void recoverChatLog() {
|
||||
synchronized(chatLog) {
|
||||
for(Pair<MapleCharacter, String> it : chatLog) {
|
||||
MapleCharacter chr = it.getLeft();
|
||||
for(Pair<Character, String> it : chatLog) {
|
||||
Character chr = it.getLeft();
|
||||
Byte pos = chatSlot.get(chr.getId());
|
||||
|
||||
broadcastToVisitors(PacketCreator.getPlayerShopChat(chr, it.getRight(), pos));
|
||||
@@ -443,14 +443,14 @@ public class MaplePlayerShop extends AbstractMapleMapObject {
|
||||
}
|
||||
}
|
||||
|
||||
public MapleCharacter getOwner() {
|
||||
public Character getOwner() {
|
||||
return owner;
|
||||
}
|
||||
|
||||
public MapleCharacter[] getVisitors() {
|
||||
public Character[] getVisitors() {
|
||||
visitorLock.lock();
|
||||
try {
|
||||
MapleCharacter[] copy = new MapleCharacter[3];
|
||||
Character[] copy = new Character[3];
|
||||
for(int i = 0; i < visitors.length; i++) copy[i] = visitors[i];
|
||||
|
||||
return copy;
|
||||
@@ -488,7 +488,7 @@ public class MaplePlayerShop extends AbstractMapleMapObject {
|
||||
bannedList.add(name);
|
||||
}
|
||||
|
||||
MapleCharacter target = null;
|
||||
Character target = null;
|
||||
visitorLock.lock();
|
||||
try {
|
||||
for (int i = 0; i < 3; i++) {
|
||||
@@ -511,7 +511,7 @@ public class MaplePlayerShop extends AbstractMapleMapObject {
|
||||
return bannedList.contains(name);
|
||||
}
|
||||
|
||||
public synchronized boolean visitShop(MapleCharacter chr) {
|
||||
public synchronized boolean visitShop(Character chr) {
|
||||
if (this.isBanned(chr.getName())) {
|
||||
chr.dropMessage(1, "You have been banned from this store.");
|
||||
return false;
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
*/
|
||||
package server.maps;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import client.MapleClient;
|
||||
import client.SkillFactory;
|
||||
import tools.PacketCreator;
|
||||
@@ -33,12 +33,12 @@ import java.awt.*;
|
||||
* @author Jan
|
||||
*/
|
||||
public class MapleSummon extends AbstractAnimatedMapleMapObject {
|
||||
private MapleCharacter owner;
|
||||
private Character owner;
|
||||
private byte skillLevel;
|
||||
private int skill, hp;
|
||||
private SummonMovementType movementType;
|
||||
|
||||
public MapleSummon(MapleCharacter owner, int skill, Point pos, SummonMovementType movementType) {
|
||||
public MapleSummon(Character owner, int skill, Point pos, SummonMovementType movementType) {
|
||||
this.owner = owner;
|
||||
this.skill = skill;
|
||||
this.skillLevel = owner.getSkillLevel(SkillFactory.getSkill(skill));
|
||||
@@ -58,7 +58,7 @@ public class MapleSummon extends AbstractAnimatedMapleMapObject {
|
||||
client.sendPacket(PacketCreator.removeSummon(this, true));
|
||||
}
|
||||
|
||||
public MapleCharacter getOwner() {
|
||||
public Character getOwner() {
|
||||
return owner;
|
||||
}
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
*/
|
||||
package server.maps;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import net.server.Server;
|
||||
import server.TimerManager;
|
||||
import tools.PacketCreator;
|
||||
@@ -37,7 +37,7 @@ public class MapleTVEffect {
|
||||
|
||||
private final static boolean[] ACTIVE = new boolean[Server.getInstance().getWorldsSize()];
|
||||
|
||||
public static synchronized boolean broadcastMapleTVIfNotActive(MapleCharacter player, MapleCharacter victim, List<String> messages, int tvType){
|
||||
public static synchronized boolean broadcastMapleTVIfNotActive(Character player, Character victim, List<String> messages, int tvType){
|
||||
int w = player.getWorld();
|
||||
if(!ACTIVE[w]) {
|
||||
broadcastTV(true, w, messages, player, tvType, victim);
|
||||
@@ -47,7 +47,7 @@ public class MapleTVEffect {
|
||||
return false;
|
||||
}
|
||||
|
||||
private static synchronized void broadcastTV(boolean activity, final int userWorld, List<String> message, MapleCharacter user, int type, MapleCharacter partner) {
|
||||
private static synchronized void broadcastTV(boolean activity, final int userWorld, List<String> message, Character user, int type, Character partner) {
|
||||
Server server = Server.getInstance();
|
||||
ACTIVE[userWorld] = activity;
|
||||
if (activity) {
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
*/
|
||||
package server.partyquest;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import constants.game.GameConstants;
|
||||
import server.TimerManager;
|
||||
import server.expeditions.MapleExpedition;
|
||||
@@ -43,8 +43,8 @@ public class AriantColiseum {
|
||||
private MapleExpedition exped;
|
||||
private MapleMap map;
|
||||
|
||||
private Map<MapleCharacter, Integer> score;
|
||||
private Map<MapleCharacter, Integer> rewardTier;
|
||||
private Map<Character, Integer> score;
|
||||
private Map<Character, Integer> rewardTier;
|
||||
private boolean scoreDirty = false;
|
||||
|
||||
private ScheduledFuture<?> ariantUpdate;
|
||||
@@ -65,17 +65,17 @@ public class AriantColiseum {
|
||||
int pqTimer = 10 * 60 * 1000;
|
||||
int pqTimerBoard = (9 * 60 * 1000) + 50 * 1000;
|
||||
|
||||
List<MapleCharacter> players = exped.getActiveMembers();
|
||||
List<Character> players = exped.getActiveMembers();
|
||||
score = new HashMap<>();
|
||||
rewardTier = new HashMap<>();
|
||||
for (MapleCharacter mc : players) {
|
||||
for (Character mc : players) {
|
||||
mc.changeMap(map, 0);
|
||||
mc.setAriantColiseum(this);
|
||||
mc.updateAriantScore();
|
||||
rewardTier.put(mc, 0);
|
||||
}
|
||||
|
||||
for (MapleCharacter mc : players) {
|
||||
for (Character mc : players) {
|
||||
mc.sendPacket(PacketCreator.updateAriantPQRanking(score));
|
||||
}
|
||||
|
||||
@@ -125,16 +125,16 @@ public class AriantColiseum {
|
||||
cancelAriantScoreBoard();
|
||||
}
|
||||
|
||||
public int getAriantScore(MapleCharacter chr) {
|
||||
public int getAriantScore(Character chr) {
|
||||
Integer chrScore = score.get(chr);
|
||||
return chrScore != null ? chrScore : 0;
|
||||
}
|
||||
|
||||
public void clearAriantScore(MapleCharacter chr) {
|
||||
public void clearAriantScore(Character chr) {
|
||||
score.remove(chr);
|
||||
}
|
||||
|
||||
public void updateAriantScore(MapleCharacter chr, int points) {
|
||||
public void updateAriantScore(Character chr, int points) {
|
||||
if (map != null) {
|
||||
score.put(chr, points);
|
||||
scoreDirty = true;
|
||||
@@ -143,19 +143,19 @@ public class AriantColiseum {
|
||||
|
||||
private void broadcastAriantScoreUpdate() {
|
||||
if (scoreDirty) {
|
||||
for (MapleCharacter chr : score.keySet()) {
|
||||
for (Character chr : score.keySet()) {
|
||||
chr.sendPacket(PacketCreator.updateAriantPQRanking(score));
|
||||
}
|
||||
scoreDirty = false;
|
||||
}
|
||||
}
|
||||
|
||||
public int getAriantRewardTier(MapleCharacter chr) {
|
||||
public int getAriantRewardTier(Character chr) {
|
||||
Integer reward = rewardTier.get(chr);
|
||||
return reward != null ? reward : 0;
|
||||
}
|
||||
|
||||
public void clearAriantRewardTier(MapleCharacter chr) {
|
||||
public void clearAriantRewardTier(Character chr) {
|
||||
rewardTier.remove(chr);
|
||||
}
|
||||
|
||||
@@ -163,13 +163,13 @@ public class AriantColiseum {
|
||||
lostShards += quantity;
|
||||
}
|
||||
|
||||
public void leaveArena(MapleCharacter chr) {
|
||||
public void leaveArena(Character chr) {
|
||||
if (!(eventClear && GameConstants.isAriantColiseumArena(chr.getMapId()))) {
|
||||
leaveArenaInternal(chr);
|
||||
}
|
||||
}
|
||||
|
||||
private synchronized void leaveArenaInternal(MapleCharacter chr) {
|
||||
private synchronized void leaveArenaInternal(Character chr) {
|
||||
if (exped != null) {
|
||||
if (exped.removeMember(chr)) {
|
||||
int minSize = eventClear ? 1 : 2;
|
||||
@@ -185,7 +185,7 @@ public class AriantColiseum {
|
||||
}
|
||||
}
|
||||
|
||||
public void playerDisconnected(MapleCharacter chr) {
|
||||
public void playerDisconnected(Character chr) {
|
||||
leaveArenaInternal(chr);
|
||||
}
|
||||
|
||||
@@ -221,10 +221,10 @@ public class AriantColiseum {
|
||||
|
||||
public void distributeAriantPoints() {
|
||||
int firstTop = -1, secondTop = -1;
|
||||
MapleCharacter winner = null;
|
||||
Character winner = null;
|
||||
List<Integer> runnerups = new ArrayList<>();
|
||||
|
||||
for (Entry<MapleCharacter, Integer> e : score.entrySet()) {
|
||||
for (Entry<Character, Integer> e : score.entrySet()) {
|
||||
Integer s = e.getValue();
|
||||
if (s > firstTop) {
|
||||
secondTop = firstTop;
|
||||
@@ -261,7 +261,7 @@ public class AriantColiseum {
|
||||
exped.removeChannelExpedition(map.getChannelServer());
|
||||
cancelAriantSchedules();
|
||||
|
||||
for (MapleCharacter chr : map.getAllPlayers()) {
|
||||
for (Character chr : map.getAllPlayers()) {
|
||||
chr.changeMap(980010010, 0);
|
||||
}
|
||||
}
|
||||
@@ -270,7 +270,7 @@ public class AriantColiseum {
|
||||
if (exped != null) {
|
||||
exped.dispose(false);
|
||||
|
||||
for (MapleCharacter chr : exped.getActiveMembers()) {
|
||||
for (Character chr : exped.getActiveMembers()) {
|
||||
chr.setAriantColiseum(null);
|
||||
chr.changeMap(980010000, 0);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package server.partyquest;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import config.YamlConfig;
|
||||
import constants.string.LanguageConstants;
|
||||
import net.server.Server;
|
||||
@@ -29,7 +29,7 @@ public class MonsterCarnival {
|
||||
private ScheduledFuture<?> timer, effectTimer, respawnTask;
|
||||
private long startTime = 0;
|
||||
private int summonsR = 0, summonsB = 0, room = 0;
|
||||
private MapleCharacter leader1, leader2, team1, team2;
|
||||
private Character leader1, leader2, team1, team2;
|
||||
private int redCP, blueCP, redTotalCP, blueTotalCP, redTimeupCP, blueTimeupCP;
|
||||
private boolean cpq1;
|
||||
|
||||
@@ -51,7 +51,7 @@ public class MonsterCarnival {
|
||||
bluePortal = 1;
|
||||
}
|
||||
for (MaplePartyCharacter mpc : p1.getMembers()) {
|
||||
MapleCharacter mc = mpc.getPlayer();
|
||||
Character mc = mpc.getPlayer();
|
||||
if (mc != null) {
|
||||
mc.setMonsterCarnival(this);
|
||||
mc.setTeam(0);
|
||||
@@ -65,7 +65,7 @@ public class MonsterCarnival {
|
||||
}
|
||||
}
|
||||
for (MaplePartyCharacter mpc : p2.getMembers()) {
|
||||
MapleCharacter mc = mpc.getPlayer();
|
||||
Character mc = mpc.getPlayer();
|
||||
if (mc != null) {
|
||||
mc.setMonsterCarnival(this);
|
||||
mc.setTeam(1);
|
||||
@@ -80,13 +80,13 @@ public class MonsterCarnival {
|
||||
}
|
||||
if (team1 == null || team2 == null) {
|
||||
for (MaplePartyCharacter mpc : p1.getMembers()) {
|
||||
MapleCharacter chr = mpc.getPlayer();
|
||||
Character chr = mpc.getPlayer();
|
||||
if (chr != null) {
|
||||
chr.dropMessage(5, LanguageConstants.getMessage(chr, LanguageConstants.CPQError));
|
||||
}
|
||||
}
|
||||
for (MaplePartyCharacter mpc : p2.getMembers()) {
|
||||
MapleCharacter chr = mpc.getPlayer();
|
||||
Character chr = mpc.getPlayer();
|
||||
if (chr != null) {
|
||||
chr.dropMessage(5, LanguageConstants.getMessage(chr, LanguageConstants.CPQError));
|
||||
}
|
||||
@@ -122,7 +122,7 @@ public class MonsterCarnival {
|
||||
team = 1;
|
||||
}
|
||||
}
|
||||
for (MapleCharacter chrMap : map.getAllPlayers()) {
|
||||
for (Character chrMap : map.getAllPlayers()) {
|
||||
if (team == -1) {
|
||||
team = 1;
|
||||
}
|
||||
@@ -199,7 +199,7 @@ public class MonsterCarnival {
|
||||
out = cs.getMapFactory().getMap(980000010);
|
||||
}
|
||||
for (MaplePartyCharacter mpc : leader1.getParty().getMembers()) {
|
||||
MapleCharacter mc = mpc.getPlayer();
|
||||
Character mc = mpc.getPlayer();
|
||||
if (mc != null) {
|
||||
mc.resetCP();
|
||||
mc.setTeam(-1);
|
||||
@@ -210,7 +210,7 @@ public class MonsterCarnival {
|
||||
}
|
||||
}
|
||||
for (MaplePartyCharacter mpc : leader2.getParty().getMembers()) {
|
||||
MapleCharacter mc = mpc.getPlayer();
|
||||
Character mc = mpc.getPlayer();
|
||||
if (mc != null) {
|
||||
mc.resetCP();
|
||||
mc.setTeam(-1);
|
||||
@@ -255,7 +255,7 @@ public class MonsterCarnival {
|
||||
Channel cs = map.getChannelServer();
|
||||
if (winningTeam == 0) {
|
||||
for (MaplePartyCharacter mpc : leader1.getParty().getMembers()) {
|
||||
MapleCharacter mc = mpc.getPlayer();
|
||||
Character mc = mpc.getPlayer();
|
||||
if (mc != null) {
|
||||
mc.gainFestivalPoints(this.redTotalCP);
|
||||
mc.setMonsterCarnival(null);
|
||||
@@ -269,7 +269,7 @@ public class MonsterCarnival {
|
||||
}
|
||||
}
|
||||
for (MaplePartyCharacter mpc : leader2.getParty().getMembers()) {
|
||||
MapleCharacter mc = mpc.getPlayer();
|
||||
Character mc = mpc.getPlayer();
|
||||
if (mc != null) {
|
||||
mc.gainFestivalPoints(this.blueTotalCP);
|
||||
mc.setMonsterCarnival(null);
|
||||
@@ -284,7 +284,7 @@ public class MonsterCarnival {
|
||||
}
|
||||
} else if (winningTeam == 1) {
|
||||
for (MaplePartyCharacter mpc : leader2.getParty().getMembers()) {
|
||||
MapleCharacter mc = mpc.getPlayer();
|
||||
Character mc = mpc.getPlayer();
|
||||
if (mc != null) {
|
||||
mc.gainFestivalPoints(this.blueTotalCP);
|
||||
mc.setMonsterCarnival(null);
|
||||
@@ -298,7 +298,7 @@ public class MonsterCarnival {
|
||||
}
|
||||
}
|
||||
for (MaplePartyCharacter mpc : leader1.getParty().getMembers()) {
|
||||
MapleCharacter mc = mpc.getPlayer();
|
||||
Character mc = mpc.getPlayer();
|
||||
if (mc != null) {
|
||||
mc.gainFestivalPoints(this.redTotalCP);
|
||||
mc.setMonsterCarnival(null);
|
||||
@@ -341,7 +341,7 @@ public class MonsterCarnival {
|
||||
}
|
||||
|
||||
private void extendTime() {
|
||||
for (MapleCharacter chrMap : map.getAllPlayers()) {
|
||||
for (Character chrMap : map.getAllPlayers()) {
|
||||
chrMap.dropMessage(5, LanguageConstants.getMessage(chrMap, LanguageConstants.CPQExtendTime));
|
||||
}
|
||||
startTime = System.currentTimeMillis() + 3 * 60 * 1000;
|
||||
@@ -371,7 +371,7 @@ public class MonsterCarnival {
|
||||
|
||||
map.killAllMonsters();
|
||||
for (MaplePartyCharacter mpc : leader1.getParty().getMembers()) {
|
||||
MapleCharacter mc = mpc.getPlayer();
|
||||
Character mc = mpc.getPlayer();
|
||||
if (mc != null) {
|
||||
if (redWin) {
|
||||
mc.sendPacket(PacketCreator.showEffect("quest/carnival/win"));
|
||||
@@ -385,7 +385,7 @@ public class MonsterCarnival {
|
||||
}
|
||||
}
|
||||
for (MaplePartyCharacter mpc : leader2.getParty().getMembers()) {
|
||||
MapleCharacter mc = mpc.getPlayer();
|
||||
Character mc = mpc.getPlayer();
|
||||
if (mc != null) {
|
||||
if (!redWin) {
|
||||
mc.sendPacket(PacketCreator.showEffect("quest/carnival/win"));
|
||||
@@ -416,23 +416,23 @@ public class MonsterCarnival {
|
||||
this.p2 = p2;
|
||||
}
|
||||
|
||||
public MapleCharacter getLeader1() {
|
||||
public Character getLeader1() {
|
||||
return leader1;
|
||||
}
|
||||
|
||||
public void setLeader1(MapleCharacter leader1) {
|
||||
public void setLeader1(Character leader1) {
|
||||
this.leader1 = leader1;
|
||||
}
|
||||
|
||||
public MapleCharacter getLeader2() {
|
||||
public Character getLeader2() {
|
||||
return leader2;
|
||||
}
|
||||
|
||||
public void setLeader2(MapleCharacter leader2) {
|
||||
public void setLeader2(Character leader2) {
|
||||
this.leader2 = leader2;
|
||||
}
|
||||
|
||||
public MapleCharacter getEnemyLeader(int team) {
|
||||
public Character getEnemyLeader(int team) {
|
||||
switch (team) {
|
||||
case 0:
|
||||
return leader2;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package server.partyquest;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import server.maps.MapleMap;
|
||||
import tools.PacketCreator;
|
||||
|
||||
@@ -12,29 +12,29 @@ import java.util.List;
|
||||
*/
|
||||
public class MonsterCarnivalParty {
|
||||
|
||||
private List<MapleCharacter> members = new LinkedList<>();
|
||||
private MapleCharacter leader;
|
||||
private List<Character> members = new LinkedList<>();
|
||||
private Character leader;
|
||||
private byte team;
|
||||
private short availableCP = 0, totalCP = 0;
|
||||
private int summons = 8;
|
||||
private boolean winner = false;
|
||||
|
||||
public MonsterCarnivalParty(final MapleCharacter owner, final List<MapleCharacter> members1, final byte team1) {
|
||||
public MonsterCarnivalParty(final Character owner, final List<Character> members1, final byte team1) {
|
||||
leader = owner;
|
||||
members = members1;
|
||||
team = team1;
|
||||
|
||||
for (final MapleCharacter chr : members) {
|
||||
for (final Character chr : members) {
|
||||
chr.setMonsterCarnivalParty(this);
|
||||
chr.setTeam(team);
|
||||
}
|
||||
}
|
||||
|
||||
public final MapleCharacter getLeader() {
|
||||
public final Character getLeader() {
|
||||
return leader;
|
||||
}
|
||||
|
||||
public void addCP(MapleCharacter player, int ammount) {
|
||||
public void addCP(Character player, int ammount) {
|
||||
totalCP += ammount;
|
||||
availableCP += ammount;
|
||||
player.addCP(ammount);
|
||||
@@ -48,12 +48,12 @@ public class MonsterCarnivalParty {
|
||||
return availableCP;
|
||||
}
|
||||
|
||||
public void useCP(MapleCharacter player, int ammount) {
|
||||
public void useCP(Character player, int ammount) {
|
||||
availableCP -= ammount;
|
||||
player.useCP(ammount);
|
||||
}
|
||||
|
||||
public List<MapleCharacter> getMembers() {
|
||||
public List<Character> getMembers() {
|
||||
return members;
|
||||
}
|
||||
|
||||
@@ -62,7 +62,7 @@ public class MonsterCarnivalParty {
|
||||
}
|
||||
|
||||
public void warpOut(final int map) {
|
||||
for (MapleCharacter chr : members) {
|
||||
for (Character chr : members) {
|
||||
chr.changeMap(map, 0);
|
||||
chr.setMonsterCarnivalParty(null);
|
||||
chr.setMonsterCarnival(null);
|
||||
@@ -71,7 +71,7 @@ public class MonsterCarnivalParty {
|
||||
}
|
||||
|
||||
public void warp(final MapleMap map, final int portalid) {
|
||||
for (MapleCharacter chr : members) {
|
||||
for (Character chr : members) {
|
||||
chr.changeMap(map, map.getPortal(portalid));
|
||||
}
|
||||
}
|
||||
@@ -85,7 +85,7 @@ public class MonsterCarnivalParty {
|
||||
|
||||
public boolean allInMap(MapleMap map) {
|
||||
boolean status = true;
|
||||
for (MapleCharacter chr : members) {
|
||||
for (Character chr : members) {
|
||||
if (chr.getMap() != map) {
|
||||
status = false;
|
||||
}
|
||||
@@ -93,7 +93,7 @@ public class MonsterCarnivalParty {
|
||||
return status;
|
||||
}
|
||||
|
||||
public void removeMember(MapleCharacter chr) {
|
||||
public void removeMember(Character chr) {
|
||||
members.remove(chr);
|
||||
chr.changeMap(980000010);
|
||||
chr.setMonsterCarnivalParty(null);
|
||||
@@ -111,7 +111,7 @@ public class MonsterCarnivalParty {
|
||||
public void displayMatchResult() {
|
||||
final String effect = winner ? "quest/carnival/win" : "quest/carnival/lose";
|
||||
|
||||
for (final MapleCharacter chr : members) {
|
||||
for (final Character chr : members) {
|
||||
chr.sendPacket(PacketCreator.showEffect(effect));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,15 +22,14 @@
|
||||
|
||||
package server.partyquest;
|
||||
|
||||
import client.MapleCharacter;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import tools.FilePrinter;
|
||||
import client.Character;
|
||||
import net.server.Server;
|
||||
import net.server.world.MapleParty;
|
||||
import net.server.world.MaplePartyCharacter;
|
||||
import tools.FilePrinter;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -39,7 +38,7 @@ import net.server.world.MaplePartyCharacter;
|
||||
public class PartyQuest {
|
||||
int channel, world;
|
||||
MapleParty party;
|
||||
List<MapleCharacter> participants = new ArrayList<>();
|
||||
List<Character> participants = new ArrayList<>();
|
||||
|
||||
public PartyQuest(MapleParty party) {
|
||||
this.party = party;
|
||||
@@ -49,7 +48,7 @@ public class PartyQuest {
|
||||
int mapid = leader.getMapId();
|
||||
for (MaplePartyCharacter pchr : party.getMembers()) {
|
||||
if (pchr.getChannel() == channel && pchr.getMapId() == mapid) {
|
||||
MapleCharacter chr = Server.getInstance().getWorld(world).getChannel(channel).getPlayerStorage().getCharacterById(pchr.getId());
|
||||
Character chr = Server.getInstance().getWorld(world).getChannel(channel).getPlayerStorage().getCharacterById(pchr.getId());
|
||||
if (chr != null)
|
||||
this.participants.add(chr);
|
||||
}
|
||||
@@ -60,11 +59,11 @@ public class PartyQuest {
|
||||
return party;
|
||||
}
|
||||
|
||||
public List<MapleCharacter> getParticipants() {
|
||||
public List<Character> getParticipants() {
|
||||
return participants;
|
||||
}
|
||||
|
||||
public void removeParticipant(MapleCharacter chr) throws Throwable {
|
||||
public void removeParticipant(Character chr) throws Throwable {
|
||||
synchronized (participants) {
|
||||
participants.remove(chr);
|
||||
chr.setPartyQuest(null);
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
package server.partyquest;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import net.server.world.MapleParty;
|
||||
import server.MapleItemInformationProvider;
|
||||
import server.TimerManager;
|
||||
@@ -138,7 +138,7 @@ public class Pyramid extends PartyQuest {
|
||||
}
|
||||
|
||||
public void warp(int mapid) {
|
||||
for (MapleCharacter chr : getParticipants()) {
|
||||
for (Character chr : getParticipants()) {
|
||||
chr.changeMap(mapid, 0);
|
||||
}
|
||||
if (stage > -1) {
|
||||
@@ -150,7 +150,7 @@ public class Pyramid extends PartyQuest {
|
||||
}
|
||||
|
||||
public void broadcastInfo(String info, int amount) {
|
||||
for (MapleCharacter chr : getParticipants()) {
|
||||
for (Character chr : getParticipants()) {
|
||||
chr.sendPacket(PacketCreator.getEnergy("massacre_" + info, amount));
|
||||
chr.sendPacket(PacketCreator.pyramidGauge(count));
|
||||
}
|
||||
@@ -169,14 +169,14 @@ public class Pyramid extends PartyQuest {
|
||||
if (buffcount == 0 && total >= 250) {
|
||||
buffcount++;
|
||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
||||
for (MapleCharacter chr : getParticipants())
|
||||
for (Character chr : getParticipants())
|
||||
ii.getItemEffect(2022585).applyTo(chr);
|
||||
|
||||
} else if (buffcount == 1 && total >= 500) {
|
||||
buffcount++;
|
||||
skill++;
|
||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
||||
for (MapleCharacter chr : getParticipants()) {
|
||||
for (Character chr : getParticipants()) {
|
||||
chr.sendPacket(PacketCreator.getEnergy("massacre_skill", skill));
|
||||
ii.getItemEffect(2022586).applyTo(chr);
|
||||
}
|
||||
@@ -184,7 +184,7 @@ public class Pyramid extends PartyQuest {
|
||||
buffcount++;
|
||||
skill++;
|
||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
||||
for (MapleCharacter chr : getParticipants()) {
|
||||
for (Character chr : getParticipants()) {
|
||||
chr.sendPacket(PacketCreator.getEnergy("massacre_skill", skill));
|
||||
ii.getItemEffect(2022587).applyTo(chr);
|
||||
}
|
||||
@@ -195,7 +195,7 @@ public class Pyramid extends PartyQuest {
|
||||
buffcount++;
|
||||
skill++;
|
||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
||||
for (MapleCharacter chr : getParticipants()) {
|
||||
for (Character chr : getParticipants()) {
|
||||
chr.sendPacket(PacketCreator.getEnergy("massacre_skill", skill));
|
||||
ii.getItemEffect(2022588).applyTo(chr);
|
||||
}
|
||||
@@ -208,7 +208,7 @@ public class Pyramid extends PartyQuest {
|
||||
}
|
||||
}
|
||||
|
||||
public void sendScore(MapleCharacter chr) {
|
||||
public void sendScore(Character chr) {
|
||||
if (exp == 0) {
|
||||
int totalkills = (kill + cool);
|
||||
if (stage == 5) {
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
*/
|
||||
package server.quest;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import client.MapleQuestStatus;
|
||||
import client.MapleQuestStatus.Status;
|
||||
import config.YamlConfig;
|
||||
@@ -202,12 +202,12 @@ public class MapleQuest {
|
||||
return ir.getInterval() < YamlConfig.config.server.QUEST_POINT_REPEATABLE_INTERVAL * 60 * 60 * 1000;
|
||||
}
|
||||
|
||||
public boolean canStartQuestByStatus(MapleCharacter chr) {
|
||||
public boolean canStartQuestByStatus(Character chr) {
|
||||
MapleQuestStatus mqs = chr.getQuest(this);
|
||||
return !(!mqs.getStatus().equals(Status.NOT_STARTED) && !(mqs.getStatus().equals(Status.COMPLETED) && repeatable));
|
||||
}
|
||||
|
||||
public boolean canQuestByInfoProgress(MapleCharacter chr) {
|
||||
public boolean canQuestByInfoProgress(Character chr) {
|
||||
MapleQuestStatus mqs = chr.getQuest(this);
|
||||
List<String> ix = mqs.getInfoEx();
|
||||
if (!ix.isEmpty()) {
|
||||
@@ -231,7 +231,7 @@ public class MapleQuest {
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean canStart(MapleCharacter chr, int npcid) {
|
||||
public boolean canStart(Character chr, int npcid) {
|
||||
if (!canStartQuestByStatus(chr)) {
|
||||
return false;
|
||||
}
|
||||
@@ -249,7 +249,7 @@ public class MapleQuest {
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean canComplete(MapleCharacter chr, Integer npcid) {
|
||||
public boolean canComplete(Character chr, Integer npcid) {
|
||||
MapleQuestStatus mqs = chr.getQuest(this);
|
||||
if (!mqs.getStatus().equals(Status.STARTED)) {
|
||||
return false;
|
||||
@@ -268,7 +268,7 @@ public class MapleQuest {
|
||||
return true;
|
||||
}
|
||||
|
||||
public void start(MapleCharacter chr, int npc) {
|
||||
public void start(Character chr, int npc) {
|
||||
if (autoStart || canStart(chr, npc)) {
|
||||
Collection<MapleQuestAction> acts = startActs.values();
|
||||
for (MapleQuestAction a : acts) {
|
||||
@@ -283,11 +283,11 @@ public class MapleQuest {
|
||||
}
|
||||
}
|
||||
|
||||
public void complete(MapleCharacter chr, int npc) {
|
||||
public void complete(Character chr, int npc) {
|
||||
complete(chr, npc, null);
|
||||
}
|
||||
|
||||
public void complete(MapleCharacter chr, int npc, Integer selection) {
|
||||
public void complete(Character chr, int npc, Integer selection) {
|
||||
if (autoPreComplete || canComplete(chr, npc)) {
|
||||
Collection<MapleQuestAction> acts = completeActs.values();
|
||||
for (MapleQuestAction a : acts) {
|
||||
@@ -300,17 +300,17 @@ public class MapleQuest {
|
||||
a.run(chr, selection);
|
||||
}
|
||||
if (!this.hasNextQuestAction()) {
|
||||
chr.announceUpdateQuest(MapleCharacter.DelayedQuestUpdate.INFO, chr.getQuest(this));
|
||||
chr.announceUpdateQuest(Character.DelayedQuestUpdate.INFO, chr.getQuest(this));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void reset(MapleCharacter chr) {
|
||||
public void reset(Character chr) {
|
||||
MapleQuestStatus newStatus = new MapleQuestStatus(this, MapleQuestStatus.Status.NOT_STARTED);
|
||||
chr.updateQuestStatus(newStatus);
|
||||
}
|
||||
|
||||
public boolean forfeit(MapleCharacter chr) {
|
||||
public boolean forfeit(Character chr) {
|
||||
if (!chr.getQuest(this).getStatus().equals(Status.STARTED)) {
|
||||
return false;
|
||||
}
|
||||
@@ -323,7 +323,7 @@ public class MapleQuest {
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean forceStart(MapleCharacter chr, int npc) {
|
||||
public boolean forceStart(Character chr, int npc) {
|
||||
MapleQuestStatus newStatus = new MapleQuestStatus(this, MapleQuestStatus.Status.STARTED, npc);
|
||||
|
||||
MapleQuestStatus oldStatus = chr.getQuest(this.getId());
|
||||
@@ -359,7 +359,7 @@ public class MapleQuest {
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean forceComplete(MapleCharacter chr, int npc) {
|
||||
public boolean forceComplete(Character chr, int npc) {
|
||||
if (timeLimit > 0) {
|
||||
chr.sendPacket(PacketCreator.removeQuestTimeLimit(id));
|
||||
}
|
||||
@@ -580,7 +580,7 @@ public class MapleQuest {
|
||||
return ret;
|
||||
}
|
||||
|
||||
public boolean restoreLostItem(MapleCharacter chr, int itemid) {
|
||||
public boolean restoreLostItem(Character chr, int itemid) {
|
||||
if (chr.getQuest(this).getStatus().equals(MapleQuestStatus.Status.STARTED)) {
|
||||
ItemAction itemAct = (ItemAction) startActs.get(MapleQuestActionType.ITEM);
|
||||
if (itemAct != null) {
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
*/
|
||||
package server.quest.actions;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import provider.MapleData;
|
||||
import provider.MapleDataTool;
|
||||
import server.MapleItemInformationProvider;
|
||||
@@ -41,7 +41,7 @@ public class BuffAction extends MapleQuestAction {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean check(MapleCharacter chr, Integer extSelection) {
|
||||
public boolean check(Character chr, Integer extSelection) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ public class BuffAction extends MapleQuestAction {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run(MapleCharacter chr, Integer extSelection) {
|
||||
public void run(Character chr, Integer extSelection) {
|
||||
MapleItemInformationProvider.getInstance().getItemEffect(itemEffect).applyTo(chr);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
*/
|
||||
package server.quest.actions;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import config.YamlConfig;
|
||||
import provider.MapleData;
|
||||
import provider.MapleDataTool;
|
||||
@@ -47,11 +47,11 @@ public class ExpAction extends MapleQuestAction {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run(MapleCharacter chr, Integer extSelection) {
|
||||
public void run(Character chr, Integer extSelection) {
|
||||
runAction(chr, exp);
|
||||
}
|
||||
|
||||
public static void runAction(MapleCharacter chr, int gain) {
|
||||
public static void runAction(Character chr, int gain) {
|
||||
if (!YamlConfig.config.server.USE_QUEST_RATE) {
|
||||
chr.gainExp(gain * chr.getExpRate(), true, true);
|
||||
} else {
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
*/
|
||||
package server.quest.actions;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import provider.MapleData;
|
||||
import provider.MapleDataTool;
|
||||
import server.quest.MapleQuest;
|
||||
@@ -47,7 +47,7 @@ public class FameAction extends MapleQuestAction {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run(MapleCharacter chr, Integer extSelection) {
|
||||
public void run(Character chr, Integer extSelection) {
|
||||
chr.gainFame(fame);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,8 +19,7 @@
|
||||
*/
|
||||
package server.quest.actions;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.MapleQuestStatus;
|
||||
import client.Character;
|
||||
import provider.MapleData;
|
||||
import provider.MapleDataTool;
|
||||
import server.quest.MapleQuest;
|
||||
@@ -48,7 +47,7 @@ public class InfoAction extends MapleQuestAction {
|
||||
|
||||
|
||||
@Override
|
||||
public void run(MapleCharacter chr, Integer extSelection) {
|
||||
public void run(Character chr, Integer extSelection) {
|
||||
chr.getAbstractPlayerInteraction().setQuestProgress(questID, info);
|
||||
}
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
*/
|
||||
package server.quest.actions;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import client.MapleClient;
|
||||
import client.inventory.InventoryType;
|
||||
import client.inventory.Item;
|
||||
@@ -83,7 +83,7 @@ public class ItemAction extends MapleQuestAction {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run(MapleCharacter chr, Integer extSelection) {
|
||||
public void run(Character chr, Integer extSelection) {
|
||||
List<ItemData> takeItem = new LinkedList<>();
|
||||
List<ItemData> giveItem = new LinkedList<>();
|
||||
|
||||
@@ -155,7 +155,7 @@ public class ItemAction extends MapleQuestAction {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean check(MapleCharacter chr, Integer extSelection) {
|
||||
public boolean check(Character chr, Integer extSelection) {
|
||||
List<Pair<Item, InventoryType>> gainList = new LinkedList<>();
|
||||
List<Pair<Item, InventoryType>> selectList = new LinkedList<>();
|
||||
List<Pair<Item, InventoryType>> randomList = new LinkedList<>();
|
||||
@@ -239,7 +239,7 @@ public class ItemAction extends MapleQuestAction {
|
||||
return true;
|
||||
}
|
||||
|
||||
private void announceInventoryLimit(List<Integer> itemids, MapleCharacter chr) {
|
||||
private void announceInventoryLimit(List<Integer> itemids, Character chr) {
|
||||
for (Integer id : itemids) {
|
||||
if (MapleItemInformationProvider.getInstance().isPickupRestricted(id) && chr.haveItemWithId(id, true)) {
|
||||
chr.dropMessage(1, "Please check if you already have a similar one-of-a-kind item in your inventory.");
|
||||
@@ -250,7 +250,7 @@ public class ItemAction extends MapleQuestAction {
|
||||
chr.dropMessage(1, "Please check if you have enough space in your inventory.");
|
||||
}
|
||||
|
||||
private boolean canHold(MapleCharacter chr, List<Pair<Item, InventoryType>> gainList) {
|
||||
private boolean canHold(Character chr, List<Pair<Item, InventoryType>> gainList) {
|
||||
List<Integer> toAddItemids = new LinkedList<>();
|
||||
List<Integer> toAddQuantity = new LinkedList<>();
|
||||
List<Integer> toRemoveItemids = new LinkedList<>();
|
||||
@@ -272,7 +272,7 @@ public class ItemAction extends MapleQuestAction {
|
||||
return chr.getAbstractPlayerInteraction().canHoldAllAfterRemoving(toAddItemids, toAddQuantity, toRemoveItemids, toRemoveQuantity);
|
||||
}
|
||||
|
||||
private boolean canGetItem(ItemData item, MapleCharacter chr) {
|
||||
private boolean canGetItem(ItemData item, Character chr) {
|
||||
if (item.getGender() != 2 && item.getGender() != chr.getGender()) {
|
||||
return false;
|
||||
}
|
||||
@@ -292,7 +292,7 @@ public class ItemAction extends MapleQuestAction {
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean restoreLostItem(MapleCharacter chr, int itemid) {
|
||||
public boolean restoreLostItem(Character chr, int itemid) {
|
||||
if (!MapleItemInformationProvider.getInstance().isQuestItem(itemid)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
*/
|
||||
package server.quest.actions;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import provider.MapleData;
|
||||
import server.quest.MapleQuest;
|
||||
import server.quest.MapleQuestActionType;
|
||||
@@ -39,10 +39,10 @@ public abstract class MapleQuestAction {
|
||||
this.questID = quest.getId();
|
||||
}
|
||||
|
||||
public abstract void run(MapleCharacter chr, Integer extSelection);
|
||||
public abstract void run(Character chr, Integer extSelection);
|
||||
public abstract void processData(MapleData data);
|
||||
|
||||
public boolean check(MapleCharacter chr, Integer extSelection) {
|
||||
public boolean check(Character chr, Integer extSelection) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
*/
|
||||
package server.quest.actions;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import config.YamlConfig;
|
||||
import provider.MapleData;
|
||||
import provider.MapleDataTool;
|
||||
@@ -48,11 +48,11 @@ public class MesoAction extends MapleQuestAction {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run(MapleCharacter chr, Integer extSelection) {
|
||||
public void run(Character chr, Integer extSelection) {
|
||||
runAction(chr, mesos);
|
||||
}
|
||||
|
||||
public static void runAction(MapleCharacter chr, int gain) {
|
||||
public static void runAction(Character chr, int gain) {
|
||||
if (gain < 0) {
|
||||
chr.gainMeso(gain, true, false, true);
|
||||
} else {
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
*/
|
||||
package server.quest.actions;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import client.MapleQuestStatus;
|
||||
import provider.MapleData;
|
||||
import provider.MapleDataTool;
|
||||
@@ -48,7 +48,7 @@ public class NextQuestAction extends MapleQuestAction {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run(MapleCharacter chr, Integer extSelection) {
|
||||
public void run(Character chr, Integer extSelection) {
|
||||
MapleQuestStatus status = chr.getQuest(MapleQuest.getInstance(questID));
|
||||
chr.sendPacket(PacketCreator.updateQuestFinish((short) questID, status.getNpc(), (short) nextQuest));
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
*/
|
||||
package server.quest.actions;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import client.MapleQuestStatus;
|
||||
import constants.inventory.ItemConstants;
|
||||
import provider.MapleData;
|
||||
@@ -49,7 +49,7 @@ public class PetSkillAction extends MapleQuestAction {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean check(MapleCharacter chr, Integer extSelection) {
|
||||
public boolean check(Character chr, Integer extSelection) {
|
||||
MapleQuestStatus status = chr.getQuest(MapleQuest.getInstance(questID));
|
||||
if(!(status.getStatus() == MapleQuestStatus.Status.NOT_STARTED && status.getForfeited() > 0))
|
||||
return false;
|
||||
@@ -58,7 +58,7 @@ public class PetSkillAction extends MapleQuestAction {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run(MapleCharacter chr, Integer extSelection) {
|
||||
public void run(Character chr, Integer extSelection) {
|
||||
chr.getPet(0).setFlag((byte) ItemConstants.getFlagByInt(flag));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
*/
|
||||
package server.quest.actions;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import client.MapleClient;
|
||||
import client.inventory.Pet;
|
||||
import provider.MapleData;
|
||||
@@ -42,7 +42,7 @@ public class PetSpeedAction extends MapleQuestAction {
|
||||
public void processData(MapleData data) {}
|
||||
|
||||
@Override
|
||||
public void run(MapleCharacter chr, Integer extSelection) {
|
||||
public void run(Character chr, Integer extSelection) {
|
||||
MapleClient c = chr.getClient();
|
||||
|
||||
Pet pet = chr.getPet(0); // assuming here only the pet leader will gain owner speed
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
*/
|
||||
package server.quest.actions;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import client.MapleClient;
|
||||
import client.inventory.Pet;
|
||||
import provider.MapleData;
|
||||
@@ -47,7 +47,7 @@ public class PetTamenessAction extends MapleQuestAction {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run(MapleCharacter chr, Integer extSelection) {
|
||||
public void run(Character chr, Integer extSelection) {
|
||||
MapleClient c = chr.getClient();
|
||||
|
||||
Pet pet = chr.getPet(0); // assuming here only the pet leader will gain tameness
|
||||
|
||||
@@ -21,15 +21,16 @@
|
||||
*/
|
||||
package server.quest.actions;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import client.MapleQuestStatus;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import provider.MapleData;
|
||||
import provider.MapleDataTool;
|
||||
import server.quest.MapleQuest;
|
||||
import server.quest.MapleQuestActionType;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Tyler (Twdtwd)
|
||||
@@ -55,7 +56,7 @@ public class QuestAction extends MapleQuestAction {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run(MapleCharacter chr, Integer extSelection) {
|
||||
public void run(Character chr, Integer extSelection) {
|
||||
for(Integer questID : quests.keySet()) {
|
||||
int stat = quests.get(questID);
|
||||
chr.updateQuestStatus(new MapleQuestStatus(MapleQuest.getInstance(questID), MapleQuestStatus.Status.getById(stat)));
|
||||
|
||||
@@ -21,19 +21,20 @@
|
||||
*/
|
||||
package server.quest.actions;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import client.MapleJob;
|
||||
import client.Skill;
|
||||
import client.SkillFactory;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import provider.MapleData;
|
||||
import provider.MapleDataTool;
|
||||
import server.quest.MapleQuest;
|
||||
import server.quest.MapleQuestActionType;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Tyler (Twdtwd)
|
||||
@@ -71,7 +72,7 @@ public class SkillAction extends MapleQuestAction {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run(MapleCharacter chr, Integer extSelection) {
|
||||
public void run(Character chr, Integer extSelection) {
|
||||
for(SkillData skill : skillData.values()) {
|
||||
Skill skillObject = SkillFactory.getSkill(skill.getId());
|
||||
if(skillObject == null) continue;
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
*/
|
||||
package server.quest.requirements;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import provider.MapleData;
|
||||
import provider.MapleDataTool;
|
||||
import server.quest.MapleQuest;
|
||||
@@ -44,7 +44,7 @@ public class BuffExceptRequirement extends MapleQuestRequirement {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean check(MapleCharacter chr, Integer npcid) {
|
||||
public boolean check(Character chr, Integer npcid) {
|
||||
return !chr.hasBuffFromSourceid(buffId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
*/
|
||||
package server.quest.requirements;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import provider.MapleData;
|
||||
import provider.MapleDataTool;
|
||||
import server.quest.MapleQuest;
|
||||
@@ -44,7 +44,7 @@ public class BuffRequirement extends MapleQuestRequirement {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean check(MapleCharacter chr, Integer npcid) {
|
||||
public boolean check(Character chr, Integer npcid) {
|
||||
return chr.hasBuffFromSourceid(buffId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
*/
|
||||
package server.quest.requirements;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import provider.MapleData;
|
||||
import provider.MapleDataTool;
|
||||
import server.quest.MapleQuest;
|
||||
@@ -47,7 +47,7 @@ public class CompletedQuestRequirement extends MapleQuestRequirement {
|
||||
|
||||
|
||||
@Override
|
||||
public boolean check(MapleCharacter chr, Integer npcid) {
|
||||
public boolean check(Character chr, Integer npcid) {
|
||||
return chr.getCompletedQuests().size() >= reqQuest;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,13 +21,14 @@
|
||||
*/
|
||||
package server.quest.requirements;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import java.util.Calendar;
|
||||
import client.Character;
|
||||
import provider.MapleData;
|
||||
import provider.MapleDataTool;
|
||||
import server.quest.MapleQuest;
|
||||
import server.quest.MapleQuestRequirementType;
|
||||
|
||||
import java.util.Calendar;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Tyler (Twdtwd)
|
||||
@@ -52,7 +53,7 @@ public class EndDateRequirement extends MapleQuestRequirement {
|
||||
|
||||
|
||||
@Override
|
||||
public boolean check(MapleCharacter chr, Integer npcid) {
|
||||
public boolean check(Character chr, Integer npcid) {
|
||||
Calendar cal = Calendar.getInstance();
|
||||
cal.set(Integer.parseInt(timeStr.substring(0, 4)), Integer.parseInt(timeStr.substring(4, 6)), Integer.parseInt(timeStr.substring(6, 8)), Integer.parseInt(timeStr.substring(8, 10)), 0);
|
||||
return cal.getTimeInMillis() >= System.currentTimeMillis();
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
*/
|
||||
package server.quest.requirements;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import provider.MapleData;
|
||||
import provider.MapleDataTool;
|
||||
import server.quest.MapleQuest;
|
||||
@@ -50,7 +50,7 @@ public class FieldEnterRequirement extends MapleQuestRequirement {
|
||||
|
||||
|
||||
@Override
|
||||
public boolean check(MapleCharacter chr, Integer npcid) {
|
||||
public boolean check(Character chr, Integer npcid) {
|
||||
return mapId == chr.getMapId();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,14 +21,15 @@
|
||||
*/
|
||||
package server.quest.requirements;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import client.Character;
|
||||
import provider.MapleData;
|
||||
import provider.MapleDataTool;
|
||||
import server.quest.MapleQuest;
|
||||
import server.quest.MapleQuestRequirementType;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Tyler (Twdtwd)
|
||||
@@ -55,7 +56,7 @@ public class InfoExRequirement extends MapleQuestRequirement {
|
||||
|
||||
|
||||
@Override
|
||||
public boolean check(MapleCharacter chr, Integer npcid) {
|
||||
public boolean check(Character chr, Integer npcid) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
*/
|
||||
package server.quest.requirements;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import provider.MapleData;
|
||||
import provider.MapleDataTool;
|
||||
import server.quest.MapleQuest;
|
||||
@@ -47,7 +47,7 @@ public class InfoNumberRequirement extends MapleQuestRequirement {
|
||||
|
||||
|
||||
@Override
|
||||
public boolean check(MapleCharacter chr, Integer npcid) {
|
||||
public boolean check(Character chr, Integer npcid) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
*/
|
||||
package server.quest.requirements;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import client.MapleQuestStatus;
|
||||
import provider.MapleData;
|
||||
import provider.MapleDataTool;
|
||||
@@ -51,7 +51,7 @@ public class IntervalRequirement extends MapleQuestRequirement {
|
||||
interval = MapleDataTool.getInt(data) * 60 * 1000;
|
||||
}
|
||||
|
||||
private static String getIntervalTimeLeft(MapleCharacter chr, IntervalRequirement r) {
|
||||
private static String getIntervalTimeLeft(Character chr, IntervalRequirement r) {
|
||||
StringBuilder str = new StringBuilder();
|
||||
|
||||
long futureTime = chr.getQuest(MapleQuest.getInstance(r.questID)).getCompletionTime() + r.getInterval();
|
||||
@@ -83,7 +83,7 @@ public class IntervalRequirement extends MapleQuestRequirement {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean check(MapleCharacter chr, Integer npcid) {
|
||||
public boolean check(Character chr, Integer npcid) {
|
||||
boolean check = !chr.getQuest(MapleQuest.getInstance(questID)).getStatus().equals(MapleQuestStatus.Status.COMPLETED);
|
||||
boolean check2 = chr.getQuest(MapleQuest.getInstance(questID)).getCompletionTime() <= System.currentTimeMillis() - interval;
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
*/
|
||||
package server.quest.requirements;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import client.inventory.InventoryType;
|
||||
import client.inventory.Item;
|
||||
import constants.inventory.ItemConstants;
|
||||
@@ -59,7 +59,7 @@ public class ItemRequirement extends MapleQuestRequirement {
|
||||
|
||||
|
||||
@Override
|
||||
public boolean check(MapleCharacter chr, Integer npcid) {
|
||||
public boolean check(Character chr, Integer npcid) {
|
||||
MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
|
||||
for(Integer itemId : items.keySet()) {
|
||||
int countNeeded = items.get(itemId);
|
||||
|
||||
@@ -21,15 +21,15 @@
|
||||
*/
|
||||
package server.quest.requirements;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import client.Character;
|
||||
import client.MapleJob;
|
||||
import provider.MapleData;
|
||||
import provider.MapleDataTool;
|
||||
import server.quest.MapleQuest;
|
||||
import server.quest.MapleQuestRequirementType;
|
||||
import client.MapleCharacter;
|
||||
import client.MapleJob;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -56,7 +56,7 @@ public class JobRequirement extends MapleQuestRequirement {
|
||||
|
||||
|
||||
@Override
|
||||
public boolean check(MapleCharacter chr, Integer npcid) {
|
||||
public boolean check(Character chr, Integer npcid) {
|
||||
for(Integer job : jobs) {
|
||||
if (chr.getJob().equals(MapleJob.getById(job)) || chr.isGM()) {
|
||||
return true;
|
||||
|
||||
@@ -21,9 +21,9 @@
|
||||
*/
|
||||
package server.quest.requirements;
|
||||
|
||||
import client.Character;
|
||||
import provider.MapleData;
|
||||
import server.quest.MapleQuestRequirementType;
|
||||
import client.MapleCharacter;
|
||||
|
||||
/**
|
||||
* Base class for a Quest Requirement. Quest system uses it for all requirements.
|
||||
@@ -38,11 +38,11 @@ public abstract class MapleQuestRequirement {
|
||||
|
||||
/**
|
||||
* Checks the requirement to see if the player currently meets it.
|
||||
* @param chr The {@link MapleCharacter} to check on.
|
||||
* @param chr The {@link Character} to check on.
|
||||
* @param npcid The NPC ID it was called from.
|
||||
* @return boolean If the check was passed or not.
|
||||
*/
|
||||
public abstract boolean check(MapleCharacter chr, Integer npcid);
|
||||
public abstract boolean check(Character chr, Integer npcid);
|
||||
|
||||
/**
|
||||
* Processes the data and stores it in the class for future use.
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
*/
|
||||
package server.quest.requirements;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import provider.MapleData;
|
||||
import provider.MapleDataTool;
|
||||
import server.quest.MapleQuest;
|
||||
@@ -51,7 +51,7 @@ public class MaxLevelRequirement extends MapleQuestRequirement {
|
||||
|
||||
|
||||
@Override
|
||||
public boolean check(MapleCharacter chr, Integer npcid) {
|
||||
public boolean check(Character chr, Integer npcid) {
|
||||
return maxLevel >= chr.getLevel();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,11 +19,11 @@
|
||||
*/
|
||||
package server.quest.requirements;
|
||||
|
||||
import client.Character;
|
||||
import provider.MapleData;
|
||||
import provider.MapleDataTool;
|
||||
import server.quest.MapleQuest;
|
||||
import server.quest.MapleQuestRequirementType;
|
||||
import client.MapleCharacter;
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -44,7 +44,7 @@ public class MesoRequirement extends MapleQuestRequirement {
|
||||
|
||||
|
||||
@Override
|
||||
public boolean check(MapleCharacter chr, Integer npcid) {
|
||||
public boolean check(Character chr, Integer npcid) {
|
||||
if (chr.getMeso() >= meso) {
|
||||
return true;
|
||||
} else {
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
*/
|
||||
package server.quest.requirements;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import provider.MapleData;
|
||||
import provider.MapleDataTool;
|
||||
import server.quest.MapleQuest;
|
||||
@@ -48,7 +48,7 @@ public class MinLevelRequirement extends MapleQuestRequirement {
|
||||
|
||||
|
||||
@Override
|
||||
public boolean check(MapleCharacter chr, Integer npcid) {
|
||||
public boolean check(Character chr, Integer npcid) {
|
||||
return chr.getLevel() >= minLevel;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
*/
|
||||
package server.quest.requirements;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import client.inventory.Pet;
|
||||
import provider.MapleData;
|
||||
import provider.MapleDataTool;
|
||||
@@ -52,7 +52,7 @@ public class MinTamenessRequirement extends MapleQuestRequirement {
|
||||
|
||||
|
||||
@Override
|
||||
public boolean check(MapleCharacter chr, Integer npcid) {
|
||||
public boolean check(Character chr, Integer npcid) {
|
||||
int curCloseness = 0;
|
||||
|
||||
for(Pet pet : chr.getPets()) {
|
||||
|
||||
@@ -21,16 +21,16 @@
|
||||
*/
|
||||
package server.quest.requirements;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import client.Character;
|
||||
import client.MapleQuestStatus;
|
||||
import provider.MapleData;
|
||||
import provider.MapleDataTool;
|
||||
import server.quest.MapleQuest;
|
||||
import server.quest.MapleQuestRequirementType;
|
||||
import tools.FilePrinter;
|
||||
import client.MapleCharacter;
|
||||
import client.MapleQuestStatus;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -61,7 +61,7 @@ public class MobRequirement extends MapleQuestRequirement {
|
||||
|
||||
|
||||
@Override
|
||||
public boolean check(MapleCharacter chr, Integer npcid) {
|
||||
public boolean check(Character chr, Integer npcid) {
|
||||
MapleQuestStatus status = chr.getQuest(MapleQuest.getInstance(questID));
|
||||
for(Integer mobID : mobs.keySet()) {
|
||||
int countReq = mobs.get(mobID);
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
*/
|
||||
package server.quest.requirements;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import provider.MapleData;
|
||||
import provider.MapleDataTool;
|
||||
import server.quest.MapleQuest;
|
||||
@@ -47,7 +47,7 @@ public class MonsterBookCountRequirement extends MapleQuestRequirement {
|
||||
|
||||
|
||||
@Override
|
||||
public boolean check(MapleCharacter chr, Integer npcid) {
|
||||
public boolean check(Character chr, Integer npcid) {
|
||||
return chr.getMonsterBook().getTotalCards() >= reqCards;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
*/
|
||||
package server.quest.requirements;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import provider.MapleData;
|
||||
import provider.MapleDataTool;
|
||||
import server.quest.MapleQuest;
|
||||
@@ -46,7 +46,7 @@ public class NpcRequirement extends MapleQuestRequirement {
|
||||
|
||||
|
||||
@Override
|
||||
public boolean check(MapleCharacter chr, Integer npcid) {
|
||||
public boolean check(Character chr, Integer npcid) {
|
||||
return npcid != null && npcid == reqNPC;
|
||||
}
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
*/
|
||||
package server.quest.requirements;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import client.inventory.Pet;
|
||||
import provider.MapleData;
|
||||
import provider.MapleDataTool;
|
||||
@@ -54,7 +54,7 @@ public class PetRequirement extends MapleQuestRequirement {
|
||||
|
||||
|
||||
@Override
|
||||
public boolean check(MapleCharacter chr, Integer npcid) {
|
||||
public boolean check(Character chr, Integer npcid) {
|
||||
for(Pet pet : chr.getPets()) {
|
||||
if(pet == null) continue; // thanks Arufonsu for showing a NPE occurring here
|
||||
|
||||
|
||||
@@ -18,15 +18,15 @@
|
||||
*/
|
||||
package server.quest.requirements;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import client.Character;
|
||||
import client.MapleQuestStatus;
|
||||
import provider.MapleData;
|
||||
import provider.MapleDataTool;
|
||||
import server.quest.MapleQuest;
|
||||
import server.quest.MapleQuestRequirementType;
|
||||
import client.MapleCharacter;
|
||||
import client.MapleQuestStatus;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -55,7 +55,7 @@ public class QuestRequirement extends MapleQuestRequirement {
|
||||
|
||||
|
||||
@Override
|
||||
public boolean check(MapleCharacter chr, Integer npcid) {
|
||||
public boolean check(Character chr, Integer npcid) {
|
||||
for(Integer questID : quests.keySet()) {
|
||||
int stateReq = quests.get(questID);
|
||||
MapleQuestStatus qs = chr.getQuest(MapleQuest.getInstance(questID));
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
*/
|
||||
package server.quest.requirements;
|
||||
|
||||
import client.MapleCharacter;
|
||||
import client.Character;
|
||||
import provider.MapleData;
|
||||
import provider.MapleDataTool;
|
||||
import server.quest.MapleQuest;
|
||||
@@ -43,7 +43,7 @@ public class ScriptRequirement extends MapleQuestRequirement {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean check(MapleCharacter chr, Integer npcid) {
|
||||
public boolean check(Character chr, Integer npcid) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user