Core/Spawns: Exclude spawn groups with MANUAL_SPAWN flag from automatic spawning/despawning with conditions
Port From (https://github.com/TrinityCore/TrinityCore/commit/769591c99ef7bd9c58eacd5c0272387af9a74e4a)
This commit is contained in:
@@ -2420,6 +2420,10 @@ namespace Game.Maps
|
|||||||
var spawnGroups = Global.ObjectMgr.GetSpawnGroupsForMap(GetId());
|
var spawnGroups = Global.ObjectMgr.GetSpawnGroupsForMap(GetId());
|
||||||
foreach (uint spawnGroupId in spawnGroups)
|
foreach (uint spawnGroupId in spawnGroups)
|
||||||
{
|
{
|
||||||
|
SpawnGroupTemplateData spawnGroupTemplate = GetSpawnGroupData(spawnGroupId);
|
||||||
|
if (spawnGroupTemplate.flags.HasFlag(SpawnGroupFlags.ManualSpawn))
|
||||||
|
continue;
|
||||||
|
|
||||||
bool isActive = IsSpawnGroupActive(spawnGroupId);
|
bool isActive = IsSpawnGroupActive(spawnGroupId);
|
||||||
bool shouldBeActive = Global.ConditionMgr.IsMapMeetingNotGroupedConditions(ConditionSourceType.SpawnGroup, spawnGroupId, this);
|
bool shouldBeActive = Global.ConditionMgr.IsMapMeetingNotGroupedConditions(ConditionSourceType.SpawnGroup, spawnGroupId, this);
|
||||||
if (isActive == shouldBeActive)
|
if (isActive == shouldBeActive)
|
||||||
@@ -2427,7 +2431,7 @@ namespace Game.Maps
|
|||||||
|
|
||||||
if (shouldBeActive)
|
if (shouldBeActive)
|
||||||
SpawnGroupSpawn(spawnGroupId);
|
SpawnGroupSpawn(spawnGroupId);
|
||||||
else if (GetSpawnGroupData(spawnGroupId).flags.HasFlag(SpawnGroupFlags.DespawnOnConditionFailure))
|
else if (spawnGroupTemplate.flags.HasFlag(SpawnGroupFlags.DespawnOnConditionFailure))
|
||||||
SpawnGroupDespawn(spawnGroupId, true);
|
SpawnGroupDespawn(spawnGroupId, true);
|
||||||
else
|
else
|
||||||
SetSpawnGroupInactive(spawnGroupId);
|
SetSpawnGroupInactive(spawnGroupId);
|
||||||
|
|||||||
Reference in New Issue
Block a user