From 525240bd2c0a1b7ee36e019523257c6bc0b505ad Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Fri, 9 Oct 2020 14:50:54 +0000 Subject: [PATCH] Check non bad skill target. --- .../taskmanager/AutoUseTaskManager.java | 21 +++++++++++++++++-- .../taskmanager/AutoUseTaskManager.java | 21 +++++++++++++++++-- 2 files changed, 38 insertions(+), 4 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 ab0e6a6529..ed402f6588 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 @@ -23,6 +23,7 @@ import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; import org.l2jmobius.gameserver.handler.IItemHandler; import org.l2jmobius.gameserver.handler.ItemHandler; +import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.holders.ItemSkillHolder; @@ -129,10 +130,14 @@ public class AutoUseTaskManager player.getAutoUseSettings().getAutoSkills().remove(skillId); continue BUFFS; // TODO: break? } - if ((skill.isBad() && (player.getTarget() == null)) || (player.getTarget() == player)) + + // Check bad skill target. + final WorldObject target = player.getTarget(); + if ((skill.isBad() && (target == null)) || (target == player)) { continue BUFFS; } + if (!player.isAffectedBySkill(skillId.intValue()) && !player.hasSkillReuse(skill.getReuseHashCode()) && skill.checkCondition(player, player, false)) { // Summon check. @@ -155,7 +160,19 @@ public class AutoUseTaskManager continue BUFFS; } } - player.doCast(skill); + + // Check non bad skill target. + if (!skill.isBad() && ((target == null) || !target.isPlayable())) + { + final WorldObject savedTarget = target; + player.setTarget(player); + player.doCast(skill); + player.setTarget(savedTarget); + } + else + { + player.doCast(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 ab0e6a6529..ed402f6588 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 @@ -23,6 +23,7 @@ import org.l2jmobius.Config; import org.l2jmobius.commons.concurrent.ThreadPool; import org.l2jmobius.gameserver.handler.IItemHandler; import org.l2jmobius.gameserver.handler.ItemHandler; +import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.holders.ItemSkillHolder; @@ -129,10 +130,14 @@ public class AutoUseTaskManager player.getAutoUseSettings().getAutoSkills().remove(skillId); continue BUFFS; // TODO: break? } - if ((skill.isBad() && (player.getTarget() == null)) || (player.getTarget() == player)) + + // Check bad skill target. + final WorldObject target = player.getTarget(); + if ((skill.isBad() && (target == null)) || (target == player)) { continue BUFFS; } + if (!player.isAffectedBySkill(skillId.intValue()) && !player.hasSkillReuse(skill.getReuseHashCode()) && skill.checkCondition(player, player, false)) { // Summon check. @@ -155,7 +160,19 @@ public class AutoUseTaskManager continue BUFFS; } } - player.doCast(skill); + + // Check non bad skill target. + if (!skill.isBad() && ((target == null) || !target.isPlayable())) + { + final WorldObject savedTarget = target; + player.setTarget(player); + player.doCast(skill); + player.setTarget(savedTarget); + } + else + { + player.doCast(skill); + } } } }