From a43abc7c56bc448b3b9a2e163198ec99b260c839 Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Thu, 23 Dec 2021 03:14:19 +0000 Subject: [PATCH] Improved Command Post walker behavior. --- .../instances/CommandPost/CommandPost.java | 79 ++++++++++--------- .../instances/CommandPost/CommandPost.java | 79 ++++++++++--------- .../instances/CommandPost/CommandPost.java | 79 ++++++++++--------- .../instances/CommandPost/CommandPost.java | 79 ++++++++++--------- .../instances/CommandPost/CommandPost.java | 79 ++++++++++--------- .../instances/CommandPost/CommandPost.java | 79 ++++++++++--------- .../instances/CommandPost/CommandPost.java | 79 ++++++++++--------- .../instances/CommandPost/CommandPost.java | 79 ++++++++++--------- .../instances/CommandPost/CommandPost.java | 79 ++++++++++--------- .../instances/CommandPost/CommandPost.java | 79 ++++++++++--------- 10 files changed, 420 insertions(+), 370 deletions(-) diff --git a/L2J_Mobius_02.5_Underground/dist/game/data/scripts/instances/CommandPost/CommandPost.java b/L2J_Mobius_02.5_Underground/dist/game/data/scripts/instances/CommandPost/CommandPost.java index c482b27b4c..d3b06deee3 100644 --- a/L2J_Mobius_02.5_Underground/dist/game/data/scripts/instances/CommandPost/CommandPost.java +++ b/L2J_Mobius_02.5_Underground/dist/game/data/scripts/instances/CommandPost/CommandPost.java @@ -19,10 +19,12 @@ package instances.CommandPost; import java.util.List; import org.l2jmobius.commons.util.Chronos; +import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.instancemanager.InstanceManager; import org.l2jmobius.gameserver.instancemanager.ZoneManager; import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Party; +import org.l2jmobius.gameserver.model.actor.Attackable; import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.instancezone.Instance; @@ -50,40 +52,27 @@ public class CommandPost extends AbstractInstance private static final int ELRYAH = 23594; private static final int[] FIRST_FLOOR = { - 23595, - 23596, - 23597, - 23600, + 23595, // Fortress Raider + 23596, // Fortress Guardian Captain + 23597, // Atelia Passionate Soldier + 23600, // Atelia Flame Master }; - private static final int[] GROUP_1 = + private static final int[] WALKING_MONSTERS = { - 23605, - 23606, - 23607, - 23608, - }; - private static final int[] GROUP_2 = - { - 23590, - 23591, - 23592, - 23593, - 23594, - }; - private static final int[] GROUP_3 = - { - 23605, - 23606, - 23607, - 23608, - }; - private static final int[] GROUP_4 = - { - 23610, - 23612, - 23613, - 23614, - 23615, + 23590, // Adolph - Brainwashed Aden Vanguard + 23591, // Barton - Brainwashed Aden Vanguard + 23592, // Hayuk - Brainwashed Aden Vanguard + 23593, // Elise - Brainwashed Aden Vanguard + 23594, // Eliyah - Brainwashed Aden Vanguard + 23605, // Aden Elite Knight - Brainwashed + 23606, // Aden Elite Warrior - Brainwashed + 23607, // Aden Elite Archer - Brainwashed + 23608, // Aden Elite Wizard - Brainwashed + 23610, // Corrupted High Priest - Embryo + 23612, // Elite Priest - Embryo + 23613, // Elite Instructor - Embryo + 23614, // Elite Executioner - Embryo + 23615, // Elite Shaman - Embryo }; // Items // private static final int EMERGENCY_WHISTLE = 46404; @@ -111,11 +100,8 @@ public class CommandPost extends AbstractInstance super(TEMPLATE_ID); addStartNpc(DEVIANNE); addTalkId(DEVIANNE); - addMoveFinishedId(GROUP_1); - addMoveFinishedId(GROUP_2); - addMoveFinishedId(GROUP_3); - addMoveFinishedId(GROUP_4); - addKillId(GEORK, BURNSTEIN); + addMoveFinishedId(WALKING_MONSTERS); + addKillId(BURNSTEIN); addInstanceLeaveId(TEMPLATE_ID); } @@ -379,6 +365,25 @@ public class CommandPost extends AbstractInstance { npc.setInvul(false); npc.setTargetable(true); + + double minDistance = Double.MAX_VALUE; + Player target = null; + for (Player player : world.getPlayers()) + { + final double distance = player.calculateDistance2D(npc); + if (distance < minDistance) + { + target = player; + minDistance = distance; + } + } + + if (target != null) + { + npc.setRunning(); + npc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, target); + ((Attackable) npc).addDamageHate(target, 1, 999); + } } super.onMoveFinished(npc); } diff --git a/L2J_Mobius_03.0_Helios/dist/game/data/scripts/instances/CommandPost/CommandPost.java b/L2J_Mobius_03.0_Helios/dist/game/data/scripts/instances/CommandPost/CommandPost.java index c482b27b4c..d3b06deee3 100644 --- a/L2J_Mobius_03.0_Helios/dist/game/data/scripts/instances/CommandPost/CommandPost.java +++ b/L2J_Mobius_03.0_Helios/dist/game/data/scripts/instances/CommandPost/CommandPost.java @@ -19,10 +19,12 @@ package instances.CommandPost; import java.util.List; import org.l2jmobius.commons.util.Chronos; +import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.instancemanager.InstanceManager; import org.l2jmobius.gameserver.instancemanager.ZoneManager; import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Party; +import org.l2jmobius.gameserver.model.actor.Attackable; import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.instancezone.Instance; @@ -50,40 +52,27 @@ public class CommandPost extends AbstractInstance private static final int ELRYAH = 23594; private static final int[] FIRST_FLOOR = { - 23595, - 23596, - 23597, - 23600, + 23595, // Fortress Raider + 23596, // Fortress Guardian Captain + 23597, // Atelia Passionate Soldier + 23600, // Atelia Flame Master }; - private static final int[] GROUP_1 = + private static final int[] WALKING_MONSTERS = { - 23605, - 23606, - 23607, - 23608, - }; - private static final int[] GROUP_2 = - { - 23590, - 23591, - 23592, - 23593, - 23594, - }; - private static final int[] GROUP_3 = - { - 23605, - 23606, - 23607, - 23608, - }; - private static final int[] GROUP_4 = - { - 23610, - 23612, - 23613, - 23614, - 23615, + 23590, // Adolph - Brainwashed Aden Vanguard + 23591, // Barton - Brainwashed Aden Vanguard + 23592, // Hayuk - Brainwashed Aden Vanguard + 23593, // Elise - Brainwashed Aden Vanguard + 23594, // Eliyah - Brainwashed Aden Vanguard + 23605, // Aden Elite Knight - Brainwashed + 23606, // Aden Elite Warrior - Brainwashed + 23607, // Aden Elite Archer - Brainwashed + 23608, // Aden Elite Wizard - Brainwashed + 23610, // Corrupted High Priest - Embryo + 23612, // Elite Priest - Embryo + 23613, // Elite Instructor - Embryo + 23614, // Elite Executioner - Embryo + 23615, // Elite Shaman - Embryo }; // Items // private static final int EMERGENCY_WHISTLE = 46404; @@ -111,11 +100,8 @@ public class CommandPost extends AbstractInstance super(TEMPLATE_ID); addStartNpc(DEVIANNE); addTalkId(DEVIANNE); - addMoveFinishedId(GROUP_1); - addMoveFinishedId(GROUP_2); - addMoveFinishedId(GROUP_3); - addMoveFinishedId(GROUP_4); - addKillId(GEORK, BURNSTEIN); + addMoveFinishedId(WALKING_MONSTERS); + addKillId(BURNSTEIN); addInstanceLeaveId(TEMPLATE_ID); } @@ -379,6 +365,25 @@ public class CommandPost extends AbstractInstance { npc.setInvul(false); npc.setTargetable(true); + + double minDistance = Double.MAX_VALUE; + Player target = null; + for (Player player : world.getPlayers()) + { + final double distance = player.calculateDistance2D(npc); + if (distance < minDistance) + { + target = player; + minDistance = distance; + } + } + + if (target != null) + { + npc.setRunning(); + npc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, target); + ((Attackable) npc).addDamageHate(target, 1, 999); + } } super.onMoveFinished(npc); } diff --git a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/instances/CommandPost/CommandPost.java b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/instances/CommandPost/CommandPost.java index c482b27b4c..d3b06deee3 100644 --- a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/instances/CommandPost/CommandPost.java +++ b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/instances/CommandPost/CommandPost.java @@ -19,10 +19,12 @@ package instances.CommandPost; import java.util.List; import org.l2jmobius.commons.util.Chronos; +import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.instancemanager.InstanceManager; import org.l2jmobius.gameserver.instancemanager.ZoneManager; import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Party; +import org.l2jmobius.gameserver.model.actor.Attackable; import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.instancezone.Instance; @@ -50,40 +52,27 @@ public class CommandPost extends AbstractInstance private static final int ELRYAH = 23594; private static final int[] FIRST_FLOOR = { - 23595, - 23596, - 23597, - 23600, + 23595, // Fortress Raider + 23596, // Fortress Guardian Captain + 23597, // Atelia Passionate Soldier + 23600, // Atelia Flame Master }; - private static final int[] GROUP_1 = + private static final int[] WALKING_MONSTERS = { - 23605, - 23606, - 23607, - 23608, - }; - private static final int[] GROUP_2 = - { - 23590, - 23591, - 23592, - 23593, - 23594, - }; - private static final int[] GROUP_3 = - { - 23605, - 23606, - 23607, - 23608, - }; - private static final int[] GROUP_4 = - { - 23610, - 23612, - 23613, - 23614, - 23615, + 23590, // Adolph - Brainwashed Aden Vanguard + 23591, // Barton - Brainwashed Aden Vanguard + 23592, // Hayuk - Brainwashed Aden Vanguard + 23593, // Elise - Brainwashed Aden Vanguard + 23594, // Eliyah - Brainwashed Aden Vanguard + 23605, // Aden Elite Knight - Brainwashed + 23606, // Aden Elite Warrior - Brainwashed + 23607, // Aden Elite Archer - Brainwashed + 23608, // Aden Elite Wizard - Brainwashed + 23610, // Corrupted High Priest - Embryo + 23612, // Elite Priest - Embryo + 23613, // Elite Instructor - Embryo + 23614, // Elite Executioner - Embryo + 23615, // Elite Shaman - Embryo }; // Items // private static final int EMERGENCY_WHISTLE = 46404; @@ -111,11 +100,8 @@ public class CommandPost extends AbstractInstance super(TEMPLATE_ID); addStartNpc(DEVIANNE); addTalkId(DEVIANNE); - addMoveFinishedId(GROUP_1); - addMoveFinishedId(GROUP_2); - addMoveFinishedId(GROUP_3); - addMoveFinishedId(GROUP_4); - addKillId(GEORK, BURNSTEIN); + addMoveFinishedId(WALKING_MONSTERS); + addKillId(BURNSTEIN); addInstanceLeaveId(TEMPLATE_ID); } @@ -379,6 +365,25 @@ public class CommandPost extends AbstractInstance { npc.setInvul(false); npc.setTargetable(true); + + double minDistance = Double.MAX_VALUE; + Player target = null; + for (Player player : world.getPlayers()) + { + final double distance = player.calculateDistance2D(npc); + if (distance < minDistance) + { + target = player; + minDistance = distance; + } + } + + if (target != null) + { + npc.setRunning(); + npc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, target); + ((Attackable) npc).addDamageHate(target, 1, 999); + } } super.onMoveFinished(npc); } diff --git a/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/instances/CommandPost/CommandPost.java b/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/instances/CommandPost/CommandPost.java index c482b27b4c..d3b06deee3 100644 --- a/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/instances/CommandPost/CommandPost.java +++ b/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/instances/CommandPost/CommandPost.java @@ -19,10 +19,12 @@ package instances.CommandPost; import java.util.List; import org.l2jmobius.commons.util.Chronos; +import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.instancemanager.InstanceManager; import org.l2jmobius.gameserver.instancemanager.ZoneManager; import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Party; +import org.l2jmobius.gameserver.model.actor.Attackable; import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.instancezone.Instance; @@ -50,40 +52,27 @@ public class CommandPost extends AbstractInstance private static final int ELRYAH = 23594; private static final int[] FIRST_FLOOR = { - 23595, - 23596, - 23597, - 23600, + 23595, // Fortress Raider + 23596, // Fortress Guardian Captain + 23597, // Atelia Passionate Soldier + 23600, // Atelia Flame Master }; - private static final int[] GROUP_1 = + private static final int[] WALKING_MONSTERS = { - 23605, - 23606, - 23607, - 23608, - }; - private static final int[] GROUP_2 = - { - 23590, - 23591, - 23592, - 23593, - 23594, - }; - private static final int[] GROUP_3 = - { - 23605, - 23606, - 23607, - 23608, - }; - private static final int[] GROUP_4 = - { - 23610, - 23612, - 23613, - 23614, - 23615, + 23590, // Adolph - Brainwashed Aden Vanguard + 23591, // Barton - Brainwashed Aden Vanguard + 23592, // Hayuk - Brainwashed Aden Vanguard + 23593, // Elise - Brainwashed Aden Vanguard + 23594, // Eliyah - Brainwashed Aden Vanguard + 23605, // Aden Elite Knight - Brainwashed + 23606, // Aden Elite Warrior - Brainwashed + 23607, // Aden Elite Archer - Brainwashed + 23608, // Aden Elite Wizard - Brainwashed + 23610, // Corrupted High Priest - Embryo + 23612, // Elite Priest - Embryo + 23613, // Elite Instructor - Embryo + 23614, // Elite Executioner - Embryo + 23615, // Elite Shaman - Embryo }; // Items // private static final int EMERGENCY_WHISTLE = 46404; @@ -111,11 +100,8 @@ public class CommandPost extends AbstractInstance super(TEMPLATE_ID); addStartNpc(DEVIANNE); addTalkId(DEVIANNE); - addMoveFinishedId(GROUP_1); - addMoveFinishedId(GROUP_2); - addMoveFinishedId(GROUP_3); - addMoveFinishedId(GROUP_4); - addKillId(GEORK, BURNSTEIN); + addMoveFinishedId(WALKING_MONSTERS); + addKillId(BURNSTEIN); addInstanceLeaveId(TEMPLATE_ID); } @@ -379,6 +365,25 @@ public class CommandPost extends AbstractInstance { npc.setInvul(false); npc.setTargetable(true); + + double minDistance = Double.MAX_VALUE; + Player target = null; + for (Player player : world.getPlayers()) + { + final double distance = player.calculateDistance2D(npc); + if (distance < minDistance) + { + target = player; + minDistance = distance; + } + } + + if (target != null) + { + npc.setRunning(); + npc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, target); + ((Attackable) npc).addDamageHate(target, 1, 999); + } } super.onMoveFinished(npc); } diff --git a/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/instances/CommandPost/CommandPost.java b/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/instances/CommandPost/CommandPost.java index c482b27b4c..d3b06deee3 100644 --- a/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/instances/CommandPost/CommandPost.java +++ b/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/instances/CommandPost/CommandPost.java @@ -19,10 +19,12 @@ package instances.CommandPost; import java.util.List; import org.l2jmobius.commons.util.Chronos; +import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.instancemanager.InstanceManager; import org.l2jmobius.gameserver.instancemanager.ZoneManager; import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Party; +import org.l2jmobius.gameserver.model.actor.Attackable; import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.instancezone.Instance; @@ -50,40 +52,27 @@ public class CommandPost extends AbstractInstance private static final int ELRYAH = 23594; private static final int[] FIRST_FLOOR = { - 23595, - 23596, - 23597, - 23600, + 23595, // Fortress Raider + 23596, // Fortress Guardian Captain + 23597, // Atelia Passionate Soldier + 23600, // Atelia Flame Master }; - private static final int[] GROUP_1 = + private static final int[] WALKING_MONSTERS = { - 23605, - 23606, - 23607, - 23608, - }; - private static final int[] GROUP_2 = - { - 23590, - 23591, - 23592, - 23593, - 23594, - }; - private static final int[] GROUP_3 = - { - 23605, - 23606, - 23607, - 23608, - }; - private static final int[] GROUP_4 = - { - 23610, - 23612, - 23613, - 23614, - 23615, + 23590, // Adolph - Brainwashed Aden Vanguard + 23591, // Barton - Brainwashed Aden Vanguard + 23592, // Hayuk - Brainwashed Aden Vanguard + 23593, // Elise - Brainwashed Aden Vanguard + 23594, // Eliyah - Brainwashed Aden Vanguard + 23605, // Aden Elite Knight - Brainwashed + 23606, // Aden Elite Warrior - Brainwashed + 23607, // Aden Elite Archer - Brainwashed + 23608, // Aden Elite Wizard - Brainwashed + 23610, // Corrupted High Priest - Embryo + 23612, // Elite Priest - Embryo + 23613, // Elite Instructor - Embryo + 23614, // Elite Executioner - Embryo + 23615, // Elite Shaman - Embryo }; // Items // private static final int EMERGENCY_WHISTLE = 46404; @@ -111,11 +100,8 @@ public class CommandPost extends AbstractInstance super(TEMPLATE_ID); addStartNpc(DEVIANNE); addTalkId(DEVIANNE); - addMoveFinishedId(GROUP_1); - addMoveFinishedId(GROUP_2); - addMoveFinishedId(GROUP_3); - addMoveFinishedId(GROUP_4); - addKillId(GEORK, BURNSTEIN); + addMoveFinishedId(WALKING_MONSTERS); + addKillId(BURNSTEIN); addInstanceLeaveId(TEMPLATE_ID); } @@ -379,6 +365,25 @@ public class CommandPost extends AbstractInstance { npc.setInvul(false); npc.setTargetable(true); + + double minDistance = Double.MAX_VALUE; + Player target = null; + for (Player player : world.getPlayers()) + { + final double distance = player.calculateDistance2D(npc); + if (distance < minDistance) + { + target = player; + minDistance = distance; + } + } + + if (target != null) + { + npc.setRunning(); + npc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, target); + ((Attackable) npc).addDamageHate(target, 1, 999); + } } super.onMoveFinished(npc); } diff --git a/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/instances/CommandPost/CommandPost.java b/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/instances/CommandPost/CommandPost.java index c8fff6c146..2aa7dc665a 100644 --- a/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/instances/CommandPost/CommandPost.java +++ b/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/instances/CommandPost/CommandPost.java @@ -19,10 +19,12 @@ package instances.CommandPost; import java.util.List; import org.l2jmobius.commons.util.Chronos; +import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.instancemanager.InstanceManager; import org.l2jmobius.gameserver.instancemanager.ZoneManager; import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Party; +import org.l2jmobius.gameserver.model.actor.Attackable; import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.instancezone.Instance; @@ -50,40 +52,27 @@ public class CommandPost extends AbstractInstance private static final int ELRYAH = 23594; private static final int[] FIRST_FLOOR = { - 23595, - 23596, - 23597, - 23600, + 23595, // Fortress Raider + 23596, // Fortress Guardian Captain + 23597, // Atelia Passionate Soldier + 23600, // Atelia Flame Master }; - private static final int[] GROUP_1 = + private static final int[] WALKING_MONSTERS = { - 23605, - 23606, - 23607, - 23608, - }; - private static final int[] GROUP_2 = - { - 23590, - 23591, - 23592, - 23593, - 23594, - }; - private static final int[] GROUP_3 = - { - 23605, - 23606, - 23607, - 23608, - }; - private static final int[] GROUP_4 = - { - 23610, - 23612, - 23613, - 23614, - 23615, + 23590, // Adolph - Brainwashed Aden Vanguard + 23591, // Barton - Brainwashed Aden Vanguard + 23592, // Hayuk - Brainwashed Aden Vanguard + 23593, // Elise - Brainwashed Aden Vanguard + 23594, // Eliyah - Brainwashed Aden Vanguard + 23605, // Aden Elite Knight - Brainwashed + 23606, // Aden Elite Warrior - Brainwashed + 23607, // Aden Elite Archer - Brainwashed + 23608, // Aden Elite Wizard - Brainwashed + 23610, // Corrupted High Priest - Embryo + 23612, // Elite Priest - Embryo + 23613, // Elite Instructor - Embryo + 23614, // Elite Executioner - Embryo + 23615, // Elite Shaman - Embryo }; // Items // private static final int EMERGENCY_WHISTLE = 46404; @@ -111,11 +100,8 @@ public class CommandPost extends AbstractInstance super(TEMPLATE_ID); addStartNpc(DEVIANNE); addTalkId(DEVIANNE); - addMoveFinishedId(GROUP_1); - addMoveFinishedId(GROUP_2); - addMoveFinishedId(GROUP_3); - addMoveFinishedId(GROUP_4); - addKillId(GEORK, BURNSTEIN); + addMoveFinishedId(WALKING_MONSTERS); + addKillId(BURNSTEIN); addInstanceLeaveId(TEMPLATE_ID); } @@ -379,6 +365,25 @@ public class CommandPost extends AbstractInstance { npc.setInvul(false); npc.setTargetable(true); + + double minDistance = Double.MAX_VALUE; + Player target = null; + for (Player player : world.getPlayers()) + { + final double distance = player.calculateDistance2D(npc); + if (distance < minDistance) + { + target = player; + minDistance = distance; + } + } + + if (target != null) + { + npc.setRunning(); + npc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, target); + ((Attackable) npc).addDamageHate(target, 1, 999); + } } super.onMoveFinished(npc); } diff --git a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/instances/CommandPost/CommandPost.java b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/instances/CommandPost/CommandPost.java index 149ae31f9d..67d1d6b348 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/instances/CommandPost/CommandPost.java +++ b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/instances/CommandPost/CommandPost.java @@ -19,10 +19,12 @@ package instances.CommandPost; import java.util.List; import org.l2jmobius.commons.util.Chronos; +import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.instancemanager.InstanceManager; import org.l2jmobius.gameserver.instancemanager.ZoneManager; import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Party; +import org.l2jmobius.gameserver.model.actor.Attackable; import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.instancezone.Instance; @@ -50,40 +52,27 @@ public class CommandPost extends AbstractInstance private static final int ELRYAH = 23594; private static final int[] FIRST_FLOOR = { - 23595, - 23596, - 23597, - 23600, + 23595, // Fortress Raider + 23596, // Fortress Guardian Captain + 23597, // Atelia Passionate Soldier + 23600, // Atelia Flame Master }; - private static final int[] GROUP_1 = + private static final int[] WALKING_MONSTERS = { - 23605, - 23606, - 23607, - 23608, - }; - private static final int[] GROUP_2 = - { - 23590, - 23591, - 23592, - 23593, - 23594, - }; - private static final int[] GROUP_3 = - { - 23605, - 23606, - 23607, - 23608, - }; - private static final int[] GROUP_4 = - { - 23610, - 23612, - 23613, - 23614, - 23615, + 23590, // Adolph - Brainwashed Aden Vanguard + 23591, // Barton - Brainwashed Aden Vanguard + 23592, // Hayuk - Brainwashed Aden Vanguard + 23593, // Elise - Brainwashed Aden Vanguard + 23594, // Eliyah - Brainwashed Aden Vanguard + 23605, // Aden Elite Knight - Brainwashed + 23606, // Aden Elite Warrior - Brainwashed + 23607, // Aden Elite Archer - Brainwashed + 23608, // Aden Elite Wizard - Brainwashed + 23610, // Corrupted High Priest - Embryo + 23612, // Elite Priest - Embryo + 23613, // Elite Instructor - Embryo + 23614, // Elite Executioner - Embryo + 23615, // Elite Shaman - Embryo }; // Items // private static final int EMERGENCY_WHISTLE = 46404; @@ -111,11 +100,8 @@ public class CommandPost extends AbstractInstance super(TEMPLATE_ID); addStartNpc(DEVIANNE); addTalkId(DEVIANNE); - addMoveFinishedId(GROUP_1); - addMoveFinishedId(GROUP_2); - addMoveFinishedId(GROUP_3); - addMoveFinishedId(GROUP_4); - addKillId(GEORK, BURNSTEIN); + addMoveFinishedId(WALKING_MONSTERS); + addKillId(BURNSTEIN); addInstanceLeaveId(TEMPLATE_ID); } @@ -379,6 +365,25 @@ public class CommandPost extends AbstractInstance { npc.setInvul(false); npc.setTargetable(true); + + double minDistance = Double.MAX_VALUE; + Player target = null; + for (Player player : world.getPlayers()) + { + final double distance = player.calculateDistance2D(npc); + if (distance < minDistance) + { + target = player; + minDistance = distance; + } + } + + if (target != null) + { + npc.setRunning(); + npc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, target); + ((Attackable) npc).addDamageHate(target, 1, 999); + } } super.onMoveFinished(npc); } diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/instances/CommandPost/CommandPost.java b/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/instances/CommandPost/CommandPost.java index 149ae31f9d..67d1d6b348 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/instances/CommandPost/CommandPost.java +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/instances/CommandPost/CommandPost.java @@ -19,10 +19,12 @@ package instances.CommandPost; import java.util.List; import org.l2jmobius.commons.util.Chronos; +import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.instancemanager.InstanceManager; import org.l2jmobius.gameserver.instancemanager.ZoneManager; import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Party; +import org.l2jmobius.gameserver.model.actor.Attackable; import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.instancezone.Instance; @@ -50,40 +52,27 @@ public class CommandPost extends AbstractInstance private static final int ELRYAH = 23594; private static final int[] FIRST_FLOOR = { - 23595, - 23596, - 23597, - 23600, + 23595, // Fortress Raider + 23596, // Fortress Guardian Captain + 23597, // Atelia Passionate Soldier + 23600, // Atelia Flame Master }; - private static final int[] GROUP_1 = + private static final int[] WALKING_MONSTERS = { - 23605, - 23606, - 23607, - 23608, - }; - private static final int[] GROUP_2 = - { - 23590, - 23591, - 23592, - 23593, - 23594, - }; - private static final int[] GROUP_3 = - { - 23605, - 23606, - 23607, - 23608, - }; - private static final int[] GROUP_4 = - { - 23610, - 23612, - 23613, - 23614, - 23615, + 23590, // Adolph - Brainwashed Aden Vanguard + 23591, // Barton - Brainwashed Aden Vanguard + 23592, // Hayuk - Brainwashed Aden Vanguard + 23593, // Elise - Brainwashed Aden Vanguard + 23594, // Eliyah - Brainwashed Aden Vanguard + 23605, // Aden Elite Knight - Brainwashed + 23606, // Aden Elite Warrior - Brainwashed + 23607, // Aden Elite Archer - Brainwashed + 23608, // Aden Elite Wizard - Brainwashed + 23610, // Corrupted High Priest - Embryo + 23612, // Elite Priest - Embryo + 23613, // Elite Instructor - Embryo + 23614, // Elite Executioner - Embryo + 23615, // Elite Shaman - Embryo }; // Items // private static final int EMERGENCY_WHISTLE = 46404; @@ -111,11 +100,8 @@ public class CommandPost extends AbstractInstance super(TEMPLATE_ID); addStartNpc(DEVIANNE); addTalkId(DEVIANNE); - addMoveFinishedId(GROUP_1); - addMoveFinishedId(GROUP_2); - addMoveFinishedId(GROUP_3); - addMoveFinishedId(GROUP_4); - addKillId(GEORK, BURNSTEIN); + addMoveFinishedId(WALKING_MONSTERS); + addKillId(BURNSTEIN); addInstanceLeaveId(TEMPLATE_ID); } @@ -379,6 +365,25 @@ public class CommandPost extends AbstractInstance { npc.setInvul(false); npc.setTargetable(true); + + double minDistance = Double.MAX_VALUE; + Player target = null; + for (Player player : world.getPlayers()) + { + final double distance = player.calculateDistance2D(npc); + if (distance < minDistance) + { + target = player; + minDistance = distance; + } + } + + if (target != null) + { + npc.setRunning(); + npc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, target); + ((Attackable) npc).addDamageHate(target, 1, 999); + } } super.onMoveFinished(npc); } diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/instances/CommandPost/CommandPost.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/instances/CommandPost/CommandPost.java index 149ae31f9d..67d1d6b348 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/instances/CommandPost/CommandPost.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/instances/CommandPost/CommandPost.java @@ -19,10 +19,12 @@ package instances.CommandPost; import java.util.List; import org.l2jmobius.commons.util.Chronos; +import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.instancemanager.InstanceManager; import org.l2jmobius.gameserver.instancemanager.ZoneManager; import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Party; +import org.l2jmobius.gameserver.model.actor.Attackable; import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.instancezone.Instance; @@ -50,40 +52,27 @@ public class CommandPost extends AbstractInstance private static final int ELRYAH = 23594; private static final int[] FIRST_FLOOR = { - 23595, - 23596, - 23597, - 23600, + 23595, // Fortress Raider + 23596, // Fortress Guardian Captain + 23597, // Atelia Passionate Soldier + 23600, // Atelia Flame Master }; - private static final int[] GROUP_1 = + private static final int[] WALKING_MONSTERS = { - 23605, - 23606, - 23607, - 23608, - }; - private static final int[] GROUP_2 = - { - 23590, - 23591, - 23592, - 23593, - 23594, - }; - private static final int[] GROUP_3 = - { - 23605, - 23606, - 23607, - 23608, - }; - private static final int[] GROUP_4 = - { - 23610, - 23612, - 23613, - 23614, - 23615, + 23590, // Adolph - Brainwashed Aden Vanguard + 23591, // Barton - Brainwashed Aden Vanguard + 23592, // Hayuk - Brainwashed Aden Vanguard + 23593, // Elise - Brainwashed Aden Vanguard + 23594, // Eliyah - Brainwashed Aden Vanguard + 23605, // Aden Elite Knight - Brainwashed + 23606, // Aden Elite Warrior - Brainwashed + 23607, // Aden Elite Archer - Brainwashed + 23608, // Aden Elite Wizard - Brainwashed + 23610, // Corrupted High Priest - Embryo + 23612, // Elite Priest - Embryo + 23613, // Elite Instructor - Embryo + 23614, // Elite Executioner - Embryo + 23615, // Elite Shaman - Embryo }; // Items // private static final int EMERGENCY_WHISTLE = 46404; @@ -111,11 +100,8 @@ public class CommandPost extends AbstractInstance super(TEMPLATE_ID); addStartNpc(DEVIANNE); addTalkId(DEVIANNE); - addMoveFinishedId(GROUP_1); - addMoveFinishedId(GROUP_2); - addMoveFinishedId(GROUP_3); - addMoveFinishedId(GROUP_4); - addKillId(GEORK, BURNSTEIN); + addMoveFinishedId(WALKING_MONSTERS); + addKillId(BURNSTEIN); addInstanceLeaveId(TEMPLATE_ID); } @@ -379,6 +365,25 @@ public class CommandPost extends AbstractInstance { npc.setInvul(false); npc.setTargetable(true); + + double minDistance = Double.MAX_VALUE; + Player target = null; + for (Player player : world.getPlayers()) + { + final double distance = player.calculateDistance2D(npc); + if (distance < minDistance) + { + target = player; + minDistance = distance; + } + } + + if (target != null) + { + npc.setRunning(); + npc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, target); + ((Attackable) npc).addDamageHate(target, 1, 999); + } } super.onMoveFinished(npc); } diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/instances/CommandPost/CommandPost.java b/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/instances/CommandPost/CommandPost.java index 149ae31f9d..67d1d6b348 100644 --- a/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/instances/CommandPost/CommandPost.java +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/instances/CommandPost/CommandPost.java @@ -19,10 +19,12 @@ package instances.CommandPost; import java.util.List; import org.l2jmobius.commons.util.Chronos; +import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.instancemanager.InstanceManager; import org.l2jmobius.gameserver.instancemanager.ZoneManager; import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Party; +import org.l2jmobius.gameserver.model.actor.Attackable; import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.instancezone.Instance; @@ -50,40 +52,27 @@ public class CommandPost extends AbstractInstance private static final int ELRYAH = 23594; private static final int[] FIRST_FLOOR = { - 23595, - 23596, - 23597, - 23600, + 23595, // Fortress Raider + 23596, // Fortress Guardian Captain + 23597, // Atelia Passionate Soldier + 23600, // Atelia Flame Master }; - private static final int[] GROUP_1 = + private static final int[] WALKING_MONSTERS = { - 23605, - 23606, - 23607, - 23608, - }; - private static final int[] GROUP_2 = - { - 23590, - 23591, - 23592, - 23593, - 23594, - }; - private static final int[] GROUP_3 = - { - 23605, - 23606, - 23607, - 23608, - }; - private static final int[] GROUP_4 = - { - 23610, - 23612, - 23613, - 23614, - 23615, + 23590, // Adolph - Brainwashed Aden Vanguard + 23591, // Barton - Brainwashed Aden Vanguard + 23592, // Hayuk - Brainwashed Aden Vanguard + 23593, // Elise - Brainwashed Aden Vanguard + 23594, // Eliyah - Brainwashed Aden Vanguard + 23605, // Aden Elite Knight - Brainwashed + 23606, // Aden Elite Warrior - Brainwashed + 23607, // Aden Elite Archer - Brainwashed + 23608, // Aden Elite Wizard - Brainwashed + 23610, // Corrupted High Priest - Embryo + 23612, // Elite Priest - Embryo + 23613, // Elite Instructor - Embryo + 23614, // Elite Executioner - Embryo + 23615, // Elite Shaman - Embryo }; // Items // private static final int EMERGENCY_WHISTLE = 46404; @@ -111,11 +100,8 @@ public class CommandPost extends AbstractInstance super(TEMPLATE_ID); addStartNpc(DEVIANNE); addTalkId(DEVIANNE); - addMoveFinishedId(GROUP_1); - addMoveFinishedId(GROUP_2); - addMoveFinishedId(GROUP_3); - addMoveFinishedId(GROUP_4); - addKillId(GEORK, BURNSTEIN); + addMoveFinishedId(WALKING_MONSTERS); + addKillId(BURNSTEIN); addInstanceLeaveId(TEMPLATE_ID); } @@ -379,6 +365,25 @@ public class CommandPost extends AbstractInstance { npc.setInvul(false); npc.setTargetable(true); + + double minDistance = Double.MAX_VALUE; + Player target = null; + for (Player player : world.getPlayers()) + { + final double distance = player.calculateDistance2D(npc); + if (distance < minDistance) + { + target = player; + minDistance = distance; + } + } + + if (target != null) + { + npc.setRunning(); + npc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, target); + ((Attackable) npc).addDamageHate(target, 1, 999); + } } super.onMoveFinished(npc); }