Core/Spawns: Allow spawn groups with MANUAL_SPAWN flag to automatically despawn if conditions are not met
Port From (https://github.com/TrinityCore/TrinityCore/commit/97d413c9b4be6af296490580f7acc1d66e606ca9)
This commit is contained in:
+10
-2
@@ -2374,11 +2374,19 @@ namespace Game.Maps
|
||||
foreach (uint spawnGroupId in spawnGroups)
|
||||
{
|
||||
SpawnGroupTemplateData spawnGroupTemplate = GetSpawnGroupData(spawnGroupId);
|
||||
if (spawnGroupTemplate.flags.HasFlag(SpawnGroupFlags.ManualSpawn))
|
||||
continue;
|
||||
|
||||
bool isActive = IsSpawnGroupActive(spawnGroupId);
|
||||
bool shouldBeActive = Global.ConditionMgr.IsMapMeetingNotGroupedConditions(ConditionSourceType.SpawnGroup, spawnGroupId, this);
|
||||
|
||||
if (spawnGroupTemplate.flags.HasFlag(SpawnGroupFlags.ManualSpawn))
|
||||
{
|
||||
// Only despawn the group if it isn't meeting conditions
|
||||
if (isActive && !shouldBeActive && spawnGroupTemplate.flags.HasFlag(SpawnGroupFlags.DespawnOnConditionFailure))
|
||||
SpawnGroupDespawn(spawnGroupId, true);
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
if (isActive == shouldBeActive)
|
||||
continue;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user