Addition of AggroDistanceCheckRaidRange configuration.

This commit is contained in:
MobiusDevelopment 2020-06-07 21:53:21 +00:00
parent ed6274df0e
commit 56872c8693
54 changed files with 163 additions and 36 deletions

View File

@ -99,9 +99,14 @@ AggroDistanceCheckEnabled = False
AggroDistanceCheckRange = 1500 AggroDistanceCheckRange = 1500
# Use maximum aggro distance check for raids. # Use maximum aggro distance check for raids.
# Grandbosses are excluded.
# Default: False # Default: False
AggroDistanceCheckRaids = False AggroDistanceCheckRaids = False
# Maximum distance raids can be pulled away from spawn.
# Default: 3000
AggroDistanceCheckRaidRange = 3000
# Use maximum aggro distance check in instances. # Use maximum aggro distance check in instances.
# Default: False # Default: False
AggroDistanceCheckInstances = False AggroDistanceCheckInstances = False

View File

@ -629,6 +629,7 @@ public class Config
public static boolean AGGRO_DISTANCE_CHECK_ENABLED; public static boolean AGGRO_DISTANCE_CHECK_ENABLED;
public static int AGGRO_DISTANCE_CHECK_RANGE; public static int AGGRO_DISTANCE_CHECK_RANGE;
public static boolean AGGRO_DISTANCE_CHECK_RAIDS; 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_INSTANCES;
public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE; public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE;
public static boolean GUARD_ATTACK_AGGRO_MOB; 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_ENABLED = NPC.getBoolean("AggroDistanceCheckEnabled", true);
AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500); AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500);
AGGRO_DISTANCE_CHECK_RAIDS = NPC.getBoolean("AggroDistanceCheckRaids", false); 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_INSTANCES = NPC.getBoolean("AggroDistanceCheckInstances", false);
AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true); AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true);
GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false); GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false);

View File

@ -601,10 +601,10 @@ public class AttackableAI extends CreatureAI
return; 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(); 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())) if ((Config.AGGRO_DISTANCE_CHECK_RAIDS || !npc.isRaid()) && (Config.AGGRO_DISTANCE_CHECK_INSTANCES || !npc.isInInstance()))
{ {

View File

@ -99,9 +99,14 @@ AggroDistanceCheckEnabled = False
AggroDistanceCheckRange = 1500 AggroDistanceCheckRange = 1500
# Use maximum aggro distance check for raids. # Use maximum aggro distance check for raids.
# Grandbosses are excluded.
# Default: False # Default: False
AggroDistanceCheckRaids = False AggroDistanceCheckRaids = False
# Maximum distance raids can be pulled away from spawn.
# Default: 3000
AggroDistanceCheckRaidRange = 3000
# Use maximum aggro distance check in instances. # Use maximum aggro distance check in instances.
# Default: False # Default: False
AggroDistanceCheckInstances = False AggroDistanceCheckInstances = False

View File

@ -636,6 +636,7 @@ public class Config
public static boolean AGGRO_DISTANCE_CHECK_ENABLED; public static boolean AGGRO_DISTANCE_CHECK_ENABLED;
public static int AGGRO_DISTANCE_CHECK_RANGE; public static int AGGRO_DISTANCE_CHECK_RANGE;
public static boolean AGGRO_DISTANCE_CHECK_RAIDS; 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_INSTANCES;
public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE; public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE;
public static boolean GUARD_ATTACK_AGGRO_MOB; 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_ENABLED = NPC.getBoolean("AggroDistanceCheckEnabled", true);
AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500); AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500);
AGGRO_DISTANCE_CHECK_RAIDS = NPC.getBoolean("AggroDistanceCheckRaids", false); 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_INSTANCES = NPC.getBoolean("AggroDistanceCheckInstances", false);
AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true); AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true);
GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false); GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false);

View File

