From a7fdaaf2fd323b03f749aca4baa5876fc13175af Mon Sep 17 00:00:00 2001 From: MobiusDev <8391001+MobiusDevelopment@users.noreply.github.com> Date: Sun, 12 Nov 2017 02:33:38 +0000 Subject: [PATCH] Improved L2DefenderInstance beneficial magic targeting. --- .../actor/instance/L2DefenderInstance.java | 28 ++++++++++++------- .../actor/instance/L2DefenderInstance.java | 28 ++++++++++++------- .../actor/instance/L2DefenderInstance.java | 28 ++++++++++++------- .../actor/instance/L2DefenderInstance.java | 28 ++++++++++++------- .../actor/instance/L2DefenderInstance.java | 28 ++++++++++++------- 5 files changed, 90 insertions(+), 50 deletions(-) diff --git a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/model/actor/instance/L2DefenderInstance.java b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/model/actor/instance/L2DefenderInstance.java index 955f062388..e0f9092b06 100644 --- a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/model/actor/instance/L2DefenderInstance.java +++ b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/model/actor/instance/L2DefenderInstance.java @@ -182,25 +182,33 @@ public class L2DefenderInstance extends L2Attackable if (!skill.isBad()) { L2Character target = this; + double lowestHpValue = Double.MAX_VALUE; for (L2Character nearby : L2World.getInstance().getVisibleObjects(this, L2Character.class, skill.getCastRange())) { - if (nearby == this) + if ((nearby == null) || nearby.isDead()) { continue; } if (nearby instanceof L2DefenderInstance) { - target = nearby; - } - if (nearby.isPlayer()) - { - final L2PcInstance player = (L2PcInstance) nearby; - final Castle castle = getCastle(); - final Fort fortress = getFort(); - final int activeSiegeId = (fortress != null ? fortress.getResidenceId() : (castle != null ? castle.getResidenceId() : 0)); - if ((player.getSiegeState() == 2) && !player.isRegisteredOnThisSiegeField(activeSiegeId)) + final double targetHp = nearby.getCurrentHp(); + if (lowestHpValue > targetHp) { target = nearby; + lowestHpValue = targetHp; + } + } + else if (nearby.isPlayer()) + { + final L2PcInstance player = (L2PcInstance) nearby; + if ((player.getSiegeState() == 2) && !player.isRegisteredOnThisSiegeField(getScriptValue())) + { + final double targetHp = nearby.getCurrentHp(); + if (lowestHpValue > targetHp) + { + target = nearby; + lowestHpValue = targetHp; + } } } } diff --git a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/model/actor/instance/L2DefenderInstance.java b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/model/actor/instance/L2DefenderInstance.java index 955f062388..e0f9092b06 100644 --- a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/model/actor/instance/L2DefenderInstance.java +++ b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/model/actor/instance/L2DefenderInstance.java @@ -182,25 +182,33 @@ public class L2DefenderInstance extends L2Attackable if (!skill.isBad()) { L2Character target = this; + double lowestHpValue = Double.MAX_VALUE; for (L2Character nearby : L2World.getInstance().getVisibleObjects(this, L2Character.class, skill.getCastRange())) { - if (nearby == this) + if ((nearby == null) || nearby.isDead()) { continue; } if (nearby instanceof L2DefenderInstance) { - target = nearby; - } - if (nearby.isPlayer()) - { - final L2PcInstance player = (L2PcInstance) nearby; - final Castle castle = getCastle(); - final Fort fortress = getFort(); - final int activeSiegeId = (fortress != null ? fortress.getResidenceId() : (castle != null ? castle.getResidenceId() : 0)); - if ((player.getSiegeState() == 2) && !player.isRegisteredOnThisSiegeField(activeSiegeId)) + final double targetHp = nearby.getCurrentHp(); + if (lowestHpValue > targetHp) { target = nearby; + lowestHpValue = targetHp; + } + } + else if (nearby.isPlayer()) + { + final L2PcInstance player = (L2PcInstance) nearby; + if ((player.getSiegeState() == 2) && !player.isRegisteredOnThisSiegeField(getScriptValue())) + { + final double targetHp = nearby.getCurrentHp(); + if (lowestHpValue > targetHp) + { + target = nearby; + lowestHpValue = targetHp; + } } } } diff --git a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/model/actor/instance/L2DefenderInstance.java b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/model/actor/instance/L2DefenderInstance.java index 955f062388..e0f9092b06 100644 --- a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/model/actor/instance/L2DefenderInstance.java +++ b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/model/actor/instance/L2DefenderInstance.java @@ -182,25 +182,33 @@ public class L2DefenderInstance extends L2Attackable if (!skill.isBad()) { L2Character target = this; + double lowestHpValue = Double.MAX_VALUE; for (L2Character nearby : L2World.getInstance().getVisibleObjects(this, L2Character.class, skill.getCastRange())) { - if (nearby == this) + if ((nearby == null) || nearby.isDead()) { continue; } if (nearby instanceof L2DefenderInstance) { - target = nearby; - } - if (nearby.isPlayer()) - { - final L2PcInstance player = (L2PcInstance) nearby; - final Castle castle = getCastle(); - final Fort fortress = getFort(); - final int activeSiegeId = (fortress != null ? fortress.getResidenceId() : (castle != null ? castle.getResidenceId() : 0)); - if ((player.getSiegeState() == 2) && !player.isRegisteredOnThisSiegeField(activeSiegeId)) + final double targetHp = nearby.getCurrentHp(); + if (lowestHpValue > targetHp) { target = nearby; + lowestHpValue = targetHp; + } + } + else if (nearby.isPlayer()) + { + final L2PcInstance player = (L2PcInstance) nearby; + if ((player.getSiegeState() == 2) && !player.isRegisteredOnThisSiegeField(getScriptValue())) + { + final double targetHp = nearby.getCurrentHp(); + if (lowestHpValue > targetHp) + { + target = nearby; + lowestHpValue = targetHp; + } } } } diff --git a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/model/actor/instance/L2DefenderInstance.java b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/model/actor/instance/L2DefenderInstance.java index 955f062388..e0f9092b06 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/model/actor/instance/L2DefenderInstance.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/model/actor/instance/L2DefenderInstance.java @@ -182,25 +182,33 @@ public class L2DefenderInstance extends L2Attackable if (!skill.isBad()) { L2Character target = this; + double lowestHpValue = Double.MAX_VALUE; for (L2Character nearby : L2World.getInstance().getVisibleObjects(this, L2Character.class, skill.getCastRange())) { - if (nearby == this) + if ((nearby == null) || nearby.isDead()) { continue; } if (nearby instanceof L2DefenderInstance) { - target = nearby; - } - if (nearby.isPlayer()) - { - final L2PcInstance player = (L2PcInstance) nearby; - final Castle castle = getCastle(); - final Fort fortress = getFort(); - final int activeSiegeId = (fortress != null ? fortress.getResidenceId() : (castle != null ? castle.getResidenceId() : 0)); - if ((player.getSiegeState() == 2) && !player.isRegisteredOnThisSiegeField(activeSiegeId)) + final double targetHp = nearby.getCurrentHp(); + if (lowestHpValue > targetHp) { target = nearby; + lowestHpValue = targetHp; + } + } + else if (nearby.isPlayer()) + { + final L2PcInstance player = (L2PcInstance) nearby; + if ((player.getSiegeState() == 2) && !player.isRegisteredOnThisSiegeField(getScriptValue())) + { + final double targetHp = nearby.getCurrentHp(); + if (lowestHpValue > targetHp) + { + target = nearby; + lowestHpValue = targetHp; + } } } } diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/model/actor/instance/L2DefenderInstance.java b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/model/actor/instance/L2DefenderInstance.java index 955f062388..e0f9092b06 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/model/actor/instance/L2DefenderInstance.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/model/actor/instance/L2DefenderInstance.java @@ -182,25 +182,33 @@ public class L2DefenderInstance extends L2Attackable if (!skill.isBad()) { L2Character target = this; + double lowestHpValue = Double.MAX_VALUE; for (L2Character nearby : L2World.getInstance().getVisibleObjects(this, L2Character.class, skill.getCastRange())) { - if (nearby == this) + if ((nearby == null) || nearby.isDead()) { continue; } if (nearby instanceof L2DefenderInstance) { - target = nearby; - } - if (nearby.isPlayer()) - { - final L2PcInstance player = (L2PcInstance) nearby; - final Castle castle = getCastle(); - final Fort fortress = getFort(); - final int activeSiegeId = (fortress != null ? fortress.getResidenceId() : (castle != null ? castle.getResidenceId() : 0)); - if ((player.getSiegeState() == 2) && !player.isRegisteredOnThisSiegeField(activeSiegeId)) + final double targetHp = nearby.getCurrentHp(); + if (lowestHpValue > targetHp) { target = nearby; + lowestHpValue = targetHp; + } + } + else if (nearby.isPlayer()) + { + final L2PcInstance player = (L2PcInstance) nearby; + if ((player.getSiegeState() == 2) && !player.isRegisteredOnThisSiegeField(getScriptValue())) + { + final double targetHp = nearby.getCurrentHp(); + if (lowestHpValue > targetHp) + { + target = nearby; + lowestHpValue = targetHp; + } } } }