diff --git a/build/built-jar.properties b/build/built-jar.properties index cdf25ef53b..56610483ca 100644 --- a/build/built-jar.properties +++ b/build/built-jar.properties @@ -1,4 +1,4 @@ -#Sun, 22 Oct 2017 00:39:49 -0200 +#Sun, 22 Oct 2017 01:52:47 -0200 C\:\\Nexon\\MapleSolaxia\\MapleSolaxiaV2= diff --git a/build/classes/client/MapleCharacter$15.class b/build/classes/client/MapleCharacter$15.class index e4846b85ce..c61e5e40b8 100644 Binary files a/build/classes/client/MapleCharacter$15.class and b/build/classes/client/MapleCharacter$15.class differ diff --git a/build/classes/client/MapleCharacter$16.class b/build/classes/client/MapleCharacter$16.class index f42c0af875..21fe50eaf2 100644 Binary files a/build/classes/client/MapleCharacter$16.class and b/build/classes/client/MapleCharacter$16.class differ diff --git a/build/classes/client/MapleCharacter$17.class b/build/classes/client/MapleCharacter$17.class index 0478a12309..7cd4db1cea 100644 Binary files a/build/classes/client/MapleCharacter$17.class and b/build/classes/client/MapleCharacter$17.class differ diff --git a/build/classes/client/MapleCharacter$18.class b/build/classes/client/MapleCharacter$18.class index dd873ce60d..ec75f29df2 100644 Binary files a/build/classes/client/MapleCharacter$18.class and b/build/classes/client/MapleCharacter$18.class differ diff --git a/build/classes/client/MapleCharacter$19.class b/build/classes/client/MapleCharacter$19.class index b0644872d2..12093f3624 100644 Binary files a/build/classes/client/MapleCharacter$19.class and b/build/classes/client/MapleCharacter$19.class differ diff --git a/build/classes/client/MapleCharacter$MapleBuffStatValueHolder.class b/build/classes/client/MapleCharacter$MapleBuffStatValueHolder.class index c77220d142..a09cb2c936 100644 Binary files a/build/classes/client/MapleCharacter$MapleBuffStatValueHolder.class and b/build/classes/client/MapleCharacter$MapleBuffStatValueHolder.class differ diff --git a/build/classes/client/MapleCharacter$MapleCoolDownValueHolder.class b/build/classes/client/MapleCharacter$MapleCoolDownValueHolder.class index f7c9fea085..d93fb450c2 100644 Binary files a/build/classes/client/MapleCharacter$MapleCoolDownValueHolder.class and b/build/classes/client/MapleCharacter$MapleCoolDownValueHolder.class differ diff --git a/build/classes/client/MapleCharacter$SkillEntry.class b/build/classes/client/MapleCharacter$SkillEntry.class index c29901f907..58d3283a9a 100644 Binary files a/build/classes/client/MapleCharacter$SkillEntry.class and b/build/classes/client/MapleCharacter$SkillEntry.class differ diff --git a/build/classes/client/MapleCharacter.class b/build/classes/client/MapleCharacter.class index 63af495c33..5d58d28f41 100644 Binary files a/build/classes/client/MapleCharacter.class and b/build/classes/client/MapleCharacter.class differ diff --git a/build/classes/client/MapleClient.class b/build/classes/client/MapleClient.class index 09b9c03b5d..9497412bdd 100644 Binary files a/build/classes/client/MapleClient.class and b/build/classes/client/MapleClient.class differ diff --git a/build/classes/client/SkillFactory.class b/build/classes/client/SkillFactory.class index 1103a24b59..82ee28f983 100644 Binary files a/build/classes/client/SkillFactory.class and b/build/classes/client/SkillFactory.class differ diff --git a/build/classes/net/server/channel/handlers/EnterCashShopHandler.class b/build/classes/net/server/channel/handlers/EnterCashShopHandler.class index c2705f25b1..2efdf9a1db 100644 Binary files a/build/classes/net/server/channel/handlers/EnterCashShopHandler.class and b/build/classes/net/server/channel/handlers/EnterCashShopHandler.class differ diff --git a/build/classes/server/maps/MapleMap$27.class b/build/classes/server/maps/MapleMap$27.class index 27a98edfb2..35d7d3603e 100644 Binary files a/build/classes/server/maps/MapleMap$27.class and b/build/classes/server/maps/MapleMap$27.class differ diff --git a/build/classes/server/maps/MapleMap$28.class b/build/classes/server/maps/MapleMap$28.class index 0318fce7dd..9c729a5dc8 100644 Binary files a/build/classes/server/maps/MapleMap$28.class and b/build/classes/server/maps/MapleMap$28.class differ diff --git a/build/classes/server/maps/MapleMap$29.class b/build/classes/server/maps/MapleMap$29.class index 8dce272a4a..eb571c2fff 100644 Binary files a/build/classes/server/maps/MapleMap$29.class and b/build/classes/server/maps/MapleMap$29.class differ diff --git a/build/classes/server/maps/MapleMap$ActivateItemReactor$1.class b/build/classes/server/maps/MapleMap$ActivateItemReactor$1.class index 98ec32c14c..63cfc2a0e1 100644 Binary files a/build/classes/server/maps/MapleMap$ActivateItemReactor$1.class and b/build/classes/server/maps/MapleMap$ActivateItemReactor$1.class differ diff --git a/build/classes/server/maps/MapleMap$ActivateItemReactor.class b/build/classes/server/maps/MapleMap$ActivateItemReactor.class index bd711f8dc9..aeb2759346 100644 Binary files a/build/classes/server/maps/MapleMap$ActivateItemReactor.class and b/build/classes/server/maps/MapleMap$ActivateItemReactor.class differ diff --git a/build/classes/server/maps/MapleMap$ExpireMapItemJob.class b/build/classes/server/maps/MapleMap$ExpireMapItemJob.class index 212d770b3e..726f3deda4 100644 Binary files a/build/classes/server/maps/MapleMap$ExpireMapItemJob.class and b/build/classes/server/maps/MapleMap$ExpireMapItemJob.class differ diff --git a/build/classes/server/maps/MapleMap.class b/build/classes/server/maps/MapleMap.class index 826988fa2d..0f76cc8b1e 100644 Binary files a/build/classes/server/maps/MapleMap.class and b/build/classes/server/maps/MapleMap.class differ diff --git a/dist/MapleSolaxia.jar b/dist/MapleSolaxia.jar index a9840296a2..20ec45ef85 100644 Binary files a/dist/MapleSolaxia.jar and b/dist/MapleSolaxia.jar differ diff --git a/docs/mychanges_ptbr.txt b/docs/mychanges_ptbr.txt index dad7f4f129..aef0abd807 100644 --- a/docs/mychanges_ptbr.txt +++ b/docs/mychanges_ptbr.txt @@ -595,4 +595,5 @@ Consertado bugs envolvendo ganho de EXP em party, para casos onde o level do mob 21 - 22 Outubro 2017, Bonus de Map chair rearranjado como uma skill, buffando jogador no momento que a codição de ativação é atingida. Hired Merchant agora verifica devidamente se jogador possui slot antes de liberar a compra de um item. -Pequeno conserto de acesso concorrente com o Storage. \ No newline at end of file +Pequeno conserto de acesso concorrente com o Storage. +Corrigido Map chair não removendo task corretamente caso jogador mude de mapa inesperadamente. \ No newline at end of file diff --git a/scripts/portal/TD_MC_enterboss1.js b/scripts/portal/TD_MC_enterboss1.js index 525c8e64f4..0718c1730a 100644 --- a/scripts/portal/TD_MC_enterboss1.js +++ b/scripts/portal/TD_MC_enterboss1.js @@ -1,16 +1,6 @@ function enter(pi) { var questProgress = pi.getQuestProgress(2330, 3300005) + pi.getQuestProgress(2330, 3300006) + pi.getQuestProgress(2330, 3300007); //3 Yetis - if(questProgress == 3 && !pi.hasItem(4032388) && !pi.isQuestCompleted(2332)){ - if(pi.canHold(4032388)){ - pi.getPlayer().message("You have aquired a key to the Wedding Hall. King Pepe must have dropped it.") - pi.gainItem(4032388, 1); - } - else{ - pi.getPlayer().message("Please make room in your ETC inventory."); - } - } - if(pi.isQuestStarted(2330) && questProgress < 3){ pi.openNpc(1300013); } diff --git a/scripts/portal/out_pepeking.js b/scripts/portal/out_pepeking.js index 6be6f1059a..e1c2474aed 100644 --- a/scripts/portal/out_pepeking.js +++ b/scripts/portal/out_pepeking.js @@ -1,9 +1,26 @@ function enter(pi) { var eim = pi.getEventInstance(); - eim.stopEventTimer(); - eim.dispose(); + if(eim != null) { + eim.stopEventTimer(); + eim.dispose(); + } - pi.playPortalSound(); - pi.warp(106021400, 2); - return true; + var questProgress = pi.getQuestProgress(2330, 3300005) + pi.getQuestProgress(2330, 3300006) + pi.getQuestProgress(2330, 3300007); //3 Yetis + if(questProgress == 3 && !pi.hasItem(4032388)) { + if(pi.canHold(4032388)){ + pi.getPlayer().message("You have aquired a key to the Wedding Hall. King Pepe must have dropped it.") + pi.gainItem(4032388, 1); + + pi.playPortalSound(); + pi.warp(106021400, 2); + return true; + } else { + pi.getPlayer().message("Please make room in your ETC inventory."); + return false; + } + } else { + pi.playPortalSound(); + pi.warp(106021400, 2); + return true; + } } \ No newline at end of file diff --git a/src/client/MapleCharacter.java b/src/client/MapleCharacter.java index 9ed42925fd..6c7c02468d 100644 --- a/src/client/MapleCharacter.java +++ b/src/client/MapleCharacter.java @@ -1836,7 +1836,7 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject { } } - public void stopChairTask() { + private void stopChairTask() { chrLock.lock(); try { if (chairRecoveryTask != null) { @@ -1848,8 +1848,8 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject { } } - public void startChairTask() { - if(!ServerConstants.USE_CHAIR_EXTRAHEAL || chair.get() == 0) return; + private void startChairTask() { + if(chair.get() == 0) return; final int healInterval = 5000; final byte healHP = (byte) Math.max(ServerConstants.CHAIR_EXTRA_HEAL_HP, 1); @@ -3344,6 +3344,8 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject { } public void unregisterChairBuff() { + if(!ServerConstants.USE_CHAIR_EXTRAHEAL) return; + int skillId = getJobMapChair(job); int skillLv = getSkillLevel(skillId); if(skillLv > 0) { @@ -3353,6 +3355,8 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject { } public void registerChairBuff() { + if(!ServerConstants.USE_CHAIR_EXTRAHEAL) return; + int skillId = getJobMapChair(job); int skillLv = getSkillLevel(skillId); if(skillLv > 0) { @@ -7827,11 +7831,11 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject { extraRecoveryTask.cancel(false); } + unregisterChairBuff(); cancelBuffExpireTask(); cancelDiseaseExpireTask(); cancelSkillCooldownTask(); cancelExpirationTask(); - stopChairTask(); for (ScheduledFuture sf : timers) { sf.cancel(false); diff --git a/src/client/MapleClient.java b/src/client/MapleClient.java index 4328a75cae..4619404980 100644 --- a/src/client/MapleClient.java +++ b/src/client/MapleClient.java @@ -1310,6 +1310,7 @@ public class MapleClient { merchant.removeVisitor(getPlayer()); } } + player.unregisterChairBuff(); server.getPlayerBuffStorage().addBuffsToStorage(player.getId(), player.getAllBuffs()); player.setAwayFromWorld(true); player.cancelAllBuffs(true); diff --git a/src/constants/ServerConstants.java b/src/constants/ServerConstants.java index 4349fd3f62..771f9b438f 100644 --- a/src/constants/ServerConstants.java +++ b/src/constants/ServerConstants.java @@ -105,7 +105,7 @@ public class ServerConstants { public static final boolean USE_EQUIPMNT_LVLUP_SLOTS = true;//Equips can upgrade slots at level up. public static final boolean USE_EQUIPMNT_LVLUP_POWER = true;//Enable more powerful stat upgrades at equip level up. public static final boolean USE_SPIKES_AVOID_BANISH = true; //Shoes equipped with spikes prevents mobs from banishing wearer. - public static final boolean USE_CHAIR_EXTRAHEAL = true; //Enable map chairs to further recover player's HP and MP. + public static final boolean USE_CHAIR_EXTRAHEAL = true; //Enable map chairs to further recover player's HP and MP (player must have the Chair Mastery skill). public static final int MAX_EQUIPMNT_LVLUP_STAT_UP = 10000; //Max stat upgrade an equipment can have on a levelup. public static final int MAX_EQUIPMNT_STAT = 32767; //Max stat on an equipment by leveling up. public static final int USE_EQUIPMNT_LVLUP = 7; //All equips lvlup at max level of N, set 1 to disable. diff --git a/src/net/server/channel/handlers/EnterCashShopHandler.java b/src/net/server/channel/handlers/EnterCashShopHandler.java index 61ebe9dd46..b9a9817706 100644 --- a/src/net/server/channel/handlers/EnterCashShopHandler.java +++ b/src/net/server/channel/handlers/EnterCashShopHandler.java @@ -57,6 +57,7 @@ public class EnterCashShopHandler extends AbstractMaplePacketHandler { mc.closePlayerInteractions(); + mc.unregisterChairBuff(); Server.getInstance().getPlayerBuffStorage().addBuffsToStorage(mc.getId(), mc.getAllBuffs()); mc.setAwayFromWorld(true); mc.cancelAllBuffs(true); @@ -64,7 +65,6 @@ public class EnterCashShopHandler extends AbstractMaplePacketHandler { mc.cancelDiseaseExpireTask(); mc.cancelSkillCooldownTask(); mc.cancelExpirationTask(); - mc.stopChairTask(); c.announce(MaplePacketCreator.openCashShop(c, false)); c.announce(MaplePacketCreator.showCashInventory(c)); diff --git a/src/net/server/channel/handlers/EnterMTSHandler.java b/src/net/server/channel/handlers/EnterMTSHandler.java index 188860ddf6..e5fbad205b 100644 --- a/src/net/server/channel/handlers/EnterMTSHandler.java +++ b/src/net/server/channel/handlers/EnterMTSHandler.java @@ -66,6 +66,7 @@ public final class EnterMTSHandler extends AbstractMaplePacketHandler { return; } + chr.unregisterChairBuff(); Server.getInstance().getPlayerBuffStorage().addBuffsToStorage(chr.getId(), chr.getAllBuffs()); chr.setAwayFromWorld(true); chr.cancelAllBuffs(true); @@ -73,7 +74,6 @@ public final class EnterMTSHandler extends AbstractMaplePacketHandler { chr.cancelDiseaseExpireTask(); chr.cancelSkillCooldownTask(); chr.cancelExpirationTask(); - chr.stopChairTask(); chr.saveToDB(); chr.getMap().removePlayer(c.getPlayer()); diff --git a/src/server/gachapon/Ellinia.java b/src/server/gachapon/Ellinia.java index 4e300b1aa2..c458bc54b1 100644 --- a/src/server/gachapon/Ellinia.java +++ b/src/server/gachapon/Ellinia.java @@ -84,7 +84,7 @@ public class Ellinia extends GachaponItems { 1060052, 1072029, 1472002, 1082031, 1060023, //pirateEquips = { 1002625, 1002616, 1482005, 1052098, 1482003, - 1482001, 1492004, 1002622, 1492005, 1082195, + 1482001, 1492004, 1002622, 1492005, 1082195 }; } @@ -93,7 +93,7 @@ public class Ellinia extends GachaponItems { return new int [] { 1372035, 1372036, 1372037, 1372038, 1372039, 1372040, 1372041, 1372042, 1382045, 1382046, 1382047, 1382048, 1382049, 1382050, 1382051, - 1382052, }; + 1382052 }; } @Override diff --git a/src/server/maps/MapleMap.java b/src/server/maps/MapleMap.java index 459ae53ba2..4c404d2389 100644 --- a/src/server/maps/MapleMap.java +++ b/src/server/maps/MapleMap.java @@ -2137,6 +2137,8 @@ public class MapleMap { */ public void removePlayer(MapleCharacter chr) { + chr.unregisterChairBuff(); + chrWLock.lock(); try { removePartyMemberInternal(chr);