@ -601,10 +601,10 @@ public class AttackableAI extends CreatureAI
return; 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(); 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())) if ((Config.AGGRO_DISTANCE_CHECK_RAIDS || !npc.isRaid()) && (Config.AGGRO_DISTANCE_CHECK_INSTANCES || !npc.isInInstance()))
{ {

View File

@ -99,9 +99,14 @@ AggroDistanceCheckEnabled = False
AggroDistanceCheckRange = 1500 AggroDistanceCheckRange = 1500
# Use maximum aggro distance check for raids. # Use maximum aggro distance check for raids.
# Grandbosses are excluded.
# Default: False # Default: False
AggroDistanceCheckRaids = False AggroDistanceCheckRaids = False
# Maximum distance raids can be pulled away from spawn.
# Default: 3000
AggroDistanceCheckRaidRange = 3000
# Use maximum aggro distance check in instances. # Use maximum aggro distance check in instances.
# Default: False # Default: False
AggroDistanceCheckInstances = False AggroDistanceCheckInstances = False

View File

@ -636,6 +636,7 @@ public class Config
public static boolean AGGRO_DISTANCE_CHECK_ENABLED; public static boolean AGGRO_DISTANCE_CHECK_ENABLED;
public static int AGGRO_DISTANCE_CHECK_RANGE; public static int AGGRO_DISTANCE_CHECK_RANGE;
public static boolean AGGRO_DISTANCE_CHECK_RAIDS; 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_INSTANCES;
public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE; public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE;
public static boolean GUARD_ATTACK_AGGRO_MOB; 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_ENABLED = NPC.getBoolean("AggroDistanceCheckEnabled", true);
AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500); AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500);
AGGRO_DISTANCE_CHECK_RAIDS = NPC.getBoolean("AggroDistanceCheckRaids", false); 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_INSTANCES = NPC.getBoolean("AggroDistanceCheckInstances", false);
AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true); AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true);
GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false); GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false);

View File

@ -601,10 +601,10 @@ public class AttackableAI extends CreatureAI
return; 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(); 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())) if ((Config.AGGRO_DISTANCE_CHECK_RAIDS || !npc.isRaid()) && (Config.AGGRO_DISTANCE_CHECK_INSTANCES || !npc.isInInstance()))
{ {

View File

@ -99,9 +99,14 @@ AggroDistanceCheckEnabled = False
AggroDistanceCheckRange = 1500 AggroDistanceCheckRange = 1500
# Use maximum aggro distance check for raids. # Use maximum aggro distance check for raids.
# Grandbosses are excluded.
# Default: False # Default: False
AggroDistanceCheckRaids = False AggroDistanceCheckRaids = False
# Maximum distance raids can be pulled away from spawn.
# Default: 3000
AggroDistanceCheckRaidRange = 3000
# Use maximum aggro distance check in instances. # Use maximum aggro distance check in instances.
# Default: False # Default: False
AggroDistanceCheckInstances = False AggroDistanceCheckInstances = False

View File

@ -623,6 +623,7 @@ public class Config
public static boolean AGGRO_DISTANCE_CHECK_ENABLED; public static boolean AGGRO_DISTANCE_CHECK_ENABLED;
public static int AGGRO_DISTANCE_CHECK_RANGE; public static int AGGRO_DISTANCE_CHECK_RANGE;
public static boolean AGGRO_DISTANCE_CHECK_RAIDS; 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_INSTANCES;
public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE; public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE;
public static boolean GUARD_ATTACK_AGGRO_MOB; 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_ENABLED = NPC.getBoolean("AggroDistanceCheckEnabled", true);
AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500); AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500);
AGGRO_DISTANCE_CHECK_RAIDS = NPC.getBoolean("AggroDistanceCheckRaids", false); 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_INSTANCES = NPC.getBoolean("AggroDistanceCheckInstances", false);
AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true); AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true);
GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false); GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false);

View File

@ -601,10 +601,10 @@ public class AttackableAI extends CreatureAI
return; 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(); 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())) if ((Config.AGGRO_DISTANCE_CHECK_RAIDS || !npc.isRaid()) && (Config.AGGRO_DISTANCE_CHECK_INSTANCES || !npc.isInInstance()))
{ {

View File

@ -99,9 +99,14 @@ AggroDistanceCheckEnabled = False
AggroDistanceCheckRange = 1500 AggroDistanceCheckRange = 1500
# Use maximum aggro distance check for raids. # Use maximum aggro distance check for raids.
# Grandbosses are excluded.
# Default: False # Default: False
AggroDistanceCheckRaids = False AggroDistanceCheckRaids = False
# Maximum distance raids can be pulled away from spawn.
# Default: 3000
AggroDistanceCheckRaidRange = 3000
# Use maximum aggro distance check in instances. # Use maximum aggro distance check in instances.
# Default: False # Default: False
AggroDistanceCheckInstances = False AggroDistanceCheckInstances = False

View File

@ -618,6 +618,7 @@ public class Config
public static boolean AGGRO_DISTANCE_CHECK_ENABLED; public static boolean AGGRO_DISTANCE_CHECK_ENABLED;
public static int AGGRO_DISTANCE_CHECK_RANGE; public static int AGGRO_DISTANCE_CHECK_RANGE;
public static boolean AGGRO_DISTANCE_CHECK_RAIDS; 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_INSTANCES;
public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE; public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE;
public static boolean GUARD_ATTACK_AGGRO_MOB; 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_ENABLED = NPC.getBoolean("AggroDistanceCheckEnabled", true);
AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500); AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500);
AGGRO_DISTANCE_CHECK_RAIDS = NPC.getBoolean("AggroDistanceCheckRaids", false); 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_INSTANCES = NPC.getBoolean("AggroDistanceCheckInstances", false);
AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true); AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true);
GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false); GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false);

