diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/others/SiegeGuards.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/others/SiegeGuards.java index e573f2780b..ef065f0f07 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/others/SiegeGuards.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/others/SiegeGuards.java @@ -93,6 +93,7 @@ public class SiegeGuards extends AbstractNpcAI }; //@formatter:on private static final Map> RESIDENCE_GUARD_MAP = new HashMap<>(); + private static final Map RESIDENCE_WORKING = new HashMap<>(); public SiegeGuards() { @@ -111,6 +112,7 @@ public class SiegeGuards extends AbstractNpcAI // Start task for unknown residences. RESIDENCE_GUARD_MAP.put(0, new CopyOnWriteArrayList<>()); + RESIDENCE_WORKING.put(0, false); ThreadPool.scheduleAtFixedRate(new AggroCheckTask(0), 0, 3000); // Start tasks for castles. @@ -118,6 +120,7 @@ public class SiegeGuards extends AbstractNpcAI { final int residenceId = castle.getResidenceId(); RESIDENCE_GUARD_MAP.put(residenceId, new CopyOnWriteArrayList<>()); + RESIDENCE_WORKING.put(residenceId, false); ThreadPool.scheduleAtFixedRate(new AggroCheckTask(residenceId), residenceId * 100, 3000); } @@ -126,6 +129,7 @@ public class SiegeGuards extends AbstractNpcAI { final int residenceId = fort.getResidenceId(); RESIDENCE_GUARD_MAP.put(residenceId, new CopyOnWriteArrayList<>()); + RESIDENCE_WORKING.put(residenceId, false); ThreadPool.scheduleAtFixedRate(new AggroCheckTask(residenceId), 900 + ((residenceId - 100) * 100), 3000); } } @@ -142,6 +146,12 @@ public class SiegeGuards extends AbstractNpcAI @Override public void run() { + if (RESIDENCE_WORKING.get(_residenceId)) + { + return; + } + RESIDENCE_WORKING.put(_residenceId, true); + final List guards = RESIDENCE_GUARD_MAP.get(_residenceId); for (Npc guard : guards) { @@ -185,6 +195,8 @@ public class SiegeGuards extends AbstractNpcAI } } } + + RESIDENCE_WORKING.put(_residenceId, false); } } diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/others/SiegeGuards.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/others/SiegeGuards.java index e573f2780b..ef065f0f07 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/others/SiegeGuards.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/others/SiegeGuards.java @@ -93,6 +93,7 @@ public class SiegeGuards extends AbstractNpcAI }; //@formatter:on private static final Map> RESIDENCE_GUARD_MAP = new HashMap<>(); + private static final Map RESIDENCE_WORKING = new HashMap<>(); public SiegeGuards() { @@ -111,6 +112,7 @@ public class SiegeGuards extends AbstractNpcAI // Start task for unknown residences. RESIDENCE_GUARD_MAP.put(0, new CopyOnWriteArrayList<>()); + RESIDENCE_WORKING.put(0, false); ThreadPool.scheduleAtFixedRate(new AggroCheckTask(0), 0, 3000); // Start tasks for castles. @@ -118,6 +120,7 @@ public class SiegeGuards extends AbstractNpcAI { final int residenceId = castle.getResidenceId(); RESIDENCE_GUARD_MAP.put(residenceId, new CopyOnWriteArrayList<>()); + RESIDENCE_WORKING.put(residenceId, false); ThreadPool.scheduleAtFixedRate(new AggroCheckTask(residenceId), residenceId * 100, 3000); } @@ -126,6 +129,7 @@ public class SiegeGuards extends AbstractNpcAI { final int residenceId = fort.getResidenceId(); RESIDENCE_GUARD_MAP.put(residenceId, new CopyOnWriteArrayList<>()); + RESIDENCE_WORKING.put(residenceId, false); ThreadPool.scheduleAtFixedRate(new AggroCheckTask(residenceId), 900 + ((residenceId - 100) * 100), 3000); } } @@ -142,6 +146,12 @@ public class SiegeGuards extends AbstractNpcAI @Override public void run() { + if (RESIDENCE_WORKING.get(_residenceId)) + { + return; + } + RESIDENCE_WORKING.put(_residenceId, true); + final List guards = RESIDENCE_GUARD_MAP.get(_residenceId); for (Npc guard : guards) { @@ -185,6 +195,8 @@ public class SiegeGuards extends AbstractNpcAI } } } + + RESIDENCE_WORKING.put(_residenceId, false); } } diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/others/SiegeGuards.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/others/SiegeGuards.java index e573f2780b..ef065f0f07 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/others/SiegeGuards.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/others/SiegeGuards.java @@ -93,6 +93,7 @@ public class SiegeGuards extends AbstractNpcAI }; //@formatter:on private static final Map> RESIDENCE_GUARD_MAP = new HashMap<>(); + private static final Map RESIDENCE_WORKING = new HashMap<>(); public SiegeGuards() { @@ -111,6 +112,7 @@ public class SiegeGuards extends AbstractNpcAI // Start task for unknown residences. RESIDENCE_GUARD_MAP.put(0, new CopyOnWriteArrayList<>()); + RESIDENCE_WORKING.put(0, false); ThreadPool.scheduleAtFixedRate(new AggroCheckTask(0), 0, 3000); // Start tasks for castles. @@ -118,6 +120,7 @@ public class SiegeGuards extends AbstractNpcAI { final int residenceId = castle.getResidenceId(); RESIDENCE_GUARD_MAP.put(residenceId, new CopyOnWriteArrayList<>()); + RESIDENCE_WORKING.put(residenceId, false); ThreadPool.scheduleAtFixedRate(new AggroCheckTask(residenceId), residenceId * 100, 3000); } @@ -126,6 +129,7 @@ public class SiegeGuards extends AbstractNpcAI { final int residenceId = fort.getResidenceId(); RESIDENCE_GUARD_MAP.put(residenceId, new CopyOnWriteArrayList<>()); + RESIDENCE_WORKING.put(residenceId, false); ThreadPool.scheduleAtFixedRate(new AggroCheckTask(residenceId), 900 + ((residenceId - 100) * 100), 3000); } } @@ -142,6 +146,12 @@ public class SiegeGuards extends AbstractNpcAI @Override public void run() { + if (RESIDENCE_WORKING.get(_residenceId)) + { + return; + } + RESIDENCE_WORKING.put(_residenceId, true); + final List guards = RESIDENCE_GUARD_MAP.get(_residenceId); for (Npc guard : guards) { @@ -185,6 +195,8 @@ public class SiegeGuards extends AbstractNpcAI } } } + + RESIDENCE_WORKING.put(_residenceId, false); } } diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/others/SiegeGuards.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/others/SiegeGuards.java index e573f2780b..ef065f0f07 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/others/SiegeGuards.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/others/SiegeGuards.java @@ -93,6 +93,7 @@ public class SiegeGuards extends AbstractNpcAI }; //@formatter:on private static final Map> RESIDENCE_GUARD_MAP = new HashMap<>(); + private static final Map RESIDENCE_WORKING = new HashMap<>(); public SiegeGuards() { @@ -111,6 +112,7 @@ public class SiegeGuards extends AbstractNpcAI // Start task for unknown residences. RESIDENCE_GUARD_MAP.put(0, new CopyOnWriteArrayList<>()); + RESIDENCE_WORKING.put(0, false); ThreadPool.scheduleAtFixedRate(new AggroCheckTask(0), 0, 3000); // Start tasks for castles. @@ -118,6 +120,7 @@ public class SiegeGuards extends AbstractNpcAI { final int residenceId = castle.getResidenceId(); RESIDENCE_GUARD_MAP.put(residenceId, new CopyOnWriteArrayList<>()); + RESIDENCE_WORKING.put(residenceId, false); ThreadPool.scheduleAtFixedRate(new AggroCheckTask(residenceId), residenceId * 100, 3000); } @@ -126,6 +129,7 @@ public class SiegeGuards extends AbstractNpcAI { final int residenceId = fort.getResidenceId(); RESIDENCE_GUARD_MAP.put(residenceId, new CopyOnWriteArrayList<>()); + RESIDENCE_WORKING.put(residenceId, false); ThreadPool.scheduleAtFixedRate(new AggroCheckTask(residenceId), 900 + ((residenceId - 100) * 100), 3000); } } @@ -142,6 +146,12 @@ public class SiegeGuards extends AbstractNpcAI @Override public void run() { + if (RESIDENCE_WORKING.get(_residenceId)) + { + return; + } + RESIDENCE_WORKING.put(_residenceId, true); + final List guards = RESIDENCE_GUARD_MAP.get(_residenceId); for (Npc guard : guards) { @@ -185,6 +195,8 @@ public class SiegeGuards extends AbstractNpcAI } } } + + RESIDENCE_WORKING.put(_residenceId, false); } } diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/others/SiegeGuards.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/others/SiegeGuards.java index e573f2780b..ef065f0f07 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/others/SiegeGuards.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/others/SiegeGuards.java @@ -93,6 +93,7 @@ public class SiegeGuards extends AbstractNpcAI }; //@formatter:on private static final Map> RESIDENCE_GUARD_MAP = new HashMap<>(); + private static final Map RESIDENCE_WORKING = new HashMap<>(); public SiegeGuards() { @@ -111,6 +112,7 @@ public class SiegeGuards extends AbstractNpcAI // Start task for unknown residences. RESIDENCE_GUARD_MAP.put(0, new CopyOnWriteArrayList<>()); + RESIDENCE_WORKING.put(0, false); ThreadPool.scheduleAtFixedRate(new AggroCheckTask(0), 0, 3000); // Start tasks for castles. @@ -118,6 +120,7 @@ public class SiegeGuards extends AbstractNpcAI { final int residenceId = castle.getResidenceId(); RESIDENCE_GUARD_MAP.put(residenceId, new CopyOnWriteArrayList<>()); + RESIDENCE_WORKING.put(residenceId, false); ThreadPool.scheduleAtFixedRate(new AggroCheckTask(residenceId), residenceId * 100, 3000); } @@ -126,6 +129,7 @@ public class SiegeGuards extends AbstractNpcAI { final int residenceId = fort.getResidenceId(); RESIDENCE_GUARD_MAP.put(residenceId, new CopyOnWriteArrayList<>()); + RESIDENCE_WORKING.put(residenceId, false); ThreadPool.scheduleAtFixedRate(new AggroCheckTask(residenceId), 900 + ((residenceId - 100) * 100), 3000); } } @@ -142,6 +146,12 @@ public class SiegeGuards extends AbstractNpcAI @Override public void run() { + if (RESIDENCE_WORKING.get(_residenceId)) + { + return; + } + RESIDENCE_WORKING.put(_residenceId, true); + final List guards = RESIDENCE_GUARD_MAP.get(_residenceId); for (Npc guard : guards) { @@ -185,6 +195,8 @@ public class SiegeGuards extends AbstractNpcAI } } } + + RESIDENCE_WORKING.put(_residenceId, false); } } diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/others/SiegeGuards.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/others/SiegeGuards.java index e573f2780b..ef065f0f07 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/others/SiegeGuards.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/others/SiegeGuards.java @@ -93,6 +93,7 @@ public class SiegeGuards extends AbstractNpcAI }; //@formatter:on private static final Map> RESIDENCE_GUARD_MAP = new HashMap<>(); + private static final Map RESIDENCE_WORKING = new HashMap<>(); public SiegeGuards() { @@ -111,6 +112,7 @@ public class SiegeGuards extends AbstractNpcAI // Start task for unknown residences. RESIDENCE_GUARD_MAP.put(0, new CopyOnWriteArrayList<>()); + RESIDENCE_WORKING.put(0, false); ThreadPool.scheduleAtFixedRate(new AggroCheckTask(0), 0, 3000); // Start tasks for castles. @@ -118,6 +120,7 @@ public class SiegeGuards extends AbstractNpcAI { final int residenceId = castle.getResidenceId(); RESIDENCE_GUARD_MAP.put(residenceId, new CopyOnWriteArrayList<>()); + RESIDENCE_WORKING.put(residenceId, false); ThreadPool.scheduleAtFixedRate(new AggroCheckTask(residenceId), residenceId * 100, 3000); } @@ -126,6 +129,7 @@ public class SiegeGuards extends AbstractNpcAI { final int residenceId = fort.getResidenceId(); RESIDENCE_GUARD_MAP.put(residenceId, new CopyOnWriteArrayList<>()); + RESIDENCE_WORKING.put(residenceId, false); ThreadPool.scheduleAtFixedRate(new AggroCheckTask(residenceId), 900 + ((residenceId - 100) * 100), 3000); } } @@ -142,6 +146,12 @@ public class SiegeGuards extends AbstractNpcAI @Override public void run() { + if (RESIDENCE_WORKING.get(_residenceId)) + { + return; + } + RESIDENCE_WORKING.put(_residenceId, true); + final List guards = RESIDENCE_GUARD_MAP.get(_residenceId); for (Npc guard : guards) { @@ -185,6 +195,8 @@ public class SiegeGuards extends AbstractNpcAI } } } + + RESIDENCE_WORKING.put(_residenceId, false); } } diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/others/SiegeGuards.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/others/SiegeGuards.java index e573f2780b..ef065f0f07 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/others/SiegeGuards.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/others/SiegeGuards.java @@ -93,6 +93,7 @@ public class SiegeGuards extends AbstractNpcAI }; //@formatter:on private static final Map> RESIDENCE_GUARD_MAP = new HashMap<>(); + private static final Map RESIDENCE_WORKING = new HashMap<>(); public SiegeGuards() { @@ -111,6 +112,7 @@ public class SiegeGuards extends AbstractNpcAI // Start task for unknown residences. RESIDENCE_GUARD_MAP.put(0, new CopyOnWriteArrayList<>()); + RESIDENCE_WORKING.put(0, false); ThreadPool.scheduleAtFixedRate(new AggroCheckTask(0), 0, 3000); // Start tasks for castles. @@ -118,6 +120,7 @@ public class SiegeGuards extends AbstractNpcAI { final int residenceId = castle.getResidenceId(); RESIDENCE_GUARD_MAP.put(residenceId, new CopyOnWriteArrayList<>()); + RESIDENCE_WORKING.put(residenceId, false); ThreadPool.scheduleAtFixedRate(new AggroCheckTask(residenceId), residenceId * 100, 3000); } @@ -126,6 +129,7 @@ public class SiegeGuards extends AbstractNpcAI { final int residenceId = fort.getResidenceId(); RESIDENCE_GUARD_MAP.put(residenceId, new CopyOnWriteArrayList<>()); + RESIDENCE_WORKING.put(residenceId, false); ThreadPool.scheduleAtFixedRate(new AggroCheckTask(residenceId), 900 + ((residenceId - 100) * 100), 3000); } } @@ -142,6 +146,12 @@ public class SiegeGuards extends AbstractNpcAI @Override public void run() { + if (RESIDENCE_WORKING.get(_residenceId)) + { + return; + } + RESIDENCE_WORKING.put(_residenceId, true); + final List guards = RESIDENCE_GUARD_MAP.get(_residenceId); for (Npc guard : guards) { @@ -185,6 +195,8 @@ public class SiegeGuards extends AbstractNpcAI } } } + + RESIDENCE_WORKING.put(_residenceId, false); } } diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/SiegeGuards.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/SiegeGuards.java index e573f2780b..ef065f0f07 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/SiegeGuards.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/SiegeGuards.java @@ -93,6 +93,7 @@ public class SiegeGuards extends AbstractNpcAI }; //@formatter:on private static final Map> RESIDENCE_GUARD_MAP = new HashMap<>(); + private static final Map RESIDENCE_WORKING = new HashMap<>(); public SiegeGuards() { @@ -111,6 +112,7 @@ public class SiegeGuards extends AbstractNpcAI // Start task for unknown residences. RESIDENCE_GUARD_MAP.put(0, new CopyOnWriteArrayList<>()); + RESIDENCE_WORKING.put(0, false); ThreadPool.scheduleAtFixedRate(new AggroCheckTask(0), 0, 3000); // Start tasks for castles. @@ -118,6 +120,7 @@ public class SiegeGuards extends AbstractNpcAI { final int residenceId = castle.getResidenceId(); RESIDENCE_GUARD_MAP.put(residenceId, new CopyOnWriteArrayList<>()); + RESIDENCE_WORKING.put(residenceId, false); ThreadPool.scheduleAtFixedRate(new AggroCheckTask(residenceId), residenceId * 100, 3000); } @@ -126,6 +129,7 @@ public class SiegeGuards extends AbstractNpcAI { final int residenceId = fort.getResidenceId(); RESIDENCE_GUARD_MAP.put(residenceId, new CopyOnWriteArrayList<>()); + RESIDENCE_WORKING.put(residenceId, false); ThreadPool.scheduleAtFixedRate(new AggroCheckTask(residenceId), 900 + ((residenceId - 100) * 100), 3000); } } @@ -142,6 +146,12 @@ public class SiegeGuards extends AbstractNpcAI @Override public void run() { + if (RESIDENCE_WORKING.get(_residenceId)) + { + return; + } + RESIDENCE_WORKING.put(_residenceId, true); + final List guards = RESIDENCE_GUARD_MAP.get(_residenceId); for (Npc guard : guards) { @@ -185,6 +195,8 @@ public class SiegeGuards extends AbstractNpcAI } } } + + RESIDENCE_WORKING.put(_residenceId, false); } } diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/others/SiegeGuards.java b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/others/SiegeGuards.java index 5a9790a33f..3e8b42affd 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/others/SiegeGuards.java +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/others/SiegeGuards.java @@ -93,6 +93,7 @@ public class SiegeGuards extends AbstractNpcAI }; //@formatter:on private static final Map> RESIDENCE_GUARD_MAP = new HashMap<>(); + private static final Map RESIDENCE_WORKING = new HashMap<>(); public SiegeGuards() { @@ -111,6 +112,7 @@ public class SiegeGuards extends AbstractNpcAI // Start task for unknown residences. RESIDENCE_GUARD_MAP.put(0, new CopyOnWriteArrayList<>()); + RESIDENCE_WORKING.put(0, false); ThreadPool.scheduleAtFixedRate(new AggroCheckTask(0), 0, 3000); // Start tasks for castles. @@ -118,6 +120,7 @@ public class SiegeGuards extends AbstractNpcAI { final int residenceId = castle.getResidenceId(); RESIDENCE_GUARD_MAP.put(residenceId, new CopyOnWriteArrayList<>()); + RESIDENCE_WORKING.put(residenceId, false); ThreadPool.scheduleAtFixedRate(new AggroCheckTask(residenceId), residenceId * 100, 3000); } @@ -126,6 +129,7 @@ public class SiegeGuards extends AbstractNpcAI { final int residenceId = fort.getResidenceId(); RESIDENCE_GUARD_MAP.put(residenceId, new CopyOnWriteArrayList<>()); + RESIDENCE_WORKING.put(residenceId, false); ThreadPool.scheduleAtFixedRate(new AggroCheckTask(residenceId), 900 + ((residenceId - 100) * 100), 3000); } } @@ -142,6 +146,12 @@ public class SiegeGuards extends AbstractNpcAI @Override public void run() { + if (RESIDENCE_WORKING.get(_residenceId)) + { + return; + } + RESIDENCE_WORKING.put(_residenceId, true); + final List guards = RESIDENCE_GUARD_MAP.get(_residenceId); for (Npc guard : guards) { @@ -185,6 +195,8 @@ public class SiegeGuards extends AbstractNpcAI } } } + + RESIDENCE_WORKING.put(_residenceId, false); } } diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/others/SiegeGuards.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/others/SiegeGuards.java index 5a9790a33f..3e8b42affd 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/others/SiegeGuards.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/others/SiegeGuards.java @@ -93,6 +93,7 @@ public class SiegeGuards extends AbstractNpcAI }; //@formatter:on private static final Map> RESIDENCE_GUARD_MAP = new HashMap<>(); + private static final Map RESIDENCE_WORKING = new HashMap<>(); public SiegeGuards() { @@ -111,6 +112,7 @@ public class SiegeGuards extends AbstractNpcAI // Start task for unknown residences. RESIDENCE_GUARD_MAP.put(0, new CopyOnWriteArrayList<>()); + RESIDENCE_WORKING.put(0, false); ThreadPool.scheduleAtFixedRate(new AggroCheckTask(0), 0, 3000); // Start tasks for castles. @@ -118,6 +120,7 @@ public class SiegeGuards extends AbstractNpcAI { final int residenceId = castle.getResidenceId(); RESIDENCE_GUARD_MAP.put(residenceId, new CopyOnWriteArrayList<>()); + RESIDENCE_WORKING.put(residenceId, false); ThreadPool.scheduleAtFixedRate(new AggroCheckTask(residenceId), residenceId * 100, 3000); } @@ -126,6 +129,7 @@ public class SiegeGuards extends AbstractNpcAI { final int residenceId = fort.getResidenceId(); RESIDENCE_GUARD_MAP.put(residenceId, new CopyOnWriteArrayList<>()); + RESIDENCE_WORKING.put(residenceId, false); ThreadPool.scheduleAtFixedRate(new AggroCheckTask(residenceId), 900 + ((residenceId - 100) * 100), 3000); } } @@ -142,6 +146,12 @@ public class SiegeGuards extends AbstractNpcAI @Override public void run() { + if (RESIDENCE_WORKING.get(_residenceId)) + { + return; + } + RESIDENCE_WORKING.put(_residenceId, true); + final List guards = RESIDENCE_GUARD_MAP.get(_residenceId); for (Npc guard : guards) { @@ -185,6 +195,8 @@ public class SiegeGuards extends AbstractNpcAI } } } + + RESIDENCE_WORKING.put(_residenceId, false); } } diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/others/SiegeGuards.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/others/SiegeGuards.java index 9a933f4e2c..3f3260f955 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/others/SiegeGuards.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/others/SiegeGuards.java @@ -68,6 +68,7 @@ public class SiegeGuards extends AbstractNpcAI }; //@formatter:on private static final Map> RESIDENCE_GUARD_MAP = new HashMap<>(); + private static final Map RESIDENCE_WORKING = new HashMap<>(); public SiegeGuards() { @@ -83,6 +84,7 @@ public class SiegeGuards extends AbstractNpcAI // Start task for unknown residences. RESIDENCE_GUARD_MAP.put(0, new CopyOnWriteArrayList<>()); + RESIDENCE_WORKING.put(0, false); ThreadPool.scheduleAtFixedRate(new AggroCheckTask(0), 0, 3000); // Start tasks for castles. @@ -90,6 +92,7 @@ public class SiegeGuards extends AbstractNpcAI { final int residenceId = castle.getResidenceId(); RESIDENCE_GUARD_MAP.put(residenceId, new CopyOnWriteArrayList<>()); + RESIDENCE_WORKING.put(residenceId, false); ThreadPool.scheduleAtFixedRate(new AggroCheckTask(residenceId), residenceId * 100, 3000); } } @@ -106,6 +109,12 @@ public class SiegeGuards extends AbstractNpcAI @Override public void run() { + if (RESIDENCE_WORKING.get(_residenceId)) + { + return; + } + RESIDENCE_WORKING.put(_residenceId, true); + final List guards = RESIDENCE_GUARD_MAP.get(_residenceId); for (Npc guard : guards) { @@ -149,6 +158,8 @@ public class SiegeGuards extends AbstractNpcAI } } } + + RESIDENCE_WORKING.put(_residenceId, false); } } diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/ai/others/SiegeGuards.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/ai/others/SiegeGuards.java index 9a933f4e2c..3f3260f955 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/ai/others/SiegeGuards.java +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/ai/others/SiegeGuards.java @@ -68,6 +68,7 @@ public class SiegeGuards extends AbstractNpcAI }; //@formatter:on private static final Map> RESIDENCE_GUARD_MAP = new HashMap<>(); + private static final Map RESIDENCE_WORKING = new HashMap<>(); public SiegeGuards() { @@ -83,6 +84,7 @@ public class SiegeGuards extends AbstractNpcAI // Start task for unknown residences. RESIDENCE_GUARD_MAP.put(0, new CopyOnWriteArrayList<>()); + RESIDENCE_WORKING.put(0, false); ThreadPool.scheduleAtFixedRate(new AggroCheckTask(0), 0, 3000); // Start tasks for castles. @@ -90,6 +92,7 @@ public class SiegeGuards extends AbstractNpcAI { final int residenceId = castle.getResidenceId(); RESIDENCE_GUARD_MAP.put(residenceId, new CopyOnWriteArrayList<>()); + RESIDENCE_WORKING.put(residenceId, false); ThreadPool.scheduleAtFixedRate(new AggroCheckTask(residenceId), residenceId * 100, 3000); } } @@ -106,6 +109,12 @@ public class SiegeGuards extends AbstractNpcAI @Override public void run() { + if (RESIDENCE_WORKING.get(_residenceId)) + { + return; + } + RESIDENCE_WORKING.put(_residenceId, true); + final List guards = RESIDENCE_GUARD_MAP.get(_residenceId); for (Npc guard : guards) { @@ -149,6 +158,8 @@ public class SiegeGuards extends AbstractNpcAI } } } + + RESIDENCE_WORKING.put(_residenceId, false); } } diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/ai/others/SiegeGuards.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/ai/others/SiegeGuards.java index 9a933f4e2c..3f3260f955 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/ai/others/SiegeGuards.java +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/ai/others/SiegeGuards.java @@ -68,6 +68,7 @@ public class SiegeGuards extends AbstractNpcAI }; //@formatter:on private static final Map> RESIDENCE_GUARD_MAP = new HashMap<>(); + private static final Map RESIDENCE_WORKING = new HashMap<>(); public SiegeGuards() { @@ -83,6 +84,7 @@ public class SiegeGuards extends AbstractNpcAI // Start task for unknown residences. RESIDENCE_GUARD_MAP.put(0, new CopyOnWriteArrayList<>()); + RESIDENCE_WORKING.put(0, false); ThreadPool.scheduleAtFixedRate(new AggroCheckTask(0), 0, 3000); // Start tasks for castles. @@ -90,6 +92,7 @@ public class SiegeGuards extends AbstractNpcAI { final int residenceId = castle.getResidenceId(); RESIDENCE_GUARD_MAP.put(residenceId, new CopyOnWriteArrayList<>()); + RESIDENCE_WORKING.put(residenceId, false); ThreadPool.scheduleAtFixedRate(new AggroCheckTask(residenceId), residenceId * 100, 3000); } } @@ -106,6 +109,12 @@ public class SiegeGuards extends AbstractNpcAI @Override public void run() { + if (RESIDENCE_WORKING.get(_residenceId)) + { + return; + } + RESIDENCE_WORKING.put(_residenceId, true); + final List guards = RESIDENCE_GUARD_MAP.get(_residenceId); for (Npc guard : guards) { @@ -149,6 +158,8 @@ public class SiegeGuards extends AbstractNpcAI } } } + + RESIDENCE_WORKING.put(_residenceId, false); } } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/ai/others/SiegeGuards.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/ai/others/SiegeGuards.java index 9a933f4e2c..3f3260f955 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/ai/others/SiegeGuards.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/ai/others/SiegeGuards.java @@ -68,6 +68,7 @@ public class SiegeGuards extends AbstractNpcAI }; //@formatter:on private static final Map> RESIDENCE_GUARD_MAP = new HashMap<>(); + private static final Map RESIDENCE_WORKING = new HashMap<>(); public SiegeGuards() { @@ -83,6 +84,7 @@ public class SiegeGuards extends AbstractNpcAI // Start task for unknown residences. RESIDENCE_GUARD_MAP.put(0, new CopyOnWriteArrayList<>()); + RESIDENCE_WORKING.put(0, false); ThreadPool.scheduleAtFixedRate(new AggroCheckTask(0), 0, 3000); // Start tasks for castles. @@ -90,6 +92,7 @@ public class SiegeGuards extends AbstractNpcAI { final int residenceId = castle.getResidenceId(); RESIDENCE_GUARD_MAP.put(residenceId, new CopyOnWriteArrayList<>()); + RESIDENCE_WORKING.put(residenceId, false); ThreadPool.scheduleAtFixedRate(new AggroCheckTask(residenceId), residenceId * 100, 3000); } } @@ -106,6 +109,12 @@ public class SiegeGuards extends AbstractNpcAI @Override public void run() { + if (RESIDENCE_WORKING.get(_residenceId)) + { + return; + } + RESIDENCE_WORKING.put(_residenceId, true); + final List guards = RESIDENCE_GUARD_MAP.get(_residenceId); for (Npc guard : guards) { @@ -149,6 +158,8 @@ public class SiegeGuards extends AbstractNpcAI } } } + + RESIDENCE_WORKING.put(_residenceId, false); } } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/ai/others/SiegeGuards.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/ai/others/SiegeGuards.java index 9a933f4e2c..3f3260f955 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/ai/others/SiegeGuards.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/ai/others/SiegeGuards.java @@ -68,6 +68,7 @@ public class SiegeGuards extends AbstractNpcAI }; //@formatter:on private static final Map> RESIDENCE_GUARD_MAP = new HashMap<>(); + private static final Map RESIDENCE_WORKING = new HashMap<>(); public SiegeGuards() { @@ -83,6 +84,7 @@ public class SiegeGuards extends AbstractNpcAI // Start task for unknown residences. RESIDENCE_GUARD_MAP.put(0, new CopyOnWriteArrayList<>()); + RESIDENCE_WORKING.put(0, false); ThreadPool.scheduleAtFixedRate(new AggroCheckTask(0), 0, 3000); // Start tasks for castles. @@ -90,6 +92,7 @@ public class SiegeGuards extends AbstractNpcAI { final int residenceId = castle.getResidenceId(); RESIDENCE_GUARD_MAP.put(residenceId, new CopyOnWriteArrayList<>()); + RESIDENCE_WORKING.put(residenceId, false); ThreadPool.scheduleAtFixedRate(new AggroCheckTask(residenceId), residenceId * 100, 3000); } } @@ -106,6 +109,12 @@ public class SiegeGuards extends AbstractNpcAI @Override public void run() { + if (RESIDENCE_WORKING.get(_residenceId)) + { + return; + } + RESIDENCE_WORKING.put(_residenceId, true); + final List guards = RESIDENCE_GUARD_MAP.get(_residenceId); for (Npc guard : guards) { @@ -149,6 +158,8 @@ public class SiegeGuards extends AbstractNpcAI } } } + + RESIDENCE_WORKING.put(_residenceId, false); } } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/ai/others/SiegeGuards.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/ai/others/SiegeGuards.java index 9a933f4e2c..3f3260f955 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/ai/others/SiegeGuards.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/ai/others/SiegeGuards.java @@ -68,6 +68,7 @@ public class SiegeGuards extends AbstractNpcAI }; //@formatter:on private static final Map> RESIDENCE_GUARD_MAP = new HashMap<>(); + private static final Map RESIDENCE_WORKING = new HashMap<>(); public SiegeGuards() { @@ -83,6 +84,7 @@ public class SiegeGuards extends AbstractNpcAI // Start task for unknown residences. RESIDENCE_GUARD_MAP.put(0, new CopyOnWriteArrayList<>()); + RESIDENCE_WORKING.put(0, false); ThreadPool.scheduleAtFixedRate(new AggroCheckTask(0), 0, 3000); // Start tasks for castles. @@ -90,6 +92,7 @@ public class SiegeGuards extends AbstractNpcAI { final int residenceId = castle.getResidenceId(); RESIDENCE_GUARD_MAP.put(residenceId, new CopyOnWriteArrayList<>()); + RESIDENCE_WORKING.put(residenceId, false); ThreadPool.scheduleAtFixedRate(new AggroCheckTask(residenceId), residenceId * 100, 3000); } } @@ -106,6 +109,12 @@ public class SiegeGuards extends AbstractNpcAI @Override public void run() { + if (RESIDENCE_WORKING.get(_residenceId)) + { + return; + } + RESIDENCE_WORKING.put(_residenceId, true); + final List guards = RESIDENCE_GUARD_MAP.get(_residenceId); for (Npc guard : guards) { @@ -149,6 +158,8 @@ public class SiegeGuards extends AbstractNpcAI } } } + + RESIDENCE_WORKING.put(_residenceId, false); } } diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/ai/others/SiegeGuards.java b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/ai/others/SiegeGuards.java index 9a933f4e2c..3f3260f955 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/ai/others/SiegeGuards.java +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/ai/others/SiegeGuards.java @@ -68,6 +68,7 @@ public class SiegeGuards extends AbstractNpcAI }; //@formatter:on private static final Map> RESIDENCE_GUARD_MAP = new HashMap<>(); + private static final Map RESIDENCE_WORKING = new HashMap<>(); public SiegeGuards() { @@ -83,6 +84,7 @@ public class SiegeGuards extends AbstractNpcAI // Start task for unknown residences. RESIDENCE_GUARD_MAP.put(0, new CopyOnWriteArrayList<>()); + RESIDENCE_WORKING.put(0, false); ThreadPool.scheduleAtFixedRate(new AggroCheckTask(0), 0, 3000); // Start tasks for castles. @@ -90,6 +92,7 @@ public class SiegeGuards extends AbstractNpcAI { final int residenceId = castle.getResidenceId(); RESIDENCE_GUARD_MAP.put(residenceId, new CopyOnWriteArrayList<>()); + RESIDENCE_WORKING.put(residenceId, false); ThreadPool.scheduleAtFixedRate(new AggroCheckTask(residenceId), residenceId * 100, 3000); } } @@ -106,6 +109,12 @@ public class SiegeGuards extends AbstractNpcAI @Override public void run() { + if (RESIDENCE_WORKING.get(_residenceId)) + { + return; + } + RESIDENCE_WORKING.put(_residenceId, true); + final List guards = RESIDENCE_GUARD_MAP.get(_residenceId); for (Npc guard : guards) { @@ -149,6 +158,8 @@ public class SiegeGuards extends AbstractNpcAI } } } + + RESIDENCE_WORKING.put(_residenceId, false); } }