From 4a5a7dbc0df6e4085a9c6b8ee9818bbee4fa8f50 Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Mon, 14 Dec 2020 01:18:21 +0000 Subject: [PATCH] Changed AutoUseTaskManager peace zone logic to enable skill casting in starting areas. --- .../taskmanager/AutoUseTaskManager.java | 35 +++++++++++++------ .../taskmanager/AutoUseTaskManager.java | 35 +++++++++++++------ .../taskmanager/AutoUseTaskManager.java | 35 +++++++++++++------ .../taskmanager/AutoUseTaskManager.java | 35 +++++++++++++------ 4 files changed, 100 insertions(+), 40 deletions(-) diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java index 58c7c58ab0..7ad4deedad 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java @@ -69,12 +69,14 @@ public class AutoUseTaskManager continue; } - if (player.hasBlockActions() || player.isControlBlocked() || player.isAlikeDead() || player.isInsideZone(ZoneId.PEACE)) + if (player.hasBlockActions() || player.isControlBlocked() || player.isAlikeDead()) { continue; } - if (Config.ENABLE_AUTO_ITEM) + final boolean isInPeaceZone = player.isInsideZone(ZoneId.PEACE); + + if (Config.ENABLE_AUTO_ITEM && !isInPeaceZone) { ITEMS: for (Integer itemId : player.getAutoUseSettings().getAutoSupplyItems()) { @@ -107,7 +109,7 @@ public class AutoUseTaskManager } } - if (Config.ENABLE_AUTO_POTION && (player.getCurrentHpPercent() <= player.getAutoPlaySettings().getAutoPotionPercent())) + if (Config.ENABLE_AUTO_POTION && !isInPeaceZone && (player.getCurrentHpPercent() <= player.getAutoPlaySettings().getAutoPotionPercent())) { POTIONS: for (Integer itemId : player.getAutoUseSettings().getAutoPotionItems()) { @@ -132,20 +134,33 @@ public class AutoUseTaskManager if (Config.ENABLE_AUTO_BUFF && !player.isMoving()) { - BUFFS: for (Integer skillId : player.getAutoUseSettings().getAutoSkills()) + SKILLS: for (Integer skillId : player.getAutoUseSettings().getAutoSkills()) { final Skill skill = player.getKnownSkill(skillId.intValue()); if (skill == null) { player.getAutoUseSettings().getAutoSkills().remove(skillId); - continue BUFFS; // TODO: break? + continue SKILLS; // TODO: break? } - // Check bad skill target. final WorldObject target = player.getTarget(); - if ((skill.isBad() && (target == null)) || (target == player)) + // Casting on self stops movement. + if (target == player) { - continue BUFFS; + continue SKILLS; + } + // Check bad skill target. + if (skill.isBad()) + { + if (target == null) + { + continue SKILLS; + } + } + // Fixes start area issue. + else if (isInPeaceZone) + { + continue SKILLS; } if (!player.isAffectedBySkill(skillId.intValue()) && !player.hasSkillReuse(skill.getReuseHashCode()) && skill.checkCondition(player, player, false)) @@ -155,7 +170,7 @@ public class AutoUseTaskManager { if (!player.hasServitors()) // Is this check truly needed? { - continue BUFFS; + continue SKILLS; } int occurrences = 0; for (Summon servitor : player.getServitors().values()) @@ -167,7 +182,7 @@ public class AutoUseTaskManager } if (occurrences == player.getServitors().size()) { - continue BUFFS; + continue SKILLS; } } diff --git a/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java b/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java index 58c7c58ab0..7ad4deedad 100644 --- a/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java +++ b/L2J_Mobius_8.0_Homunculus/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java @@ -69,12 +69,14 @@ public class AutoUseTaskManager continue; } - if (player.hasBlockActions() || player.isControlBlocked() || player.isAlikeDead() || player.isInsideZone(ZoneId.PEACE)) + if (player.hasBlockActions() || player.isControlBlocked() || player.isAlikeDead()) { continue; } - if (Config.ENABLE_AUTO_ITEM) + final boolean isInPeaceZone = player.isInsideZone(ZoneId.PEACE); + + if (Config.ENABLE_AUTO_ITEM && !isInPeaceZone) { ITEMS: for (Integer itemId : player.getAutoUseSettings().getAutoSupplyItems()) { @@ -107,7 +109,7 @@ public class AutoUseTaskManager } } - if (Config.ENABLE_AUTO_POTION && (player.getCurrentHpPercent() <= player.getAutoPlaySettings().getAutoPotionPercent())) + if (Config.ENABLE_AUTO_POTION && !isInPeaceZone && (player.getCurrentHpPercent() <= player.getAutoPlaySettings().getAutoPotionPercent())) { POTIONS: for (Integer itemId : player.getAutoUseSettings().getAutoPotionItems()) { @@ -132,20 +134,33 @@ public class AutoUseTaskManager if (Config.ENABLE_AUTO_BUFF && !player.isMoving()) { - BUFFS: for (Integer skillId : player.getAutoUseSettings().getAutoSkills()) + SKILLS: for (Integer skillId : player.getAutoUseSettings().getAutoSkills()) { final Skill skill = player.getKnownSkill(skillId.intValue()); if (skill == null) { player.getAutoUseSettings().getAutoSkills().remove(skillId); - continue BUFFS; // TODO: break? + continue SKILLS; // TODO: break? } - // Check bad skill target. final WorldObject target = player.getTarget(); - if ((skill.isBad() && (target == null)) || (target == player)) + // Casting on self stops movement. + if (target == player) { - continue BUFFS; + continue SKILLS; + } + // Check bad skill target. + if (skill.isBad()) + { + if (target == null) + { + continue SKILLS; + } + } + // Fixes start area issue. + else if (isInPeaceZone) + { + continue SKILLS; } if (!player.isAffectedBySkill(skillId.intValue()) && !player.hasSkillReuse(skill.getReuseHashCode()) && skill.checkCondition(player, player, false)) @@ -155,7 +170,7 @@ public class AutoUseTaskManager { if (!player.hasServitors()) // Is this check truly needed? { - continue BUFFS; + continue SKILLS; } int occurrences = 0; for (Summon servitor : player.getServitors().values()) @@ -167,7 +182,7 @@ public class AutoUseTaskManager } if (occurrences == player.getServitors().size()) { - continue BUFFS; + continue SKILLS; } } 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 58c7c58ab0..7ad4deedad 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 @@ -69,12 +69,14 @@ public class AutoUseTaskManager continue; } - if (player.hasBlockActions() || player.isControlBlocked() || player.isAlikeDead() || player.isInsideZone(ZoneId.PEACE)) + if (player.hasBlockActions() || player.isControlBlocked() || player.isAlikeDead()) { continue; } - if (Config.ENABLE_AUTO_ITEM) + final boolean isInPeaceZone = player.isInsideZone(ZoneId.PEACE); + + if (Config.ENABLE_AUTO_ITEM && !isInPeaceZone) { ITEMS: for (Integer itemId : player.getAutoUseSettings().getAutoSupplyItems()) { @@ -107,7 +109,7 @@ public class AutoUseTaskManager } } - if (Config.ENABLE_AUTO_POTION && (player.getCurrentHpPercent() <= player.getAutoPlaySettings().getAutoPotionPercent())) + if (Config.ENABLE_AUTO_POTION && !isInPeaceZone && (player.getCurrentHpPercent() <= player.getAutoPlaySettings().getAutoPotionPercent())) { POTIONS: for (Integer itemId : player.getAutoUseSettings().getAutoPotionItems()) { @@ -132,20 +134,33 @@ public class AutoUseTaskManager if (Config.ENABLE_AUTO_BUFF && !player.isMoving()) { - BUFFS: for (Integer skillId : player.getAutoUseSettings().getAutoSkills()) + SKILLS: for (Integer skillId : player.getAutoUseSettings().getAutoSkills()) { final Skill skill = player.getKnownSkill(skillId.intValue()); if (skill == null) { player.getAutoUseSettings().getAutoSkills().remove(skillId); - continue BUFFS; // TODO: break? + continue SKILLS; // TODO: break? } - // Check bad skill target. final WorldObject target = player.getTarget(); - if ((skill.isBad() && (target == null)) || (target == player)) + // Casting on self stops movement. + if (target == player) { - continue BUFFS; + continue SKILLS; + } + // Check bad skill target. + if (skill.isBad()) + { + if (target == null) + { + continue SKILLS; + } + } + // Fixes start area issue. + else if (isInPeaceZone) + { + continue SKILLS; } if (!player.isAffectedBySkill(skillId.intValue()) && !player.hasSkillReuse(skill.getReuseHashCode()) && skill.checkCondition(player, player, false)) @@ -155,7 +170,7 @@ public class AutoUseTaskManager { if (!player.hasServitors()) // Is this check truly needed? { - continue BUFFS; + continue SKILLS; } int occurrences = 0; for (Summon servitor : player.getServitors().values()) @@ -167,7 +182,7 @@ public class AutoUseTaskManager } if (occurrences == player.getServitors().size()) { - continue BUFFS; + continue SKILLS; } } diff --git a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java index 58c7c58ab0..7ad4deedad 100644 --- a/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java +++ b/L2J_Mobius_Essence_4.0_DwellingOfSpirits/java/org/l2jmobius/gameserver/taskmanager/AutoUseTaskManager.java @@ -69,12 +69,14 @@ public class AutoUseTaskManager continue; } - if (player.hasBlockActions() || player.isControlBlocked() || player.isAlikeDead() || player.isInsideZone(ZoneId.PEACE)) + if (player.hasBlockActions() || player.isControlBlocked() || player.isAlikeDead()) { continue; } - if (Config.ENABLE_AUTO_ITEM) + final boolean isInPeaceZone = player.isInsideZone(ZoneId.PEACE); + + if (Config.ENABLE_AUTO_ITEM && !isInPeaceZone) { ITEMS: for (Integer itemId : player.getAutoUseSettings().getAutoSupplyItems()) { @@ -107,7 +109,7 @@ public class AutoUseTaskManager } } - if (Config.ENABLE_AUTO_POTION && (player.getCurrentHpPercent() <= player.getAutoPlaySettings().getAutoPotionPercent())) + if (Config.ENABLE_AUTO_POTION && !isInPeaceZone && (player.getCurrentHpPercent() <= player.getAutoPlaySettings().getAutoPotionPercent())) { POTIONS: for (Integer itemId : player.getAutoUseSettings().getAutoPotionItems()) { @@ -132,20 +134,33 @@ public class AutoUseTaskManager if (Config.ENABLE_AUTO_BUFF && !player.isMoving()) { - BUFFS: for (Integer skillId : player.getAutoUseSettings().getAutoSkills()) + SKILLS: for (Integer skillId : player.getAutoUseSettings().getAutoSkills()) { final Skill skill = player.getKnownSkill(skillId.intValue()); if (skill == null) { player.getAutoUseSettings().getAutoSkills().remove(skillId); - continue BUFFS; // TODO: break? + continue SKILLS; // TODO: break? } - // Check bad skill target. final WorldObject target = player.getTarget(); - if ((skill.isBad() && (target == null)) || (target == player)) + // Casting on self stops movement. + if (target == player) { - continue BUFFS; + continue SKILLS; + } + // Check bad skill target. + if (skill.isBad()) + { + if (target == null) + { + continue SKILLS; + } + } + // Fixes start area issue. + else if (isInPeaceZone) + { + continue SKILLS; } if (!player.isAffectedBySkill(skillId.intValue()) && !player.hasSkillReuse(skill.getReuseHashCode()) && skill.checkCondition(player, player, false)) @@ -155,7 +170,7 @@ public class AutoUseTaskManager { if (!player.hasServitors()) // Is this check truly needed? { - continue BUFFS; + continue SKILLS; } int occurrences = 0; for (Summon servitor : player.getServitors().values()) @@ -167,7 +182,7 @@ public class AutoUseTaskManager } if (occurrences == player.getServitors().size()) { - continue BUFFS; + continue SKILLS; } }