View File

@ -601,10 +601,10 @@ public class AttackableAI extends CreatureAI
return; 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(); 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())) if ((Config.AGGRO_DISTANCE_CHECK_RAIDS || !npc.isRaid()) && (Config.AGGRO_DISTANCE_CHECK_INSTANCES || !npc.isInInstance()))
{ {

View File

@ -99,9 +99,14 @@ AggroDistanceCheckEnabled = False
AggroDistanceCheckRange = 1500 AggroDistanceCheckRange = 1500
# Use maximum aggro distance check for raids. # Use maximum aggro distance check for raids.
# Grandbosses are excluded.
# Default: False # Default: False
AggroDistanceCheckRaids = False AggroDistanceCheckRaids = False
# Maximum distance raids can be pulled away from spawn.
# Default: 3000
AggroDistanceCheckRaidRange = 3000
# Use maximum aggro distance check in instances. # Use maximum aggro distance check in instances.
# Default: False # Default: False
AggroDistanceCheckInstances = False AggroDistanceCheckInstances = False

View File

@ -618,6 +618,7 @@ public class Config
public static boolean AGGRO_DISTANCE_CHECK_ENABLED; public static boolean AGGRO_DISTANCE_CHECK_ENABLED;
public static int AGGRO_DISTANCE_CHECK_RANGE; public static int AGGRO_DISTANCE_CHECK_RANGE;
public static boolean AGGRO_DISTANCE_CHECK_RAIDS; 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_INSTANCES;
public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE; public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE;
public static boolean GUARD_ATTACK_AGGRO_MOB; 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_ENABLED = NPC.getBoolean("AggroDistanceCheckEnabled", true);
AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500); AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500);
AGGRO_DISTANCE_CHECK_RAIDS = NPC.getBoolean("AggroDistanceCheckRaids", false); 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_INSTANCES = NPC.getBoolean("AggroDistanceCheckInstances", false);
AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true); AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true);
GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false); GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false);

View File

@ -601,10 +601,10 @@ public class AttackableAI extends CreatureAI
return; 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(); 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())) if ((Config.AGGRO_DISTANCE_CHECK_RAIDS || !npc.isRaid()) && (Config.AGGRO_DISTANCE_CHECK_INSTANCES || !npc.isInInstance()))
{ {

View File

@ -99,9 +99,14 @@ AggroDistanceCheckEnabled = True
AggroDistanceCheckRange = 1500 AggroDistanceCheckRange = 1500
# Use maximum aggro distance check for raids. # Use maximum aggro distance check for raids.
# Grandbosses are excluded.
# Default: False # Default: False
AggroDistanceCheckRaids = False AggroDistanceCheckRaids = False
# Maximum distance raids can be pulled away from spawn.
# Default: 3000
AggroDistanceCheckRaidRange = 3000
# Use maximum aggro distance check in instances. # Use maximum aggro distance check in instances.
# Default: False # Default: False
AggroDistanceCheckInstances = False AggroDistanceCheckInstances = False

View File

@ -619,6 +619,7 @@ public class Config
public static boolean AGGRO_DISTANCE_CHECK_ENABLED; public static boolean AGGRO_DISTANCE_CHECK_ENABLED;
public static int AGGRO_DISTANCE_CHECK_RANGE; public static int AGGRO_DISTANCE_CHECK_RANGE;
public static boolean AGGRO_DISTANCE_CHECK_RAIDS; 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_INSTANCES;
public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE; public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE;
public static boolean GUARD_ATTACK_AGGRO_MOB; 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_ENABLED = NPC.getBoolean("AggroDistanceCheckEnabled", true);
AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500); AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500);
AGGRO_DISTANCE_CHECK_RAIDS = NPC.getBoolean("AggroDistanceCheckRaids", false); 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_INSTANCES = NPC.getBoolean("AggroDistanceCheckInstances", false);
AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true); AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true);
GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false); GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false);

View File

