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

@@ -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);

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.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)))
{