Option to force delete spawned minions upon master death.

This commit is contained in:
MobiusDev
2018-04-05 03:45:54 +00:00
parent 35e97edbba
commit c0b724cb17
21 changed files with 147 additions and 154 deletions

View File

@@ -161,6 +161,11 @@ RaidMinionRespawnTime = 300000
# Format: minionId1,timeInSec1;minionId2,timeInSec2
CustomMinionsRespawnTime = 22450,30;22371,120;22543,0;25545,0;22424,30;22425,30;22426,30;22427,30;22428,30;22429,30;22430,30;22432,30;22433,30;22434,30;22435,30;22436,30;22437,30;22438,30;25596,30;25605,0;25606,0;25607,0;25608,0
# Force delete spawned minions upon master death.
# By default minions are deleted only for raidbosses.
# Default: False
ForceDeleteMinions = False
# Disable Raid Curse if raid more than 8 levels lower.
# Caution: drop will be reduced or even absent if DeepBlue drop rules enabled.
# Default: False

View File

@@ -651,6 +651,7 @@ public final class Config
public static float RAID_MIN_RESPAWN_MULTIPLIER;
public static float RAID_MAX_RESPAWN_MULTIPLIER;
public static boolean RAID_DISABLE_CURSE;
public static boolean FORCE_DELETE_MINIONS;
public static int RAID_CHAOS_TIME;
public static int GRAND_CHAOS_TIME;
public static int MINION_CHAOS_TIME;
@@ -2055,6 +2056,7 @@ public final class Config
}
}
}
FORCE_DELETE_MINIONS = NPC.getBoolean("ForceDeleteMinions", false);
RAID_DISABLE_CURSE = NPC.getBoolean("DisableRaidCurse", false);
RAID_CHAOS_TIME = NPC.getInt("RaidChaosTime", 10);

View File

@@ -88,25 +88,6 @@ public class MinionList
}
}
/**
* Delete all spawned minions and try to reuse them.
*/
public void deleteSpawnedMinions()
{
if (!_spawnedMinions.isEmpty())
{
for (L2MonsterInstance minion : _spawnedMinions)
{
if (minion != null)
{
minion.setLeader(null);
minion.deleteMe();
}
}
_spawnedMinions.clear();
}
}
/**
* Called on the minion spawn and added them in the list of the spawned minions.
* @param minion
@@ -118,13 +99,24 @@ public class MinionList
/**
* Called on the master death/delete.
* @param force if true - force delete of the spawned minions By default minions deleted only for raidbosses
* @param force - When true, force delete of the spawned minions. By default minions are deleted only for raidbosses.
*/
public void onMasterDie(boolean force)
{
if (_master.isRaid() || force)
if (_master.isRaid() || force || Config.FORCE_DELETE_MINIONS)
{
deleteSpawnedMinions();
if (!_spawnedMinions.isEmpty())
{
for (L2MonsterInstance minion : _spawnedMinions)
{
if (minion != null)
{
minion.setLeader(null);
minion.deleteMe();
}
}
_spawnedMinions.clear();
}
}
}