@ -601,10 +601,10 @@ public class AttackableAI extends CreatureAI
return; 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(); 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())) if ((Config.AGGRO_DISTANCE_CHECK_RAIDS || !npc.isRaid()) && (Config.AGGRO_DISTANCE_CHECK_INSTANCES || !npc.isInInstance()))
{ {

View File

@ -99,9 +99,14 @@ AggroDistanceCheckEnabled = True
AggroDistanceCheckRange = 1500 AggroDistanceCheckRange = 1500
# Use maximum aggro distance check for raids. # Use maximum aggro distance check for raids.
# Grandbosses are excluded.
# Default: False # Default: False
AggroDistanceCheckRaids = False AggroDistanceCheckRaids = False
# Maximum distance raids can be pulled away from spawn.
# Default: 3000
AggroDistanceCheckRaidRange = 3000
# Use maximum aggro distance check in instances. # Use maximum aggro distance check in instances.
# Default: False # Default: False
AggroDistanceCheckInstances = False AggroDistanceCheckInstances = False

View File

@ -623,6 +623,7 @@ public class Config
public static boolean AGGRO_DISTANCE_CHECK_ENABLED; public static boolean AGGRO_DISTANCE_CHECK_ENABLED;
public static int AGGRO_DISTANCE_CHECK_RANGE; public static int AGGRO_DISTANCE_CHECK_RANGE;
public static boolean AGGRO_DISTANCE_CHECK_RAIDS; 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_INSTANCES;
public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE; public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE;
public static boolean GUARD_ATTACK_AGGRO_MOB; 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_ENABLED = NPC.getBoolean("AggroDistanceCheckEnabled", true);
AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500); AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500);
AGGRO_DISTANCE_CHECK_RAIDS = NPC.getBoolean("AggroDistanceCheckRaids", false); 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_INSTANCES = NPC.getBoolean("AggroDistanceCheckInstances", false);
AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true); AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true);
GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false); GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false);

View File

@ -601,10 +601,10 @@ public class AttackableAI extends CreatureAI
return; 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(); 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())) if ((Config.AGGRO_DISTANCE_CHECK_RAIDS || !npc.isRaid()) && (Config.AGGRO_DISTANCE_CHECK_INSTANCES || !npc.isInInstance()))
{ {

View File

@ -597,9 +597,14 @@ AggroDistanceCheckEnabled = False
AggroDistanceCheckRange = 1500 AggroDistanceCheckRange = 1500
# Use maximum aggro distance check for raids. # Use maximum aggro distance check for raids.
# Grandbosses are excluded.
# Default: False # Default: False
AggroDistanceCheckRaids = False AggroDistanceCheckRaids = False
# Maximum distance raids can be pulled away from spawn.
# Default: 3000
AggroDistanceCheckRaidRange = 3000
# Use maximum aggro distance check in instances. # Use maximum aggro distance check in instances.
# Default: False # Default: False
AggroDistanceCheckInstances = False AggroDistanceCheckInstances = False

View File

@ -141,6 +141,7 @@ public class Config
public static boolean AGGRO_DISTANCE_CHECK_ENABLED; public static boolean AGGRO_DISTANCE_CHECK_ENABLED;
public static int AGGRO_DISTANCE_CHECK_RANGE; public static int AGGRO_DISTANCE_CHECK_RANGE;
public static boolean AGGRO_DISTANCE_CHECK_RAIDS; 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_INSTANCES;
public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE; public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE;
public static boolean ALLOWFISHING; public static boolean ALLOWFISHING;
@ -1521,6 +1522,7 @@ public class Config
AGGRO_DISTANCE_CHECK_ENABLED = generalConfig.getBoolean("AggroDistanceCheckEnabled", false); AGGRO_DISTANCE_CHECK_ENABLED = generalConfig.getBoolean("AggroDistanceCheckEnabled", false);
AGGRO_DISTANCE_CHECK_RANGE = generalConfig.getInt("AggroDistanceCheckRange", 1500); AGGRO_DISTANCE_CHECK_RANGE = generalConfig.getInt("AggroDistanceCheckRange", 1500);
AGGRO_DISTANCE_CHECK_RAIDS = generalConfig.getBoolean("AggroDistanceCheckRaids", false); 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_INSTANCES = generalConfig.getBoolean("AggroDistanceCheckInstances", false);
AGGRO_DISTANCE_CHECK_RESTORE_LIFE = generalConfig.getBoolean("AggroDistanceCheckRestoreLife", true); AGGRO_DISTANCE_CHECK_RESTORE_LIFE = generalConfig.getBoolean("AggroDistanceCheckRestoreLife", true);
MIN_NPC_ANIMATION = generalConfig.getInt("MinNpcAnimation", 5); MIN_NPC_ANIMATION = generalConfig.getInt("MinNpcAnimation", 5);

View File

@ -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.FestivalMonsterInstance;
import org.l2jmobius.gameserver.model.actor.instance.FolkInstance; import org.l2jmobius.gameserver.model.actor.instance.FolkInstance;
import org.l2jmobius.gameserver.model.actor.instance.FriendlyMobInstance; 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.GuardInstance;
import org.l2jmobius.gameserver.model.actor.instance.MinionInstance; import org.l2jmobius.gameserver.model.actor.instance.MinionInstance;
import org.l2jmobius.gameserver.model.actor.instance.MonsterInstance; import org.l2jmobius.gameserver.model.actor.instance.MonsterInstance;
@ -602,10 +603,10 @@ public class AttackableAI extends CreatureAI
return; 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(); 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))) if ((Config.AGGRO_DISTANCE_CHECK_RAIDS || !_actor.isRaid()) && (Config.AGGRO_DISTANCE_CHECK_INSTANCES || (_actor.getInstanceId() == 0)))
{ {

View File

@ -112,9 +112,14 @@ AggroDistanceCheckEnabled = False
AggroDistanceCheckRange = 1500 AggroDistanceCheckRange = 1500
# Use maximum aggro distance check for raids. # Use maximum aggro distance check for raids.
# Grandbosses are excluded.
# Default: False # Default: False
AggroDistanceCheckRaids = False AggroDistanceCheckRaids = False
# Maximum distance raids can be pulled away from spawn.
# Default: 3000
AggroDistanceCheckRaidRange = 3000
# Use maximum aggro distance check in instances. # Use maximum aggro distance check in instances.
# Default: False # Default: False
AggroDistanceCheckInstances = False AggroDistanceCheckInstances = False

View File

@ -728,6 +728,7 @@ public class Config
public static boolean AGGRO_DISTANCE_CHECK_ENABLED; public static boolean AGGRO_DISTANCE_CHECK_ENABLED;
public static int AGGRO_DISTANCE_CHECK_RANGE; public static int AGGRO_DISTANCE_CHECK_RANGE;
public static boolean AGGRO_DISTANCE_CHECK_RAIDS; 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_INSTANCES;
public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE; public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE;
public static boolean GUARD_ATTACK_AGGRO_MOB; 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_ENABLED = NPC.getBoolean("AggroDistanceCheckEnabled", false);
AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500); AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500);
AGGRO_DISTANCE_CHECK_RAIDS = NPC.getBoolean("AggroDistanceCheckRaids", false); 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_INSTANCES = NPC.getBoolean("AggroDistanceCheckInstances", false);
AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true); AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true);
GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false); GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false);

