Merge remote-tracking branch 'acore/HEAD' into test-staging
This commit is contained in:
@@ -1739,12 +1739,25 @@ uint32 Map::ApplyDynamicModeRespawnScaling(WorldObject const* obj, uint32 respaw
|
||||
if (obj->GetMap()->Instanceable())
|
||||
return respawnDelay;
|
||||
|
||||
// No quest givers or world bosses
|
||||
if (Creature const* creature = obj->ToCreature())
|
||||
{
|
||||
// Temporary spawns (no DB spawn id, e.g. summons / battlefield-spawned
|
||||
// creatures such as Wintergrasp turrets) are not part of the respawn system.
|
||||
if (!creature->GetSpawnId())
|
||||
return respawnDelay;
|
||||
|
||||
// No quest givers or world bosses
|
||||
if (creature->IsQuestGiver() || creature->isWorldBoss()
|
||||
|| (creature->GetCreatureTemplate()->rank == CREATURE_ELITE_RARE)
|
||||
|| (creature->GetCreatureTemplate()->rank == CREATURE_ELITE_RAREELITE))
|
||||
return respawnDelay;
|
||||
}
|
||||
// Temporary gameobjects (no DB spawn id) are likewise excluded.
|
||||
else if (GameObject const* go = obj->ToGameObject())
|
||||
{
|
||||
if (!go->GetSpawnId())
|
||||
return respawnDelay;
|
||||
}
|
||||
|
||||
auto it = _zonePlayerCountMap.find(obj->GetZoneId());
|
||||
if (it == _zonePlayerCountMap.end())
|
||||
|
||||
Reference in New Issue
Block a user