From e72b2f470b29c05172af2db57f3c7f991df55bcf Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Mon, 20 Jul 2020 08:36:46 +0000 Subject: [PATCH] Properly restore finished skill stack effects for previous commit. --- .../gameserver/model/EffectList.java | 29 +++++++++++++------ .../gameserver/model/EffectList.java | 29 +++++++++++++------ 2 files changed, 40 insertions(+), 18 deletions(-) diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/EffectList.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/EffectList.java index 9fcc5d0086..87c7318d82 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/EffectList.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/EffectList.java @@ -1434,22 +1434,33 @@ public class EffectList // Skills are only replaced if the incoming buff has greater or equal abnormal level. if ((stackedInfo != null) && (skill.getAbnormalLvl() >= stackedInfo.getSkill().getAbnormalLvl())) { - stopSkillEffects(false, skill.getAbnormalType()); - // If it is an herb, set as not in use the lesser buff. // Effect will be present in the effect list. // Effects stats are removed and onActionTime() is not called. // But finish task continues to run, and ticks as well. - if (stackedInfo.getSkill().isAbnormalInstant()) + if (skill.isAbnormalInstant()) { - stackedInfo = _stackedEffects.get(skill.getAbnormalType()); + if (stackedInfo.getSkill().isAbnormalInstant()) + { + stopSkillEffects(false, skill.getAbnormalType()); + stackedInfo = _stackedEffects.get(skill.getAbnormalType()); + } + + if (stackedInfo != null) + { + stackedInfo.setInUse(false); + // Remove stats + stackedInfo.removeStats(); + _hiddenBuffs.incrementAndGet(); + } } - - if (stackedInfo != null) + else // Remove buff that will stack with the abnormal type. { - stackedInfo.setInUse(false); - stackedInfo.removeStats(); - _hiddenBuffs.incrementAndGet(); + if (stackedInfo.getSkill().isAbnormalInstant()) + { + stopSkillEffects(false, skill.getAbnormalType()); + } + stopSkillEffects(false, skill.getAbnormalType()); } } else // If the new buff is a lesser buff, then don't add it. diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/EffectList.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/EffectList.java index b548dcb75f..02990ffa08 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/EffectList.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/EffectList.java @@ -1435,22 +1435,33 @@ public class EffectList // Skills are only replaced if the incoming buff has greater or equal abnormal level. if ((stackedInfo != null) && (skill.getAbnormalLvl() >= stackedInfo.getSkill().getAbnormalLvl())) { - stopSkillEffects(false, skill.getAbnormalType()); - // If it is an herb, set as not in use the lesser buff. // Effect will be present in the effect list. // Effects stats are removed and onActionTime() is not called. // But finish task continues to run, and ticks as well. - if (stackedInfo.getSkill().isAbnormalInstant()) + if (skill.isAbnormalInstant()) { - stackedInfo = _stackedEffects.get(skill.getAbnormalType()); + if (stackedInfo.getSkill().isAbnormalInstant()) + { + stopSkillEffects(false, skill.getAbnormalType()); + stackedInfo = _stackedEffects.get(skill.getAbnormalType()); + } + + if (stackedInfo != null) + { + stackedInfo.setInUse(false); + // Remove stats + stackedInfo.removeStats(); + _hiddenBuffs.incrementAndGet(); + } } - - if (stackedInfo != null) + else // Remove buff that will stack with the abnormal type. { - stackedInfo.setInUse(false); - stackedInfo.removeStats(); - _hiddenBuffs.incrementAndGet(); + if (stackedInfo.getSkill().isAbnormalInstant()) + { + stopSkillEffects(false, skill.getAbnormalType()); + } + stopSkillEffects(false, skill.getAbnormalType()); } } else // If the new buff is a lesser buff, then don't add it.