View File

@ -734,10 +734,10 @@ public class AttackableAI extends CreatureAI
return; 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(); 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))) if ((Config.AGGRO_DISTANCE_CHECK_RAIDS || !npc.isRaid()) && (Config.AGGRO_DISTANCE_CHECK_INSTANCES || (npc.getInstanceId() == 0)))
{ {

View File

@ -112,9 +112,14 @@ AggroDistanceCheckEnabled = False
AggroDistanceCheckRange = 1500 AggroDistanceCheckRange = 1500
# Use maximum aggro distance check for raids. # Use maximum aggro distance check for raids.
# Grandbosses are excluded.
# Default: False # Default: False
AggroDistanceCheckRaids = False AggroDistanceCheckRaids = False
# Maximum distance raids can be pulled away from spawn.
# Default: 3000
AggroDistanceCheckRaidRange = 3000
# Use maximum aggro distance check in instances. # Use maximum aggro distance check in instances.
# Default: False # Default: False
AggroDistanceCheckInstances = False AggroDistanceCheckInstances = False

View File

@ -732,6 +732,7 @@ public class Config
public static boolean AGGRO_DISTANCE_CHECK_ENABLED; public static boolean AGGRO_DISTANCE_CHECK_ENABLED;
public static int AGGRO_DISTANCE_CHECK_RANGE; public static int AGGRO_DISTANCE_CHECK_RANGE;
public static boolean AGGRO_DISTANCE_CHECK_RAIDS; 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_INSTANCES;
public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE; public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE;
public static boolean GUARD_ATTACK_AGGRO_MOB; 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_ENABLED = NPC.getBoolean("AggroDistanceCheckEnabled", false);
AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500); AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500);
AGGRO_DISTANCE_CHECK_RAIDS = NPC.getBoolean("AggroDistanceCheckRaids", false); 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_INSTANCES = NPC.getBoolean("AggroDistanceCheckInstances", false);
AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true); AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true);
GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false); GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false);

View File

