Map chair patch + other minor fixes

Patched map chair skill not disposing heal task properly in case of player changing maps while resting.
This commit is contained in:
ronancpl
2017-10-22 02:04:36 -02:00
parent e993c8c7b0
commit d91c893400
31 changed files with 41 additions and 26 deletions

View File

@@ -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);

View File

@@ -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);