From 56872c86934323959473735c0d5e51f623f4b437 Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Sun, 7 Jun 2020 21:53:21 +0000 Subject: [PATCH] Addition of AggroDistanceCheckRaidRange configuration. --- L2J_Mobius_1.0_Ertheia/dist/game/config/NPC.ini | 5 +++++ L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/Config.java | 2 ++ .../java/org/l2jmobius/gameserver/ai/AttackableAI.java | 4 ++-- L2J_Mobius_2.5_Underground/dist/game/config/NPC.ini | 5 +++++ L2J_Mobius_2.5_Underground/java/org/l2jmobius/Config.java | 2 ++ .../java/org/l2jmobius/gameserver/ai/AttackableAI.java | 4 ++-- L2J_Mobius_3.0_Helios/dist/game/config/NPC.ini | 5 +++++ L2J_Mobius_3.0_Helios/java/org/l2jmobius/Config.java | 2 ++ .../java/org/l2jmobius/gameserver/ai/AttackableAI.java | 4 ++-- L2J_Mobius_4.0_GrandCrusade/dist/game/config/NPC.ini | 5 +++++ L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/Config.java | 2 ++ .../java/org/l2jmobius/gameserver/ai/AttackableAI.java | 4 ++-- L2J_Mobius_5.0_Salvation/dist/game/config/NPC.ini | 5 +++++ L2J_Mobius_5.0_Salvation/java/org/l2jmobius/Config.java | 2 ++ .../java/org/l2jmobius/gameserver/ai/AttackableAI.java | 4 ++-- L2J_Mobius_5.5_EtinasFate/dist/game/config/NPC.ini | 5 +++++ L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/Config.java | 2 ++ .../java/org/l2jmobius/gameserver/ai/AttackableAI.java | 4 ++-- L2J_Mobius_6.0_Fafurion/dist/game/config/NPC.ini | 5 +++++ L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/Config.java | 2 ++ .../java/org/l2jmobius/gameserver/ai/AttackableAI.java | 4 ++-- L2J_Mobius_7.0_PreludeOfWar/dist/game/config/NPC.ini | 5 +++++ L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/Config.java | 2 ++ .../java/org/l2jmobius/gameserver/ai/AttackableAI.java | 4 ++-- L2J_Mobius_C6_Interlude/dist/game/config/main/General.ini | 5 +++++ L2J_Mobius_C6_Interlude/java/org/l2jmobius/Config.java | 2 ++ .../java/org/l2jmobius/gameserver/ai/AttackableAI.java | 5 +++-- L2J_Mobius_CT_2.4_Epilogue/dist/game/config/NPC.ini | 5 +++++ L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/Config.java | 2 ++ .../java/org/l2jmobius/gameserver/ai/AttackableAI.java | 4 ++-- L2J_Mobius_CT_2.6_HighFive/dist/game/config/NPC.ini | 5 +++++ L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/Config.java | 2 ++ .../java/org/l2jmobius/gameserver/ai/AttackableAI.java | 4 ++-- L2J_Mobius_Classic_2.0_Saviors/dist/game/config/NPC.ini | 5 +++++ .../java/org/l2jmobius/Config.java | 2 ++ .../java/org/l2jmobius/gameserver/ai/AttackableAI.java | 4 ++-- L2J_Mobius_Classic_2.1_Zaken/dist/game/config/NPC.ini | 5 +++++ L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/Config.java | 2 ++ .../java/org/l2jmobius/gameserver/ai/AttackableAI.java | 4 ++-- L2J_Mobius_Classic_2.2_Antharas/dist/game/config/NPC.ini | 5 +++++ .../java/org/l2jmobius/Config.java | 2 ++ .../java/org/l2jmobius/gameserver/ai/AttackableAI.java | 4 ++-- L2J_Mobius_Classic_2.3_SevenSigns/dist/game/config/NPC.ini | 5 +++++ .../java/org/l2jmobius/Config.java | 2 ++ .../java/org/l2jmobius/gameserver/ai/AttackableAI.java | 4 ++-- .../dist/game/config/NPC.ini | 5 +++++ .../java/org/l2jmobius/Config.java | 2 ++ .../java/org/l2jmobius/gameserver/ai/AttackableAI.java | 4 ++-- L2J_Mobius_Classic_3.0_TheKamael/dist/game/config/NPC.ini | 5 +++++ .../java/org/l2jmobius/Config.java | 2 ++ .../java/org/l2jmobius/gameserver/ai/AttackableAI.java | 4 ++-- L2J_Mobius_Classic_Interlude/dist/game/config/NPC.ini | 5 +++++ L2J_Mobius_Classic_Interlude/java/org/l2jmobius/Config.java | 2 ++ .../java/org/l2jmobius/gameserver/ai/AttackableAI.java | 4 ++-- 54 files changed, 163 insertions(+), 36 deletions(-) diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/config/NPC.ini b/L2J_Mobius_1.0_Ertheia/dist/game/config/NPC.ini index d0ea1f605d..36f89eaf10 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/config/NPC.ini +++ b/L2J_Mobius_1.0_Ertheia/dist/game/config/NPC.ini @@ -99,9 +99,14 @@ AggroDistanceCheckEnabled = False AggroDistanceCheckRange = 1500 # Use maximum aggro distance check for raids. +# Grandbosses are excluded. # Default: False AggroDistanceCheckRaids = False +# Maximum distance raids can be pulled away from spawn. +# Default: 3000 +AggroDistanceCheckRaidRange = 3000 + # Use maximum aggro distance check in instances. # Default: False AggroDistanceCheckInstances = False diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/Config.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/Config.java index da1ed5d4b8..eb4e75febe 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/Config.java @@ -629,6 +629,7 @@ public class Config public static boolean AGGRO_DISTANCE_CHECK_ENABLED; public static int AGGRO_DISTANCE_CHECK_RANGE; public static boolean AGGRO_DISTANCE_CHECK_RAIDS; + public static int AGGRO_DISTANCE_CHECK_RAID_RANGE; public static boolean AGGRO_DISTANCE_CHECK_INSTANCES; public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE; public static boolean GUARD_ATTACK_AGGRO_MOB; @@ -2092,6 +2093,7 @@ public class Config AGGRO_DISTANCE_CHECK_ENABLED = NPC.getBoolean("AggroDistanceCheckEnabled", true); AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500); AGGRO_DISTANCE_CHECK_RAIDS = NPC.getBoolean("AggroDistanceCheckRaids", false); + AGGRO_DISTANCE_CHECK_RAID_RANGE = NPC.getInt("AggroDistanceCheckRaidRange", 3000); AGGRO_DISTANCE_CHECK_INSTANCES = NPC.getBoolean("AggroDistanceCheckInstances", false); AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true); GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false); diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/ai/AttackableAI.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/ai/AttackableAI.java index a8cc3a55c8..2f4d9f423c 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/ai/AttackableAI.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/ai/AttackableAI.java @@ -601,10 +601,10 @@ public class AttackableAI extends CreatureAI return; } - if (Config.AGGRO_DISTANCE_CHECK_ENABLED && npc.isMonster() && !npc.isWalker()) + if (Config.AGGRO_DISTANCE_CHECK_ENABLED && npc.isMonster() && !npc.isWalker() && !(npc instanceof GrandBossInstance)) { final Spawn spawn = npc.getSpawn(); - if ((spawn != null) && (npc.calculateDistance3D(spawn.getLocation()) > Config.AGGRO_DISTANCE_CHECK_RANGE)) + if ((spawn != null) && (npc.calculateDistance3D(spawn.getLocation()) > (npc.isRaid() ? Config.AGGRO_DISTANCE_CHECK_RAID_RANGE : Config.AGGRO_DISTANCE_CHECK_RANGE))) { if ((Config.AGGRO_DISTANCE_CHECK_RAIDS || !npc.isRaid()) && (Config.AGGRO_DISTANCE_CHECK_INSTANCES || !npc.isInInstance())) { diff --git a/L2J_Mobius_2.5_Underground/dist/game/config/NPC.ini b/L2J_Mobius_2.5_Underground/dist/game/config/NPC.ini index d0ea1f605d..36f89eaf10 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/config/NPC.ini +++ b/L2J_Mobius_2.5_Underground/dist/game/config/NPC.ini @@ -99,9 +99,14 @@ AggroDistanceCheckEnabled = False AggroDistanceCheckRange = 1500 # Use maximum aggro distance check for raids. +# Grandbosses are excluded. # Default: False AggroDistanceCheckRaids = False +# Maximum distance raids can be pulled away from spawn. +# Default: 3000 +AggroDistanceCheckRaidRange = 3000 + # Use maximum aggro distance check in instances. # Default: False AggroDistanceCheckInstances = False diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/Config.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/Config.java index 2d305a642f..321126099b 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/Config.java @@ -636,6 +636,7 @@ public class Config public static boolean AGGRO_DISTANCE_CHECK_ENABLED; public static int AGGRO_DISTANCE_CHECK_RANGE; public static boolean AGGRO_DISTANCE_CHECK_RAIDS; + public static int AGGRO_DISTANCE_CHECK_RAID_RANGE; public static boolean AGGRO_DISTANCE_CHECK_INSTANCES; public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE; public static boolean GUARD_ATTACK_AGGRO_MOB; @@ -2109,6 +2110,7 @@ public class Config AGGRO_DISTANCE_CHECK_ENABLED = NPC.getBoolean("AggroDistanceCheckEnabled", true); AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500); AGGRO_DISTANCE_CHECK_RAIDS = NPC.getBoolean("AggroDistanceCheckRaids", false); + AGGRO_DISTANCE_CHECK_RAID_RANGE = NPC.getInt("AggroDistanceCheckRaidRange", 3000); AGGRO_DISTANCE_CHECK_INSTANCES = NPC.getBoolean("AggroDistanceCheckInstances", false); AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true); GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false); diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/ai/AttackableAI.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/ai/AttackableAI.java index a8cc3a55c8..2f4d9f423c 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/ai/AttackableAI.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/ai/AttackableAI.java @@ -601,10 +601,10 @@ public class AttackableAI extends CreatureAI return; } - if (Config.AGGRO_DISTANCE_CHECK_ENABLED && npc.isMonster() && !npc.isWalker()) + if (Config.AGGRO_DISTANCE_CHECK_ENABLED && npc.isMonster() && !npc.isWalker() && !(npc instanceof GrandBossInstance)) { final Spawn spawn = npc.getSpawn(); - if ((spawn != null) && (npc.calculateDistance3D(spawn.getLocation()) > Config.AGGRO_DISTANCE_CHECK_RANGE)) + if ((spawn != null) && (npc.calculateDistance3D(spawn.getLocation()) > (npc.isRaid() ? Config.AGGRO_DISTANCE_CHECK_RAID_RANGE : Config.AGGRO_DISTANCE_CHECK_RANGE))) { if ((Config.AGGRO_DISTANCE_CHECK_RAIDS || !npc.isRaid()) && (Config.AGGRO_DISTANCE_CHECK_INSTANCES || !npc.isInInstance())) { diff --git a/L2J_Mobius_3.0_Helios/dist/game/config/NPC.ini b/L2J_Mobius_3.0_Helios/dist/game/config/NPC.ini index d0ea1f605d..36f89eaf10 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/config/NPC.ini +++ b/L2J_Mobius_3.0_Helios/dist/game/config/NPC.ini @@ -99,9 +99,14 @@ AggroDistanceCheckEnabled = False AggroDistanceCheckRange = 1500 # Use maximum aggro distance check for raids. +# Grandbosses are excluded. # Default: False AggroDistanceCheckRaids = False +# Maximum distance raids can be pulled away from spawn. +# Default: 3000 +AggroDistanceCheckRaidRange = 3000 + # Use maximum aggro distance check in instances. # Default: False AggroDistanceCheckInstances = False diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/Config.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/Config.java index 3f5f100486..e96d3e555a 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/Config.java @@ -636,6 +636,7 @@ public class Config public static boolean AGGRO_DISTANCE_CHECK_ENABLED; public static int AGGRO_DISTANCE_CHECK_RANGE; public static boolean AGGRO_DISTANCE_CHECK_RAIDS; + public static int AGGRO_DISTANCE_CHECK_RAID_RANGE; public static boolean AGGRO_DISTANCE_CHECK_INSTANCES; public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE; public static boolean GUARD_ATTACK_AGGRO_MOB; @@ -2122,6 +2123,7 @@ public class Config AGGRO_DISTANCE_CHECK_ENABLED = NPC.getBoolean("AggroDistanceCheckEnabled", true); AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500); AGGRO_DISTANCE_CHECK_RAIDS = NPC.getBoolean("AggroDistanceCheckRaids", false); + AGGRO_DISTANCE_CHECK_RAID_RANGE = NPC.getInt("AggroDistanceCheckRaidRange", 3000); AGGRO_DISTANCE_CHECK_INSTANCES = NPC.getBoolean("AggroDistanceCheckInstances", false); AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true); GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false); diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/ai/AttackableAI.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/ai/AttackableAI.java index a8cc3a55c8..2f4d9f423c 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/ai/AttackableAI.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/ai/AttackableAI.java @@ -601,10 +601,10 @@ public class AttackableAI extends CreatureAI return; } - if (Config.AGGRO_DISTANCE_CHECK_ENABLED && npc.isMonster() && !npc.isWalker()) + if (Config.AGGRO_DISTANCE_CHECK_ENABLED && npc.isMonster() && !npc.isWalker() && !(npc instanceof GrandBossInstance)) { final Spawn spawn = npc.getSpawn(); - if ((spawn != null) && (npc.calculateDistance3D(spawn.getLocation()) > Config.AGGRO_DISTANCE_CHECK_RANGE)) + if ((spawn != null) && (npc.calculateDistance3D(spawn.getLocation()) > (npc.isRaid() ? Config.AGGRO_DISTANCE_CHECK_RAID_RANGE : Config.AGGRO_DISTANCE_CHECK_RANGE))) { if ((Config.AGGRO_DISTANCE_CHECK_RAIDS || !npc.isRaid()) && (Config.AGGRO_DISTANCE_CHECK_INSTANCES || !npc.isInInstance())) { diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/config/NPC.ini b/L2J_Mobius_4.0_GrandCrusade/dist/game/config/NPC.ini index d0ea1f605d..36f89eaf10 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/config/NPC.ini +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/config/NPC.ini @@ -99,9 +99,14 @@ AggroDistanceCheckEnabled = False AggroDistanceCheckRange = 1500 # Use maximum aggro distance check for raids. +# Grandbosses are excluded. # Default: False AggroDistanceCheckRaids = False +# Maximum distance raids can be pulled away from spawn. +# Default: 3000 +AggroDistanceCheckRaidRange = 3000 + # Use maximum aggro distance check in instances. # Default: False AggroDistanceCheckInstances = False diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/Config.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/Config.java index 3d6eb25bfe..8593cec99a 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/Config.java @@ -623,6 +623,7 @@ public class Config public static boolean AGGRO_DISTANCE_CHECK_ENABLED; public static int AGGRO_DISTANCE_CHECK_RANGE; public static boolean AGGRO_DISTANCE_CHECK_RAIDS; + public static int AGGRO_DISTANCE_CHECK_RAID_RANGE; public static boolean AGGRO_DISTANCE_CHECK_INSTANCES; public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE; public static boolean GUARD_ATTACK_AGGRO_MOB; @@ -2102,6 +2103,7 @@ public class Config AGGRO_DISTANCE_CHECK_ENABLED = NPC.getBoolean("AggroDistanceCheckEnabled", true); AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500); AGGRO_DISTANCE_CHECK_RAIDS = NPC.getBoolean("AggroDistanceCheckRaids", false); + AGGRO_DISTANCE_CHECK_RAID_RANGE = NPC.getInt("AggroDistanceCheckRaidRange", 3000); AGGRO_DISTANCE_CHECK_INSTANCES = NPC.getBoolean("AggroDistanceCheckInstances", false); AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true); GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false); diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/ai/AttackableAI.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/ai/AttackableAI.java index a8cc3a55c8..2f4d9f423c 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/ai/AttackableAI.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/ai/AttackableAI.java @@ -601,10 +601,10 @@ public class AttackableAI extends CreatureAI return; } - if (Config.AGGRO_DISTANCE_CHECK_ENABLED && npc.isMonster() && !npc.isWalker()) + if (Config.AGGRO_DISTANCE_CHECK_ENABLED && npc.isMonster() && !npc.isWalker() && !(npc instanceof GrandBossInstance)) { final Spawn spawn = npc.getSpawn(); - if ((spawn != null) && (npc.calculateDistance3D(spawn.getLocation()) > Config.AGGRO_DISTANCE_CHECK_RANGE)) + if ((spawn != null) && (npc.calculateDistance3D(spawn.getLocation()) > (npc.isRaid() ? Config.AGGRO_DISTANCE_CHECK_RAID_RANGE : Config.AGGRO_DISTANCE_CHECK_RANGE))) { if ((Config.AGGRO_DISTANCE_CHECK_RAIDS || !npc.isRaid()) && (Config.AGGRO_DISTANCE_CHECK_INSTANCES || !npc.isInInstance())) { diff --git a/L2J_Mobius_5.0_Salvation/dist/game/config/NPC.ini b/L2J_Mobius_5.0_Salvation/dist/game/config/NPC.ini index d0ea1f605d..36f89eaf10 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/config/NPC.ini +++ b/L2J_Mobius_5.0_Salvation/dist/game/config/NPC.ini @@ -99,9 +99,14 @@ AggroDistanceCheckEnabled = False AggroDistanceCheckRange = 1500 # Use maximum aggro distance check for raids. +# Grandbosses are excluded. # Default: False AggroDistanceCheckRaids = False +# Maximum distance raids can be pulled away from spawn. +# Default: 3000 +AggroDistanceCheckRaidRange = 3000 + # Use maximum aggro distance check in instances. # Default: False AggroDistanceCheckInstances = False diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/Config.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/Config.java index ba4a34d829..239c70ad6a 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/Config.java @@ -618,6 +618,7 @@ public class Config public static boolean AGGRO_DISTANCE_CHECK_ENABLED; public static int AGGRO_DISTANCE_CHECK_RANGE; public static boolean AGGRO_DISTANCE_CHECK_RAIDS; + public static int AGGRO_DISTANCE_CHECK_RAID_RANGE; public static boolean AGGRO_DISTANCE_CHECK_INSTANCES; public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE; public static boolean GUARD_ATTACK_AGGRO_MOB; @@ -2103,6 +2104,7 @@ public class Config AGGRO_DISTANCE_CHECK_ENABLED = NPC.getBoolean("AggroDistanceCheckEnabled", true); AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500); AGGRO_DISTANCE_CHECK_RAIDS = NPC.getBoolean("AggroDistanceCheckRaids", false); + AGGRO_DISTANCE_CHECK_RAID_RANGE = NPC.getInt("AggroDistanceCheckRaidRange", 3000); AGGRO_DISTANCE_CHECK_INSTANCES = NPC.getBoolean("AggroDistanceCheckInstances", false); AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true); GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false); diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/ai/AttackableAI.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/ai/AttackableAI.java index a8cc3a55c8..2f4d9f423c 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/ai/AttackableAI.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/ai/AttackableAI.java @@ -601,10 +601,10 @@ public class AttackableAI extends CreatureAI return; } - if (Config.AGGRO_DISTANCE_CHECK_ENABLED && npc.isMonster() && !npc.isWalker()) + if (Config.AGGRO_DISTANCE_CHECK_ENABLED && npc.isMonster() && !npc.isWalker() && !(npc instanceof GrandBossInstance)) { final Spawn spawn = npc.getSpawn(); - if ((spawn != null) && (npc.calculateDistance3D(spawn.getLocation()) > Config.AGGRO_DISTANCE_CHECK_RANGE)) + if ((spawn != null) && (npc.calculateDistance3D(spawn.getLocation()) > (npc.isRaid() ? Config.AGGRO_DISTANCE_CHECK_RAID_RANGE : Config.AGGRO_DISTANCE_CHECK_RANGE))) { if ((Config.AGGRO_DISTANCE_CHECK_RAIDS || !npc.isRaid()) && (Config.AGGRO_DISTANCE_CHECK_INSTANCES || !npc.isInInstance())) { diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/config/NPC.ini b/L2J_Mobius_5.5_EtinasFate/dist/game/config/NPC.ini index d0ea1f605d..36f89eaf10 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/config/NPC.ini +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/config/NPC.ini @@ -99,9 +99,14 @@ AggroDistanceCheckEnabled = False AggroDistanceCheckRange = 1500 # Use maximum aggro distance check for raids. +# Grandbosses are excluded. # Default: False AggroDistanceCheckRaids = False +# Maximum distance raids can be pulled away from spawn. +# Default: 3000 +AggroDistanceCheckRaidRange = 3000 + # Use maximum aggro distance check in instances. # Default: False AggroDistanceCheckInstances = False diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/Config.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/Config.java index 9415478fdb..8e3ad70fb3 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/Config.java @@ -618,6 +618,7 @@ public class Config public static boolean AGGRO_DISTANCE_CHECK_ENABLED; public static int AGGRO_DISTANCE_CHECK_RANGE; public static boolean AGGRO_DISTANCE_CHECK_RAIDS; + public static int AGGRO_DISTANCE_CHECK_RAID_RANGE; public static boolean AGGRO_DISTANCE_CHECK_INSTANCES; public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE; public static boolean GUARD_ATTACK_AGGRO_MOB; @@ -2110,6 +2111,7 @@ public class Config AGGRO_DISTANCE_CHECK_ENABLED = NPC.getBoolean("AggroDistanceCheckEnabled", true); AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500); AGGRO_DISTANCE_CHECK_RAIDS = NPC.getBoolean("AggroDistanceCheckRaids", false); + AGGRO_DISTANCE_CHECK_RAID_RANGE = NPC.getInt("AggroDistanceCheckRaidRange", 3000); AGGRO_DISTANCE_CHECK_INSTANCES = NPC.getBoolean("AggroDistanceCheckInstances", false); AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true); GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false); diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/ai/AttackableAI.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/ai/AttackableAI.java index a8cc3a55c8..2f4d9f423c 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/ai/AttackableAI.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/ai/AttackableAI.java @@ -601,10 +601,10 @@ public class AttackableAI extends CreatureAI return; } - if (Config.AGGRO_DISTANCE_CHECK_ENABLED && npc.isMonster() && !npc.isWalker()) + if (Config.AGGRO_DISTANCE_CHECK_ENABLED && npc.isMonster() && !npc.isWalker() && !(npc instanceof GrandBossInstance)) { final Spawn spawn = npc.getSpawn(); - if ((spawn != null) && (npc.calculateDistance3D(spawn.getLocation()) > Config.AGGRO_DISTANCE_CHECK_RANGE)) + if ((spawn != null) && (npc.calculateDistance3D(spawn.getLocation()) > (npc.isRaid() ? Config.AGGRO_DISTANCE_CHECK_RAID_RANGE : Config.AGGRO_DISTANCE_CHECK_RANGE))) { if ((Config.AGGRO_DISTANCE_CHECK_RAIDS || !npc.isRaid()) && (Config.AGGRO_DISTANCE_CHECK_INSTANCES || !npc.isInInstance())) { diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/config/NPC.ini b/L2J_Mobius_6.0_Fafurion/dist/game/config/NPC.ini index b70778d9c5..b1281d6f7c 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/config/NPC.ini +++ b/L2J_Mobius_6.0_Fafurion/dist/game/config/NPC.ini @@ -99,9 +99,14 @@ AggroDistanceCheckEnabled = True AggroDistanceCheckRange = 1500 # Use maximum aggro distance check for raids. +# Grandbosses are excluded. # Default: False AggroDistanceCheckRaids = False +# Maximum distance raids can be pulled away from spawn. +# Default: 3000 +AggroDistanceCheckRaidRange = 3000 + # Use maximum aggro distance check in instances. # Default: False AggroDistanceCheckInstances = False diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/Config.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/Config.java index c2ed89b0e9..c15c48025a 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/Config.java @@ -619,6 +619,7 @@ public class Config public static boolean AGGRO_DISTANCE_CHECK_ENABLED; public static int AGGRO_DISTANCE_CHECK_RANGE; public static boolean AGGRO_DISTANCE_CHECK_RAIDS; + public static int AGGRO_DISTANCE_CHECK_RAID_RANGE; public static boolean AGGRO_DISTANCE_CHECK_INSTANCES; public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE; public static boolean GUARD_ATTACK_AGGRO_MOB; @@ -2149,6 +2150,7 @@ public class Config AGGRO_DISTANCE_CHECK_ENABLED = NPC.getBoolean("AggroDistanceCheckEnabled", true); AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500); AGGRO_DISTANCE_CHECK_RAIDS = NPC.getBoolean("AggroDistanceCheckRaids", false); + AGGRO_DISTANCE_CHECK_RAID_RANGE = NPC.getInt("AggroDistanceCheckRaidRange", 3000); AGGRO_DISTANCE_CHECK_INSTANCES = NPC.getBoolean("AggroDistanceCheckInstances", false); AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true); GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false); diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/ai/AttackableAI.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/ai/AttackableAI.java index a8cc3a55c8..2f4d9f423c 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/ai/AttackableAI.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/ai/AttackableAI.java @@ -601,10 +601,10 @@ public class AttackableAI extends CreatureAI return; } - if (Config.AGGRO_DISTANCE_CHECK_ENABLED && npc.isMonster() && !npc.isWalker()) + if (Config.AGGRO_DISTANCE_CHECK_ENABLED && npc.isMonster() && !npc.isWalker() && !(npc instanceof GrandBossInstance)) { final Spawn spawn = npc.getSpawn(); - if ((spawn != null) && (npc.calculateDistance3D(spawn.getLocation()) > Config.AGGRO_DISTANCE_CHECK_RANGE)) + if ((spawn != null) && (npc.calculateDistance3D(spawn.getLocation()) > (npc.isRaid() ? Config.AGGRO_DISTANCE_CHECK_RAID_RANGE : Config.AGGRO_DISTANCE_CHECK_RANGE))) { if ((Config.AGGRO_DISTANCE_CHECK_RAIDS || !npc.isRaid()) && (Config.AGGRO_DISTANCE_CHECK_INSTANCES || !npc.isInInstance())) { diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/config/NPC.ini b/L2J_Mobius_7.0_PreludeOfWar/dist/game/config/NPC.ini index 270920f536..b0d9846524 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/config/NPC.ini +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/config/NPC.ini @@ -99,9 +99,14 @@ AggroDistanceCheckEnabled = True AggroDistanceCheckRange = 1500 # Use maximum aggro distance check for raids. +# Grandbosses are excluded. # Default: False AggroDistanceCheckRaids = False +# Maximum distance raids can be pulled away from spawn. +# Default: 3000 +AggroDistanceCheckRaidRange = 3000 + # Use maximum aggro distance check in instances. # Default: False AggroDistanceCheckInstances = False diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/Config.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/Config.java index d2a7226642..993ce35023 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/Config.java @@ -623,6 +623,7 @@ public class Config public static boolean AGGRO_DISTANCE_CHECK_ENABLED; public static int AGGRO_DISTANCE_CHECK_RANGE; public static boolean AGGRO_DISTANCE_CHECK_RAIDS; + public static int AGGRO_DISTANCE_CHECK_RAID_RANGE; public static boolean AGGRO_DISTANCE_CHECK_INSTANCES; public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE; public static boolean GUARD_ATTACK_AGGRO_MOB; @@ -2171,6 +2172,7 @@ public class Config AGGRO_DISTANCE_CHECK_ENABLED = NPC.getBoolean("AggroDistanceCheckEnabled", true); AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500); AGGRO_DISTANCE_CHECK_RAIDS = NPC.getBoolean("AggroDistanceCheckRaids", false); + AGGRO_DISTANCE_CHECK_RAID_RANGE = NPC.getInt("AggroDistanceCheckRaidRange", 3000); AGGRO_DISTANCE_CHECK_INSTANCES = NPC.getBoolean("AggroDistanceCheckInstances", false); AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true); GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false); diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/ai/AttackableAI.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/ai/AttackableAI.java index a8cc3a55c8..2f4d9f423c 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/ai/AttackableAI.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/ai/AttackableAI.java @@ -601,10 +601,10 @@ public class AttackableAI extends CreatureAI return; } - if (Config.AGGRO_DISTANCE_CHECK_ENABLED && npc.isMonster() && !npc.isWalker()) + if (Config.AGGRO_DISTANCE_CHECK_ENABLED && npc.isMonster() && !npc.isWalker() && !(npc instanceof GrandBossInstance)) { final Spawn spawn = npc.getSpawn(); - if ((spawn != null) && (npc.calculateDistance3D(spawn.getLocation()) > Config.AGGRO_DISTANCE_CHECK_RANGE)) + if ((spawn != null) && (npc.calculateDistance3D(spawn.getLocation()) > (npc.isRaid() ? Config.AGGRO_DISTANCE_CHECK_RAID_RANGE : Config.AGGRO_DISTANCE_CHECK_RANGE))) { if ((Config.AGGRO_DISTANCE_CHECK_RAIDS || !npc.isRaid()) && (Config.AGGRO_DISTANCE_CHECK_INSTANCES || !npc.isInInstance())) { diff --git a/L2J_Mobius_C6_Interlude/dist/game/config/main/General.ini b/L2J_Mobius_C6_Interlude/dist/game/config/main/General.ini index 52ff09efd1..e578878f9b 100644 --- a/L2J_Mobius_C6_Interlude/dist/game/config/main/General.ini +++ b/L2J_Mobius_C6_Interlude/dist/game/config/main/General.ini @@ -597,9 +597,14 @@ AggroDistanceCheckEnabled = False AggroDistanceCheckRange = 1500 # Use maximum aggro distance check for raids. +# Grandbosses are excluded. # Default: False AggroDistanceCheckRaids = False +# Maximum distance raids can be pulled away from spawn. +# Default: 3000 +AggroDistanceCheckRaidRange = 3000 + # Use maximum aggro distance check in instances. # Default: False AggroDistanceCheckInstances = False diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/Config.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/Config.java index 39cd69efb8..1a84f9941b 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/Config.java @@ -141,6 +141,7 @@ public class Config public static boolean AGGRO_DISTANCE_CHECK_ENABLED; public static int AGGRO_DISTANCE_CHECK_RANGE; public static boolean AGGRO_DISTANCE_CHECK_RAIDS; + public static int AGGRO_DISTANCE_CHECK_RAID_RANGE; public static boolean AGGRO_DISTANCE_CHECK_INSTANCES; public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE; public static boolean ALLOWFISHING; @@ -1521,6 +1522,7 @@ public class Config AGGRO_DISTANCE_CHECK_ENABLED = generalConfig.getBoolean("AggroDistanceCheckEnabled", false); AGGRO_DISTANCE_CHECK_RANGE = generalConfig.getInt("AggroDistanceCheckRange", 1500); AGGRO_DISTANCE_CHECK_RAIDS = generalConfig.getBoolean("AggroDistanceCheckRaids", false); + AGGRO_DISTANCE_CHECK_RAID_RANGE = generalConfig.getInt("AggroDistanceCheckRaidRange", 3000); AGGRO_DISTANCE_CHECK_INSTANCES = generalConfig.getBoolean("AggroDistanceCheckInstances", false); AGGRO_DISTANCE_CHECK_RESTORE_LIFE = generalConfig.getBoolean("AggroDistanceCheckRestoreLife", true); MIN_NPC_ANIMATION = generalConfig.getInt("MinNpcAnimation", 5); diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/ai/AttackableAI.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/ai/AttackableAI.java index 2c5c052da7..7ab6154091 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/ai/AttackableAI.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/ai/AttackableAI.java @@ -39,6 +39,7 @@ import org.l2jmobius.gameserver.model.actor.instance.DoorInstance; import org.l2jmobius.gameserver.model.actor.instance.FestivalMonsterInstance; import org.l2jmobius.gameserver.model.actor.instance.FolkInstance; import org.l2jmobius.gameserver.model.actor.instance.FriendlyMobInstance; +import org.l2jmobius.gameserver.model.actor.instance.GrandBossInstance; import org.l2jmobius.gameserver.model.actor.instance.GuardInstance; import org.l2jmobius.gameserver.model.actor.instance.MinionInstance; import org.l2jmobius.gameserver.model.actor.instance.MonsterInstance; @@ -602,10 +603,10 @@ public class AttackableAI extends CreatureAI return; } - if (Config.AGGRO_DISTANCE_CHECK_ENABLED && _actor.isMonster() && !(_actor instanceof NpcWalkerInstance)) + if (Config.AGGRO_DISTANCE_CHECK_ENABLED && _actor.isMonster() && !(_actor instanceof NpcWalkerInstance) && !(_actor instanceof GrandBossInstance)) { final Spawn spawn = ((NpcInstance) _actor).getSpawn(); - if ((spawn != null) && !_actor.isInsideRadius(spawn.getX(), spawn.getY(), spawn.getZ(), Config.AGGRO_DISTANCE_CHECK_RANGE, true, false)) + if ((spawn != null) && !_actor.isInsideRadius(spawn.getX(), spawn.getY(), spawn.getZ(), (_actor.isRaid() ? Config.AGGRO_DISTANCE_CHECK_RAID_RANGE : Config.AGGRO_DISTANCE_CHECK_RANGE), true, false)) { if ((Config.AGGRO_DISTANCE_CHECK_RAIDS || !_actor.isRaid()) && (Config.AGGRO_DISTANCE_CHECK_INSTANCES || (_actor.getInstanceId() == 0))) { diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/config/NPC.ini b/L2J_Mobius_CT_2.4_Epilogue/dist/game/config/NPC.ini index a937198fb3..4273f72fe2 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/config/NPC.ini +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/config/NPC.ini @@ -112,9 +112,14 @@ AggroDistanceCheckEnabled = False AggroDistanceCheckRange = 1500 # Use maximum aggro distance check for raids. +# Grandbosses are excluded. # Default: False AggroDistanceCheckRaids = False +# Maximum distance raids can be pulled away from spawn. +# Default: 3000 +AggroDistanceCheckRaidRange = 3000 + # Use maximum aggro distance check in instances. # Default: False AggroDistanceCheckInstances = False diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/Config.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/Config.java index b0b8354a0b..e4783034ff 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/Config.java @@ -728,6 +728,7 @@ public class Config public static boolean AGGRO_DISTANCE_CHECK_ENABLED; public static int AGGRO_DISTANCE_CHECK_RANGE; public static boolean AGGRO_DISTANCE_CHECK_RAIDS; + public static int AGGRO_DISTANCE_CHECK_RAID_RANGE; public static boolean AGGRO_DISTANCE_CHECK_INSTANCES; public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE; public static boolean GUARD_ATTACK_AGGRO_MOB; @@ -2234,6 +2235,7 @@ public class Config AGGRO_DISTANCE_CHECK_ENABLED = NPC.getBoolean("AggroDistanceCheckEnabled", false); AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500); AGGRO_DISTANCE_CHECK_RAIDS = NPC.getBoolean("AggroDistanceCheckRaids", false); + AGGRO_DISTANCE_CHECK_RAID_RANGE = NPC.getInt("AggroDistanceCheckRaidRange", 3000); AGGRO_DISTANCE_CHECK_INSTANCES = NPC.getBoolean("AggroDistanceCheckInstances", false); AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true); GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false); diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/ai/AttackableAI.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/ai/AttackableAI.java index 279527e266..de52ee3c27 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/ai/AttackableAI.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/ai/AttackableAI.java @@ -734,10 +734,10 @@ public class AttackableAI extends CreatureAI return; } - if (Config.AGGRO_DISTANCE_CHECK_ENABLED && npc.isMonster() && !npc.isWalker()) + if (Config.AGGRO_DISTANCE_CHECK_ENABLED && npc.isMonster() && !npc.isWalker() && !(npc instanceof GrandBossInstance)) { final Spawn spawn = npc.getSpawn(); - if ((spawn != null) && (npc.calculateDistance3D(spawn.getLocation()) > Config.AGGRO_DISTANCE_CHECK_RANGE)) + if ((spawn != null) && (npc.calculateDistance3D(spawn.getLocation()) > (npc.isRaid() ? Config.AGGRO_DISTANCE_CHECK_RAID_RANGE : Config.AGGRO_DISTANCE_CHECK_RANGE))) { if ((Config.AGGRO_DISTANCE_CHECK_RAIDS || !npc.isRaid()) && (Config.AGGRO_DISTANCE_CHECK_INSTANCES || (npc.getInstanceId() == 0))) { diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/config/NPC.ini b/L2J_Mobius_CT_2.6_HighFive/dist/game/config/NPC.ini index a937198fb3..4273f72fe2 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/config/NPC.ini +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/config/NPC.ini @@ -112,9 +112,14 @@ AggroDistanceCheckEnabled = False AggroDistanceCheckRange = 1500 # Use maximum aggro distance check for raids. +# Grandbosses are excluded. # Default: False AggroDistanceCheckRaids = False +# Maximum distance raids can be pulled away from spawn. +# Default: 3000 +AggroDistanceCheckRaidRange = 3000 + # Use maximum aggro distance check in instances. # Default: False AggroDistanceCheckInstances = False diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/Config.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/Config.java index fde51bf0cb..68adb3565d 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/Config.java @@ -732,6 +732,7 @@ public class Config public static boolean AGGRO_DISTANCE_CHECK_ENABLED; public static int AGGRO_DISTANCE_CHECK_RANGE; public static boolean AGGRO_DISTANCE_CHECK_RAIDS; + public static int AGGRO_DISTANCE_CHECK_RAID_RANGE; public static boolean AGGRO_DISTANCE_CHECK_INSTANCES; public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE; public static boolean GUARD_ATTACK_AGGRO_MOB; @@ -2237,6 +2238,7 @@ public class Config AGGRO_DISTANCE_CHECK_ENABLED = NPC.getBoolean("AggroDistanceCheckEnabled", false); AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500); AGGRO_DISTANCE_CHECK_RAIDS = NPC.getBoolean("AggroDistanceCheckRaids", false); + AGGRO_DISTANCE_CHECK_RAID_RANGE = NPC.getInt("AggroDistanceCheckRaidRange", 3000); AGGRO_DISTANCE_CHECK_INSTANCES = NPC.getBoolean("AggroDistanceCheckInstances", false); AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true); GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false); diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/ai/AttackableAI.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/ai/AttackableAI.java index 279527e266..de52ee3c27 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/ai/AttackableAI.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/ai/AttackableAI.java @@ -734,10 +734,10 @@ public class AttackableAI extends CreatureAI return; } - if (Config.AGGRO_DISTANCE_CHECK_ENABLED && npc.isMonster() && !npc.isWalker()) + if (Config.AGGRO_DISTANCE_CHECK_ENABLED && npc.isMonster() && !npc.isWalker() && !(npc instanceof GrandBossInstance)) { final Spawn spawn = npc.getSpawn(); - if ((spawn != null) && (npc.calculateDistance3D(spawn.getLocation()) > Config.AGGRO_DISTANCE_CHECK_RANGE)) + if ((spawn != null) && (npc.calculateDistance3D(spawn.getLocation()) > (npc.isRaid() ? Config.AGGRO_DISTANCE_CHECK_RAID_RANGE : Config.AGGRO_DISTANCE_CHECK_RANGE))) { if ((Config.AGGRO_DISTANCE_CHECK_RAIDS || !npc.isRaid()) && (Config.AGGRO_DISTANCE_CHECK_INSTANCES || (npc.getInstanceId() == 0))) { diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/config/NPC.ini b/L2J_Mobius_Classic_2.0_Saviors/dist/game/config/NPC.ini index d0ea1f605d..36f89eaf10 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/config/NPC.ini +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/config/NPC.ini @@ -99,9 +99,14 @@ AggroDistanceCheckEnabled = False AggroDistanceCheckRange = 1500 # Use maximum aggro distance check for raids. +# Grandbosses are excluded. # Default: False AggroDistanceCheckRaids = False +# Maximum distance raids can be pulled away from spawn. +# Default: 3000 +AggroDistanceCheckRaidRange = 3000 + # Use maximum aggro distance check in instances. # Default: False AggroDistanceCheckInstances = False diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/Config.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/Config.java index 6600b01940..70cf99e522 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/Config.java @@ -629,6 +629,7 @@ public class Config public static boolean AGGRO_DISTANCE_CHECK_ENABLED; public static int AGGRO_DISTANCE_CHECK_RANGE; public static boolean AGGRO_DISTANCE_CHECK_RAIDS; + public static int AGGRO_DISTANCE_CHECK_RAID_RANGE; public static boolean AGGRO_DISTANCE_CHECK_INSTANCES; public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE; public static boolean GUARD_ATTACK_AGGRO_MOB; @@ -2019,6 +2020,7 @@ public class Config AGGRO_DISTANCE_CHECK_ENABLED = NPC.getBoolean("AggroDistanceCheckEnabled", true); AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500); AGGRO_DISTANCE_CHECK_RAIDS = NPC.getBoolean("AggroDistanceCheckRaids", false); + AGGRO_DISTANCE_CHECK_RAID_RANGE = NPC.getInt("AggroDistanceCheckRaidRange", 3000); AGGRO_DISTANCE_CHECK_INSTANCES = NPC.getBoolean("AggroDistanceCheckInstances", false); AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true); GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false); diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/ai/AttackableAI.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/ai/AttackableAI.java index a8cc3a55c8..2f4d9f423c 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/ai/AttackableAI.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/ai/AttackableAI.java @@ -601,10 +601,10 @@ public class AttackableAI extends CreatureAI return; } - if (Config.AGGRO_DISTANCE_CHECK_ENABLED && npc.isMonster() && !npc.isWalker()) + if (Config.AGGRO_DISTANCE_CHECK_ENABLED && npc.isMonster() && !npc.isWalker() && !(npc instanceof GrandBossInstance)) { final Spawn spawn = npc.getSpawn(); - if ((spawn != null) && (npc.calculateDistance3D(spawn.getLocation()) > Config.AGGRO_DISTANCE_CHECK_RANGE)) + if ((spawn != null) && (npc.calculateDistance3D(spawn.getLocation()) > (npc.isRaid() ? Config.AGGRO_DISTANCE_CHECK_RAID_RANGE : Config.AGGRO_DISTANCE_CHECK_RANGE))) { if ((Config.AGGRO_DISTANCE_CHECK_RAIDS || !npc.isRaid()) && (Config.AGGRO_DISTANCE_CHECK_INSTANCES || !npc.isInInstance())) { diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/config/NPC.ini b/L2J_Mobius_Classic_2.1_Zaken/dist/game/config/NPC.ini index d0ea1f605d..36f89eaf10 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/config/NPC.ini +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/config/NPC.ini @@ -99,9 +99,14 @@ AggroDistanceCheckEnabled = False AggroDistanceCheckRange = 1500 # Use maximum aggro distance check for raids. +# Grandbosses are excluded. # Default: False AggroDistanceCheckRaids = False +# Maximum distance raids can be pulled away from spawn. +# Default: 3000 +AggroDistanceCheckRaidRange = 3000 + # Use maximum aggro distance check in instances. # Default: False AggroDistanceCheckInstances = False diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/Config.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/Config.java index 2649c6afb1..8ebe33c82b 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/Config.java @@ -629,6 +629,7 @@ public class Config public static boolean AGGRO_DISTANCE_CHECK_ENABLED; public static int AGGRO_DISTANCE_CHECK_RANGE; public static boolean AGGRO_DISTANCE_CHECK_RAIDS; + public static int AGGRO_DISTANCE_CHECK_RAID_RANGE; public static boolean AGGRO_DISTANCE_CHECK_INSTANCES; public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE; public static boolean GUARD_ATTACK_AGGRO_MOB; @@ -2023,6 +2024,7 @@ public class Config AGGRO_DISTANCE_CHECK_ENABLED = NPC.getBoolean("AggroDistanceCheckEnabled", true); AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500); AGGRO_DISTANCE_CHECK_RAIDS = NPC.getBoolean("AggroDistanceCheckRaids", false); + AGGRO_DISTANCE_CHECK_RAID_RANGE = NPC.getInt("AggroDistanceCheckRaidRange", 3000); AGGRO_DISTANCE_CHECK_INSTANCES = NPC.getBoolean("AggroDistanceCheckInstances", false); AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true); GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false); diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/ai/AttackableAI.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/ai/AttackableAI.java index a8cc3a55c8..2f4d9f423c 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/ai/AttackableAI.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/ai/AttackableAI.java @@ -601,10 +601,10 @@ public class AttackableAI extends CreatureAI return; } - if (Config.AGGRO_DISTANCE_CHECK_ENABLED && npc.isMonster() && !npc.isWalker()) + if (Config.AGGRO_DISTANCE_CHECK_ENABLED && npc.isMonster() && !npc.isWalker() && !(npc instanceof GrandBossInstance)) { final Spawn spawn = npc.getSpawn(); - if ((spawn != null) && (npc.calculateDistance3D(spawn.getLocation()) > Config.AGGRO_DISTANCE_CHECK_RANGE)) + if ((spawn != null) && (npc.calculateDistance3D(spawn.getLocation()) > (npc.isRaid() ? Config.AGGRO_DISTANCE_CHECK_RAID_RANGE : Config.AGGRO_DISTANCE_CHECK_RANGE))) { if ((Config.AGGRO_DISTANCE_CHECK_RAIDS || !npc.isRaid()) && (Config.AGGRO_DISTANCE_CHECK_INSTANCES || !npc.isInInstance())) { diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/config/NPC.ini b/L2J_Mobius_Classic_2.2_Antharas/dist/game/config/NPC.ini index d0ea1f605d..36f89eaf10 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/config/NPC.ini +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/config/NPC.ini @@ -99,9 +99,14 @@ AggroDistanceCheckEnabled = False AggroDistanceCheckRange = 1500 # Use maximum aggro distance check for raids. +# Grandbosses are excluded. # Default: False AggroDistanceCheckRaids = False +# Maximum distance raids can be pulled away from spawn. +# Default: 3000 +AggroDistanceCheckRaidRange = 3000 + # Use maximum aggro distance check in instances. # Default: False AggroDistanceCheckInstances = False diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/Config.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/Config.java index 2649c6afb1..8ebe33c82b 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/Config.java @@ -629,6 +629,7 @@ public class Config public static boolean AGGRO_DISTANCE_CHECK_ENABLED; public static int AGGRO_DISTANCE_CHECK_RANGE; public static boolean AGGRO_DISTANCE_CHECK_RAIDS; + public static int AGGRO_DISTANCE_CHECK_RAID_RANGE; public static boolean AGGRO_DISTANCE_CHECK_INSTANCES; public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE; public static boolean GUARD_ATTACK_AGGRO_MOB; @@ -2023,6 +2024,7 @@ public class Config AGGRO_DISTANCE_CHECK_ENABLED = NPC.getBoolean("AggroDistanceCheckEnabled", true); AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500); AGGRO_DISTANCE_CHECK_RAIDS = NPC.getBoolean("AggroDistanceCheckRaids", false); + AGGRO_DISTANCE_CHECK_RAID_RANGE = NPC.getInt("AggroDistanceCheckRaidRange", 3000); AGGRO_DISTANCE_CHECK_INSTANCES = NPC.getBoolean("AggroDistanceCheckInstances", false); AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true); GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false); diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/ai/AttackableAI.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/ai/AttackableAI.java index a8cc3a55c8..2f4d9f423c 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/ai/AttackableAI.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/ai/AttackableAI.java @@ -601,10 +601,10 @@ public class AttackableAI extends CreatureAI return; } - if (Config.AGGRO_DISTANCE_CHECK_ENABLED && npc.isMonster() && !npc.isWalker()) + if (Config.AGGRO_DISTANCE_CHECK_ENABLED && npc.isMonster() && !npc.isWalker() && !(npc instanceof GrandBossInstance)) { final Spawn spawn = npc.getSpawn(); - if ((spawn != null) && (npc.calculateDistance3D(spawn.getLocation()) > Config.AGGRO_DISTANCE_CHECK_RANGE)) + if ((spawn != null) && (npc.calculateDistance3D(spawn.getLocation()) > (npc.isRaid() ? Config.AGGRO_DISTANCE_CHECK_RAID_RANGE : Config.AGGRO_DISTANCE_CHECK_RANGE))) { if ((Config.AGGRO_DISTANCE_CHECK_RAIDS || !npc.isRaid()) && (Config.AGGRO_DISTANCE_CHECK_INSTANCES || !npc.isInInstance())) { diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/config/NPC.ini b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/config/NPC.ini index d0ea1f605d..36f89eaf10 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/config/NPC.ini +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/config/NPC.ini @@ -99,9 +99,14 @@ AggroDistanceCheckEnabled = False AggroDistanceCheckRange = 1500 # Use maximum aggro distance check for raids. +# Grandbosses are excluded. # Default: False AggroDistanceCheckRaids = False +# Maximum distance raids can be pulled away from spawn. +# Default: 3000 +AggroDistanceCheckRaidRange = 3000 + # Use maximum aggro distance check in instances. # Default: False AggroDistanceCheckInstances = False diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/Config.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/Config.java index 0ea9ec96a8..54752b657b 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/Config.java @@ -629,6 +629,7 @@ public class Config public static boolean AGGRO_DISTANCE_CHECK_ENABLED; public static int AGGRO_DISTANCE_CHECK_RANGE; public static boolean AGGRO_DISTANCE_CHECK_RAIDS; + public static int AGGRO_DISTANCE_CHECK_RAID_RANGE; public static boolean AGGRO_DISTANCE_CHECK_INSTANCES; public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE; public static boolean GUARD_ATTACK_AGGRO_MOB; @@ -2024,6 +2025,7 @@ public class Config AGGRO_DISTANCE_CHECK_ENABLED = NPC.getBoolean("AggroDistanceCheckEnabled", true); AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500); AGGRO_DISTANCE_CHECK_RAIDS = NPC.getBoolean("AggroDistanceCheckRaids", false); + AGGRO_DISTANCE_CHECK_RAID_RANGE = NPC.getInt("AggroDistanceCheckRaidRange", 3000); AGGRO_DISTANCE_CHECK_INSTANCES = NPC.getBoolean("AggroDistanceCheckInstances", false); AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true); GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false); diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/ai/AttackableAI.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/ai/AttackableAI.java index a8cc3a55c8..2f4d9f423c 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/ai/AttackableAI.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/ai/AttackableAI.java @@ -601,10 +601,10 @@ public class AttackableAI extends CreatureAI return; } - if (Config.AGGRO_DISTANCE_CHECK_ENABLED && npc.isMonster() && !npc.isWalker()) + if (Config.AGGRO_DISTANCE_CHECK_ENABLED && npc.isMonster() && !npc.isWalker() && !(npc instanceof GrandBossInstance)) { final Spawn spawn = npc.getSpawn(); - if ((spawn != null) && (npc.calculateDistance3D(spawn.getLocation()) > Config.AGGRO_DISTANCE_CHECK_RANGE)) + if ((spawn != null) && (npc.calculateDistance3D(spawn.getLocation()) > (npc.isRaid() ? Config.AGGRO_DISTANCE_CHECK_RAID_RANGE : Config.AGGRO_DISTANCE_CHECK_RANGE))) { if ((Config.AGGRO_DISTANCE_CHECK_RAIDS || !npc.isRaid()) && (Config.AGGRO_DISTANCE_CHECK_INSTANCES || !npc.isInInstance())) { diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/config/NPC.ini b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/config/NPC.ini index d0ea1f605d..36f89eaf10 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/config/NPC.ini +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/config/NPC.ini @@ -99,9 +99,14 @@ AggroDistanceCheckEnabled = False AggroDistanceCheckRange = 1500 # Use maximum aggro distance check for raids. +# Grandbosses are excluded. # Default: False AggroDistanceCheckRaids = False +# Maximum distance raids can be pulled away from spawn. +# Default: 3000 +AggroDistanceCheckRaidRange = 3000 + # Use maximum aggro distance check in instances. # Default: False AggroDistanceCheckInstances = False diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/Config.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/Config.java index eea979a045..2ed8479e74 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/Config.java @@ -629,6 +629,7 @@ public class Config public static boolean AGGRO_DISTANCE_CHECK_ENABLED; public static int AGGRO_DISTANCE_CHECK_RANGE; public static boolean AGGRO_DISTANCE_CHECK_RAIDS; + public static int AGGRO_DISTANCE_CHECK_RAID_RANGE; public static boolean AGGRO_DISTANCE_CHECK_INSTANCES; public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE; public static boolean GUARD_ATTACK_AGGRO_MOB; @@ -2033,6 +2034,7 @@ public class Config AGGRO_DISTANCE_CHECK_ENABLED = NPC.getBoolean("AggroDistanceCheckEnabled", true); AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500); AGGRO_DISTANCE_CHECK_RAIDS = NPC.getBoolean("AggroDistanceCheckRaids", false); + AGGRO_DISTANCE_CHECK_RAID_RANGE = NPC.getInt("AggroDistanceCheckRaidRange", 3000); AGGRO_DISTANCE_CHECK_INSTANCES = NPC.getBoolean("AggroDistanceCheckInstances", false); AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true); GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false); diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/ai/AttackableAI.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/ai/AttackableAI.java index a8cc3a55c8..2f4d9f423c 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/ai/AttackableAI.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/ai/AttackableAI.java @@ -601,10 +601,10 @@ public class AttackableAI extends CreatureAI return; } - if (Config.AGGRO_DISTANCE_CHECK_ENABLED && npc.isMonster() && !npc.isWalker()) + if (Config.AGGRO_DISTANCE_CHECK_ENABLED && npc.isMonster() && !npc.isWalker() && !(npc instanceof GrandBossInstance)) { final Spawn spawn = npc.getSpawn(); - if ((spawn != null) && (npc.calculateDistance3D(spawn.getLocation()) > Config.AGGRO_DISTANCE_CHECK_RANGE)) + if ((spawn != null) && (npc.calculateDistance3D(spawn.getLocation()) > (npc.isRaid() ? Config.AGGRO_DISTANCE_CHECK_RAID_RANGE : Config.AGGRO_DISTANCE_CHECK_RANGE))) { if ((Config.AGGRO_DISTANCE_CHECK_RAIDS || !npc.isRaid()) && (Config.AGGRO_DISTANCE_CHECK_INSTANCES || !npc.isInInstance())) { diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/config/NPC.ini b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/config/NPC.ini index d0ea1f605d..36f89eaf10 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/config/NPC.ini +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/config/NPC.ini @@ -99,9 +99,14 @@ AggroDistanceCheckEnabled = False AggroDistanceCheckRange = 1500 # Use maximum aggro distance check for raids. +# Grandbosses are excluded. # Default: False AggroDistanceCheckRaids = False +# Maximum distance raids can be pulled away from spawn. +# Default: 3000 +AggroDistanceCheckRaidRange = 3000 + # Use maximum aggro distance check in instances. # Default: False AggroDistanceCheckInstances = False diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/Config.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/Config.java index 8bcbbd0aa0..4d6091f050 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/Config.java @@ -633,6 +633,7 @@ public class Config public static boolean AGGRO_DISTANCE_CHECK_ENABLED; public static int AGGRO_DISTANCE_CHECK_RANGE; public static boolean AGGRO_DISTANCE_CHECK_RAIDS; + public static int AGGRO_DISTANCE_CHECK_RAID_RANGE; public static boolean AGGRO_DISTANCE_CHECK_INSTANCES; public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE; public static boolean GUARD_ATTACK_AGGRO_MOB; @@ -2050,6 +2051,7 @@ public class Config AGGRO_DISTANCE_CHECK_ENABLED = NPC.getBoolean("AggroDistanceCheckEnabled", true); AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500); AGGRO_DISTANCE_CHECK_RAIDS = NPC.getBoolean("AggroDistanceCheckRaids", false); + AGGRO_DISTANCE_CHECK_RAID_RANGE = NPC.getInt("AggroDistanceCheckRaidRange", 3000); AGGRO_DISTANCE_CHECK_INSTANCES = NPC.getBoolean("AggroDistanceCheckInstances", false); AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true); GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false); diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/ai/AttackableAI.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/ai/AttackableAI.java index a8cc3a55c8..2f4d9f423c 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/ai/AttackableAI.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/ai/AttackableAI.java @@ -601,10 +601,10 @@ public class AttackableAI extends CreatureAI return; } - if (Config.AGGRO_DISTANCE_CHECK_ENABLED && npc.isMonster() && !npc.isWalker()) + if (Config.AGGRO_DISTANCE_CHECK_ENABLED && npc.isMonster() && !npc.isWalker() && !(npc instanceof GrandBossInstance)) { final Spawn spawn = npc.getSpawn(); - if ((spawn != null) && (npc.calculateDistance3D(spawn.getLocation()) > Config.AGGRO_DISTANCE_CHECK_RANGE)) + if ((spawn != null) && (npc.calculateDistance3D(spawn.getLocation()) > (npc.isRaid() ? Config.AGGRO_DISTANCE_CHECK_RAID_RANGE : Config.AGGRO_DISTANCE_CHECK_RANGE))) { if ((Config.AGGRO_DISTANCE_CHECK_RAIDS || !npc.isRaid()) && (Config.AGGRO_DISTANCE_CHECK_INSTANCES || !npc.isInInstance())) { diff --git a/L2J_Mobius_Classic_Interlude/dist/game/config/NPC.ini b/L2J_Mobius_Classic_Interlude/dist/game/config/NPC.ini index d0ea1f605d..36f89eaf10 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/config/NPC.ini +++ b/L2J_Mobius_Classic_Interlude/dist/game/config/NPC.ini @@ -99,9 +99,14 @@ AggroDistanceCheckEnabled = False AggroDistanceCheckRange = 1500 # Use maximum aggro distance check for raids. +# Grandbosses are excluded. # Default: False AggroDistanceCheckRaids = False +# Maximum distance raids can be pulled away from spawn. +# Default: 3000 +AggroDistanceCheckRaidRange = 3000 + # Use maximum aggro distance check in instances. # Default: False AggroDistanceCheckInstances = False diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/Config.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/Config.java index 399ab7ca93..cb1cbc092c 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/Config.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/Config.java @@ -638,6 +638,7 @@ public class Config public static boolean AGGRO_DISTANCE_CHECK_ENABLED; public static int AGGRO_DISTANCE_CHECK_RANGE; public static boolean AGGRO_DISTANCE_CHECK_RAIDS; + public static int AGGRO_DISTANCE_CHECK_RAID_RANGE; public static boolean AGGRO_DISTANCE_CHECK_INSTANCES; public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE; public static boolean GUARD_ATTACK_AGGRO_MOB; @@ -2045,6 +2046,7 @@ public class Config AGGRO_DISTANCE_CHECK_ENABLED = NPC.getBoolean("AggroDistanceCheckEnabled", true); AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500); AGGRO_DISTANCE_CHECK_RAIDS = NPC.getBoolean("AggroDistanceCheckRaids", false); + AGGRO_DISTANCE_CHECK_RAID_RANGE = NPC.getInt("AggroDistanceCheckRaidRange", 3000); AGGRO_DISTANCE_CHECK_INSTANCES = NPC.getBoolean("AggroDistanceCheckInstances", false); AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true); GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false); diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/ai/AttackableAI.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/ai/AttackableAI.java index c1a22b3886..eff965bafa 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/ai/AttackableAI.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/ai/AttackableAI.java @@ -601,10 +601,10 @@ public class AttackableAI extends CreatureAI return; } - if (Config.AGGRO_DISTANCE_CHECK_ENABLED && npc.isMonster() && !npc.isWalker()) + if (Config.AGGRO_DISTANCE_CHECK_ENABLED && npc.isMonster() && !npc.isWalker() && !(npc instanceof GrandBossInstance)) { final Spawn spawn = npc.getSpawn(); - if ((spawn != null) && (npc.calculateDistance3D(spawn.getLocation()) > Config.AGGRO_DISTANCE_CHECK_RANGE)) + if ((spawn != null) && (npc.calculateDistance3D(spawn.getLocation()) > (npc.isRaid() ? Config.AGGRO_DISTANCE_CHECK_RAID_RANGE : Config.AGGRO_DISTANCE_CHECK_RANGE))) { if ((Config.AGGRO_DISTANCE_CHECK_RAIDS || !npc.isRaid()) && (Config.AGGRO_DISTANCE_CHECK_INSTANCES || !npc.isInInstance())) {