@ -734,10 +734,10 @@ public class AttackableAI extends CreatureAI
return; 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(); 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))) if ((Config.AGGRO_DISTANCE_CHECK_RAIDS || !npc.isRaid()) && (Config.AGGRO_DISTANCE_CHECK_INSTANCES || (npc.getInstanceId() == 0)))
{ {

View File

@ -99,9 +99,14 @@ AggroDistanceCheckEnabled = False
AggroDistanceCheckRange = 1500 AggroDistanceCheckRange = 1500
# Use maximum aggro distance check for raids. # Use maximum aggro distance check for raids.
# Grandbosses are excluded.
# Default: False # Default: False
AggroDistanceCheckRaids = False AggroDistanceCheckRaids = False
# Maximum distance raids can be pulled away from spawn.
# Default: 3000
AggroDistanceCheckRaidRange = 3000
# Use maximum aggro distance check in instances. # Use maximum aggro distance check in instances.
# Default: False # Default: False
AggroDistanceCheckInstances = False AggroDistanceCheckInstances = False

View File

@ -629,6 +629,7 @@ public class Config
public static boolean AGGRO_DISTANCE_CHECK_ENABLED; public static boolean AGGRO_DISTANCE_CHECK_ENABLED;
public static int AGGRO_DISTANCE_CHECK_RANGE; public static int AGGRO_DISTANCE_CHECK_RANGE;
public static boolean AGGRO_DISTANCE_CHECK_RAIDS; 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_INSTANCES;
public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE; public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE;
public static boolean GUARD_ATTACK_AGGRO_MOB; 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_ENABLED = NPC.getBoolean("AggroDistanceCheckEnabled", true);
AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500); AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500);
AGGRO_DISTANCE_CHECK_RAIDS = NPC.getBoolean("AggroDistanceCheckRaids", false); 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_INSTANCES = NPC.getBoolean("AggroDistanceCheckInstances", false);
AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true); AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true);
GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false); GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false);

View File

@ -601,10 +601,10 @@ public class AttackableAI extends CreatureAI
return; 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(); 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())) if ((Config.AGGRO_DISTANCE_CHECK_RAIDS || !npc.isRaid()) && (Config.AGGRO_DISTANCE_CHECK_INSTANCES || !npc.isInInstance()))
{ {

View File

@ -99,9 +99,14 @@ AggroDistanceCheckEnabled = False
AggroDistanceCheckRange = 1500 AggroDistanceCheckRange = 1500
# Use maximum aggro distance check for raids. # Use maximum aggro distance check for raids.
# Grandbosses are excluded.
# Default: False # Default: False
AggroDistanceCheckRaids = False AggroDistanceCheckRaids = False
# Maximum distance raids can be pulled away from spawn.
# Default: 3000
AggroDistanceCheckRaidRange = 3000
# Use maximum aggro distance check in instances. # Use maximum aggro distance check in instances.
# Default: False # Default: False
AggroDistanceCheckInstances = False AggroDistanceCheckInstances = False

View File

@ -629,6 +629,7 @@ public class Config
public static boolean AGGRO_DISTANCE_CHECK_ENABLED; public static boolean AGGRO_DISTANCE_CHECK_ENABLED;
public static int AGGRO_DISTANCE_CHECK_RANGE; public static int AGGRO_DISTANCE_CHECK_RANGE;
public static boolean AGGRO_DISTANCE_CHECK_RAIDS; 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_INSTANCES;
public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE; public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE;
public static boolean GUARD_ATTACK_AGGRO_MOB; 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_ENABLED = NPC.getBoolean("AggroDistanceCheckEnabled", true);
AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500); AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500);
AGGRO_DISTANCE_CHECK_RAIDS = NPC.getBoolean("AggroDistanceCheckRaids", false); 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_INSTANCES = NPC.getBoolean("AggroDistanceCheckInstances", false);
AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true); AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true);
GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false); GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false);

View File

@ -601,10 +601,10 @@ public class AttackableAI extends CreatureAI
return; 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(); 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())) if ((Config.AGGRO_DISTANCE_CHECK_RAIDS || !npc.isRaid()) && (Config.AGGRO_DISTANCE_CHECK_INSTANCES || !npc.isInInstance()))
{ {

View File

@ -99,9 +99,14 @@ AggroDistanceCheckEnabled = False
AggroDistanceCheckRange = 1500 AggroDistanceCheckRange = 1500
# Use maximum aggro distance check for raids. # Use maximum aggro distance check for raids.
# Grandbosses are excluded.
# Default: False # Default: False
AggroDistanceCheckRaids = False AggroDistanceCheckRaids = False
# Maximum distance raids can be pulled away from spawn.
# Default: 3000
AggroDistanceCheckRaidRange = 3000
# Use maximum aggro distance check in instances. # Use maximum aggro distance check in instances.
# Default: False # Default: False
AggroDistanceCheckInstances = False AggroDistanceCheckInstances = False

View File

@ -629,6 +629,7 @@ public class Config
public static boolean AGGRO_DISTANCE_CHECK_ENABLED; public static boolean AGGRO_DISTANCE_CHECK_ENABLED;
public static int AGGRO_DISTANCE_CHECK_RANGE; public static int AGGRO_DISTANCE_CHECK_RANGE;
public static boolean AGGRO_DISTANCE_CHECK_RAIDS; 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_INSTANCES;
public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE; public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE;
public static boolean GUARD_ATTACK_AGGRO_MOB; 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_ENABLED = NPC.getBoolean("AggroDistanceCheckEnabled", true);
AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500); AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500);
AGGRO_DISTANCE_CHECK_RAIDS = NPC.getBoolean("AggroDistanceCheckRaids", false); 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_INSTANCES = NPC.getBoolean("AggroDistanceCheckInstances", false);
AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true); AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true);
GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false); GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false);

