From aaccf247b5ee645d73bf5141d5a8e17f4cae8922 Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Fri, 8 Apr 2022 22:02:08 +0000 Subject: [PATCH] AutoUseTaskManager should take in consideration abnormal type. Contributed by Index. --- .../l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java | 5 ++++- .../l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java | 5 ++++- .../l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java | 5 ++++- .../l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java | 5 ++++- .../l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java | 5 ++++- .../l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java | 5 ++++- .../l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java | 5 ++++- .../l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java | 5 ++++- .../l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java | 5 ++++- .../l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java | 5 ++++- 10 files changed, 40 insertions(+), 10 deletions(-) diff --git a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java index 4ce649b1e2..d2955c203b 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java +++ b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java @@ -379,7 +379,10 @@ public class AutoUseTaskManager implements Runnable } final BuffInfo buffInfo = playableTarget.getEffectList().getBuffInfoBySkillId(skill.getId()); - return (buffInfo == null) || (buffInfo.getTime() <= REUSE_MARGIN_TIME) || (buffInfo.getSkill().getLevel() < skill.getLevel()); + final BuffInfo abnormalBuffInfo = playableTarget.getEffectList().getFirstBuffInfoByAbnormalType(skill.getAbnormalType()); + return ((buffInfo == null) && (abnormalBuffInfo == null)) // + || ((buffInfo != null) && (abnormalBuffInfo.getSkill().getId() == buffInfo.getSkill().getId()) && ((buffInfo.getTime() <= REUSE_MARGIN_TIME) || (buffInfo.getSkill().getLevel() < skill.getLevel()))) // + || (abnormalBuffInfo.getSkill().getAbnormalLevel() < skill.getAbnormalLevel()); } private boolean canUseMagic(Player player, WorldObject target, Skill skill) diff --git a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java index 4ce649b1e2..d2955c203b 100644 --- a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java +++ b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java @@ -379,7 +379,10 @@ public class AutoUseTaskManager implements Runnable } final BuffInfo buffInfo = playableTarget.getEffectList().getBuffInfoBySkillId(skill.getId()); - return (buffInfo == null) || (buffInfo.getTime() <= REUSE_MARGIN_TIME) || (buffInfo.getSkill().getLevel() < skill.getLevel()); + final BuffInfo abnormalBuffInfo = playableTarget.getEffectList().getFirstBuffInfoByAbnormalType(skill.getAbnormalType()); + return ((buffInfo == null) && (abnormalBuffInfo == null)) // + || ((buffInfo != null) && (abnormalBuffInfo.getSkill().getId() == buffInfo.getSkill().getId()) && ((buffInfo.getTime() <= REUSE_MARGIN_TIME) || (buffInfo.getSkill().getLevel() < skill.getLevel()))) // + || (abnormalBuffInfo.getSkill().getAbnormalLevel() < skill.getAbnormalLevel()); } private boolean canUseMagic(Player player, WorldObject target, Skill skill) diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java index 4ce649b1e2..d2955c203b 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java @@ -379,7 +379,10 @@ public class AutoUseTaskManager implements Runnable } final BuffInfo buffInfo = playableTarget.getEffectList().getBuffInfoBySkillId(skill.getId()); - return (buffInfo == null) || (buffInfo.getTime() <= REUSE_MARGIN_TIME) || (buffInfo.getSkill().getLevel() < skill.getLevel()); + final BuffInfo abnormalBuffInfo = playableTarget.getEffectList().getFirstBuffInfoByAbnormalType(skill.getAbnormalType()); + return ((buffInfo == null) && (abnormalBuffInfo == null)) // + || ((buffInfo != null) && (abnormalBuffInfo.getSkill().getId() == buffInfo.getSkill().getId()) && ((buffInfo.getTime() <= REUSE_MARGIN_TIME) || (buffInfo.getSkill().getLevel() < skill.getLevel()))) // + || (abnormalBuffInfo.getSkill().getAbnormalLevel() < skill.getAbnormalLevel()); } private boolean canUseMagic(Player player, WorldObject target, Skill skill) diff --git a/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java b/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java index 4ce649b1e2..d2955c203b 100644 --- a/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java +++ b/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java @@ -379,7 +379,10 @@ public class AutoUseTaskManager implements Runnable } final BuffInfo buffInfo = playableTarget.getEffectList().getBuffInfoBySkillId(skill.getId()); - return (buffInfo == null) || (buffInfo.getTime() <= REUSE_MARGIN_TIME) || (buffInfo.getSkill().getLevel() < skill.getLevel()); + final BuffInfo abnormalBuffInfo = playableTarget.getEffectList().getFirstBuffInfoByAbnormalType(skill.getAbnormalType()); + return ((buffInfo == null) && (abnormalBuffInfo == null)) // + || ((buffInfo != null) && (abnormalBuffInfo.getSkill().getId() == buffInfo.getSkill().getId()) && ((buffInfo.getTime() <= REUSE_MARGIN_TIME) || (buffInfo.getSkill().getLevel() < skill.getLevel()))) // + || (abnormalBuffInfo.getSkill().getAbnormalLevel() < skill.getAbnormalLevel()); } private boolean canUseMagic(Player player, WorldObject target, Skill skill) diff --git a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java index 4ce649b1e2..d2955c203b 100644 --- a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java +++ b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java @@ -379,7 +379,10 @@ public class AutoUseTaskManager implements Runnable } final BuffInfo buffInfo = playableTarget.getEffectList().getBuffInfoBySkillId(skill.getId()); - return (buffInfo == null) || (buffInfo.getTime() <= REUSE_MARGIN_TIME) || (buffInfo.getSkill().getLevel() < skill.getLevel()); + final BuffInfo abnormalBuffInfo = playableTarget.getEffectList().getFirstBuffInfoByAbnormalType(skill.getAbnormalType()); + return ((buffInfo == null) && (abnormalBuffInfo == null)) // + || ((buffInfo != null) && (abnormalBuffInfo.getSkill().getId() == buffInfo.getSkill().getId()) && ((buffInfo.getTime() <= REUSE_MARGIN_TIME) || (buffInfo.getSkill().getLevel() < skill.getLevel()))) // + || (abnormalBuffInfo.getSkill().getAbnormalLevel() < skill.getAbnormalLevel()); } private boolean canUseMagic(Player player, WorldObject target, Skill skill) diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java index 4ce649b1e2..d2955c203b 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java @@ -379,7 +379,10 @@ public class AutoUseTaskManager implements Runnable } final BuffInfo buffInfo = playableTarget.getEffectList().getBuffInfoBySkillId(skill.getId()); - return (buffInfo == null) || (buffInfo.getTime() <= REUSE_MARGIN_TIME) || (buffInfo.getSkill().getLevel() < skill.getLevel()); + final BuffInfo abnormalBuffInfo = playableTarget.getEffectList().getFirstBuffInfoByAbnormalType(skill.getAbnormalType()); + return ((buffInfo == null) && (abnormalBuffInfo == null)) // + || ((buffInfo != null) && (abnormalBuffInfo.getSkill().getId() == buffInfo.getSkill().getId()) && ((buffInfo.getTime() <= REUSE_MARGIN_TIME) || (buffInfo.getSkill().getLevel() < skill.getLevel()))) // + || (abnormalBuffInfo.getSkill().getAbnormalLevel() < skill.getAbnormalLevel()); } private boolean canUseMagic(Player player, WorldObject target, Skill skill) diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java index 4ce649b1e2..d2955c203b 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java @@ -379,7 +379,10 @@ public class AutoUseTaskManager implements Runnable } final BuffInfo buffInfo = playableTarget.getEffectList().getBuffInfoBySkillId(skill.getId()); - return (buffInfo == null) || (buffInfo.getTime() <= REUSE_MARGIN_TIME) || (buffInfo.getSkill().getLevel() < skill.getLevel()); + final BuffInfo abnormalBuffInfo = playableTarget.getEffectList().getFirstBuffInfoByAbnormalType(skill.getAbnormalType()); + return ((buffInfo == null) && (abnormalBuffInfo == null)) // + || ((buffInfo != null) && (abnormalBuffInfo.getSkill().getId() == buffInfo.getSkill().getId()) && ((buffInfo.getTime() <= REUSE_MARGIN_TIME) || (buffInfo.getSkill().getLevel() < skill.getLevel()))) // + || (abnormalBuffInfo.getSkill().getAbnormalLevel() < skill.getAbnormalLevel()); } private boolean canUseMagic(Player player, WorldObject target, Skill skill) diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java index 4ce649b1e2..d2955c203b 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java @@ -379,7 +379,10 @@ public class AutoUseTaskManager implements Runnable } final BuffInfo buffInfo = playableTarget.getEffectList().getBuffInfoBySkillId(skill.getId()); - return (buffInfo == null) || (buffInfo.getTime() <= REUSE_MARGIN_TIME) || (buffInfo.getSkill().getLevel() < skill.getLevel()); + final BuffInfo abnormalBuffInfo = playableTarget.getEffectList().getFirstBuffInfoByAbnormalType(skill.getAbnormalType()); + return ((buffInfo == null) && (abnormalBuffInfo == null)) // + || ((buffInfo != null) && (abnormalBuffInfo.getSkill().getId() == buffInfo.getSkill().getId()) && ((buffInfo.getTime() <= REUSE_MARGIN_TIME) || (buffInfo.getSkill().getLevel() < skill.getLevel()))) // + || (abnormalBuffInfo.getSkill().getAbnormalLevel() < skill.getAbnormalLevel()); } private boolean canUseMagic(Player player, WorldObject target, Skill skill) diff --git a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java index 4ce649b1e2..d2955c203b 100644 --- a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java +++ b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java @@ -379,7 +379,10 @@ public class AutoUseTaskManager implements Runnable } final BuffInfo buffInfo = playableTarget.getEffectList().getBuffInfoBySkillId(skill.getId()); - return (buffInfo == null) || (buffInfo.getTime() <= REUSE_MARGIN_TIME) || (buffInfo.getSkill().getLevel() < skill.getLevel()); + final BuffInfo abnormalBuffInfo = playableTarget.getEffectList().getFirstBuffInfoByAbnormalType(skill.getAbnormalType()); + return ((buffInfo == null) && (abnormalBuffInfo == null)) // + || ((buffInfo != null) && (abnormalBuffInfo.getSkill().getId() == buffInfo.getSkill().getId()) && ((buffInfo.getTime() <= REUSE_MARGIN_TIME) || (buffInfo.getSkill().getLevel() < skill.getLevel()))) // + || (abnormalBuffInfo.getSkill().getAbnormalLevel() < skill.getAbnormalLevel()); } private boolean canUseMagic(Player player, WorldObject target, Skill skill) diff --git a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java index 4ce649b1e2..d2955c203b 100644 --- a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java +++ b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java @@ -379,7 +379,10 @@ public class AutoUseTaskManager implements Runnable } final BuffInfo buffInfo = playableTarget.getEffectList().getBuffInfoBySkillId(skill.getId()); - return (buffInfo == null) || (buffInfo.getTime() <= REUSE_MARGIN_TIME) || (buffInfo.getSkill().getLevel() < skill.getLevel()); + final BuffInfo abnormalBuffInfo = playableTarget.getEffectList().getFirstBuffInfoByAbnormalType(skill.getAbnormalType()); + return ((buffInfo == null) && (abnormalBuffInfo == null)) // + || ((buffInfo != null) && (abnormalBuffInfo.getSkill().getId() == buffInfo.getSkill().getId()) && ((buffInfo.getTime() <= REUSE_MARGIN_TIME) || (buffInfo.getSkill().getLevel() < skill.getLevel()))) // + || (abnormalBuffInfo.getSkill().getAbnormalLevel() < skill.getAbnormalLevel()); } private boolean canUseMagic(Player player, WorldObject target, Skill skill)