View File

@ -601,10 +601,10 @@ public class AttackableAI extends CreatureAI
return; 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(); 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())) if ((Config.AGGRO_DISTANCE_CHECK_RAIDS || !npc.isRaid()) && (Config.AGGRO_DISTANCE_CHECK_INSTANCES || !npc.isInInstance()))
{ {

View File

@ -99,9 +99,14 @@ AggroDistanceCheckEnabled = False
AggroDistanceCheckRange = 1500 AggroDistanceCheckRange = 1500
# Use maximum aggro distance check for raids. # Use maximum aggro distance check for raids.
# Grandbosses are excluded.
# Default: False # Default: False
AggroDistanceCheckRaids = False AggroDistanceCheckRaids = False
# Maximum distance raids can be pulled away from spawn.
# Default: 3000
AggroDistanceCheckRaidRange = 3000
# Use maximum aggro distance check in instances. # Use maximum aggro distance check in instances.
# Default: False # Default: False
AggroDistanceCheckInstances = False AggroDistanceCheckInstances = False

View File

@ -629,6 +629,7 @@ public class Config
public static boolean AGGRO_DISTANCE_CHECK_ENABLED; public static boolean AGGRO_DISTANCE_CHECK_ENABLED;
public static int AGGRO_DISTANCE_CHECK_RANGE; public static int AGGRO_DISTANCE_CHECK_RANGE;
public static boolean AGGRO_DISTANCE_CHECK_RAIDS; 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_INSTANCES;
public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE; public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE;
public static boolean GUARD_ATTACK_AGGRO_MOB; 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_ENABLED = NPC.getBoolean("AggroDistanceCheckEnabled", true);
AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500); AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500);
AGGRO_DISTANCE_CHECK_RAIDS = NPC.getBoolean("AggroDistanceCheckRaids", false); 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_INSTANCES = NPC.getBoolean("AggroDistanceCheckInstances", false);
AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true); AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true);
GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false); GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false);

View File

@ -601,10 +601,10 @@ public class AttackableAI extends CreatureAI
return; 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(); 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())) if ((Config.AGGRO_DISTANCE_CHECK_RAIDS || !npc.isRaid()) && (Config.AGGRO_DISTANCE_CHECK_INSTANCES || !npc.isInInstance()))
{ {

View File

@ -99,9 +99,14 @@ AggroDistanceCheckEnabled = False
AggroDistanceCheckRange = 1500 AggroDistanceCheckRange = 1500
# Use maximum aggro distance check for raids. # Use maximum aggro distance check for raids.
# Grandbosses are excluded.
# Default: False # Default: False
AggroDistanceCheckRaids = False AggroDistanceCheckRaids = False
# Maximum distance raids can be pulled away from spawn.
# Default: 3000
AggroDistanceCheckRaidRange = 3000
# Use maximum aggro distance check in instances. # Use maximum aggro distance check in instances.
# Default: False # Default: False
AggroDistanceCheckInstances = False AggroDistanceCheckInstances = False

View File

@ -629,6 +629,7 @@ public class Config
public static boolean AGGRO_DISTANCE_CHECK_ENABLED; public static boolean AGGRO_DISTANCE_CHECK_ENABLED;
public static int AGGRO_DISTANCE_CHECK_RANGE; public static int AGGRO_DISTANCE_CHECK_RANGE;
public static boolean AGGRO_DISTANCE_CHECK_RAIDS; 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_INSTANCES;
public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE; public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE;
public static boolean GUARD_ATTACK_AGGRO_MOB; 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_ENABLED = NPC.getBoolean("AggroDistanceCheckEnabled", true);
AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500); AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500);
AGGRO_DISTANCE_CHECK_RAIDS = NPC.getBoolean("AggroDistanceCheckRaids", false); 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_INSTANCES = NPC.getBoolean("AggroDistanceCheckInstances", false);
AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true); AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true);
GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false); GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false);

View File

@ -601,10 +601,10 @@ public class AttackableAI extends CreatureAI
return; 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(); 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())) if ((Config.AGGRO_DISTANCE_CHECK_RAIDS || !npc.isRaid()) && (Config.AGGRO_DISTANCE_CHECK_INSTANCES || !npc.isInInstance()))
{ {

View File

@ -99,9 +99,14 @@ AggroDistanceCheckEnabled = False
AggroDistanceCheckRange = 1500 AggroDistanceCheckRange = 1500
# Use maximum aggro distance check for raids. # Use maximum aggro distance check for raids.
# Grandbosses are excluded.
# Default: False # Default: False
AggroDistanceCheckRaids = False AggroDistanceCheckRaids = False
# Maximum distance raids can be pulled away from spawn.
# Default: 3000
AggroDistanceCheckRaidRange = 3000
# Use maximum aggro distance check in instances. # Use maximum aggro distance check in instances.
# Default: False # Default: False
AggroDistanceCheckInstances = False AggroDistanceCheckInstances = False

View File

@ -633,6 +633,7 @@ public class Config
public static boolean AGGRO_DISTANCE_CHECK_ENABLED; public static boolean AGGRO_DISTANCE_CHECK_ENABLED;
public static int AGGRO_DISTANCE_CHECK_RANGE; public static int AGGRO_DISTANCE_CHECK_RANGE;
public static boolean AGGRO_DISTANCE_CHECK_RAIDS; 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_INSTANCES;
public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE; public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE;
public static boolean GUARD_ATTACK_AGGRO_MOB; 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_ENABLED = NPC.getBoolean("AggroDistanceCheckEnabled", true);
AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500); AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500);
AGGRO_DISTANCE_CHECK_RAIDS = NPC.getBoolean("AggroDistanceCheckRaids", false); 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_INSTANCES = NPC.getBoolean("AggroDistanceCheckInstances", false);
AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true); AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true);
GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false); GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false);

View File

@ -601,10 +601,10 @@ public class AttackableAI extends CreatureAI
return; 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(); 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())) if ((Config.AGGRO_DISTANCE_CHECK_RAIDS || !npc.isRaid()) && (Config.AGGRO_DISTANCE_CHECK_INSTANCES || !npc.isInInstance()))
{ {

View File

@ -99,9 +99,14 @@ AggroDistanceCheckEnabled = False
AggroDistanceCheckRange = 1500 AggroDistanceCheckRange = 1500
# Use maximum aggro distance check for raids. # Use maximum aggro distance check for raids.
# Grandbosses are excluded.
# Default: False # Default: False
AggroDistanceCheckRaids = False AggroDistanceCheckRaids = False
# Maximum distance raids can be pulled away from spawn.
# Default: 3000
AggroDistanceCheckRaidRange = 3000
# Use maximum aggro distance check in instances. # Use maximum aggro distance check in instances.
# Default: False # Default: False
AggroDistanceCheckInstances = False AggroDistanceCheckInstances = False

View File

@ -638,6 +638,7 @@ public class Config
public static boolean AGGRO_DISTANCE_CHECK_ENABLED; public static boolean AGGRO_DISTANCE_CHECK_ENABLED;
public static int AGGRO_DISTANCE_CHECK_RANGE; public static int AGGRO_DISTANCE_CHECK_RANGE;
public static boolean AGGRO_DISTANCE_CHECK_RAIDS; 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_INSTANCES;
public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE; public static boolean AGGRO_DISTANCE_CHECK_RESTORE_LIFE;
public static boolean GUARD_ATTACK_AGGRO_MOB; 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_ENABLED = NPC.getBoolean("AggroDistanceCheckEnabled", true);
AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500); AGGRO_DISTANCE_CHECK_RANGE = NPC.getInt("AggroDistanceCheckRange", 1500);
AGGRO_DISTANCE_CHECK_RAIDS = NPC.getBoolean("AggroDistanceCheckRaids", false); 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_INSTANCES = NPC.getBoolean("AggroDistanceCheckInstances", false);
AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true); AGGRO_DISTANCE_CHECK_RESTORE_LIFE = NPC.getBoolean("AggroDistanceCheckRestoreLife", true);
GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false); GUARD_ATTACK_AGGRO_MOB = NPC.getBoolean("GuardAttackAggroMob", false);

View File

@ -601,10 +601,10 @@ public class AttackableAI extends CreatureAI
return; 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(); 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())) if ((Config.AGGRO_DISTANCE_CHECK_RAIDS || !npc.isRaid()) && (Config.AGGRO_DISTANCE_CHECK_INSTANCES || !npc.isInInstance()))
{ {