diff options
author | Killyana <morphone1@gmail.com> | 2019-04-23 16:43:49 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2021-12-02 00:39:19 +0100 |
commit | 62d3010e56e018ffab0d3a0548d0b8ec51ab9964 (patch) | |
tree | fb546380029bd7c1bb05112901493e2f2c544a44 | |
parent | a290fe1c1417bfbeada8530bd172c74884bfaa1c (diff) |
Core/GameObject: Delete summoned gobs and DestroyForNearbyPlayers gobs spawned with negative spawn time once the gob is deactivated
(cherry picked from commit 0e8e3828f48120629b642d0de1db704fd0bb86cb)
(cherry picked from commit 65afe47580e84a006eb6ce506623d3719ae5bc9b)
(cherry picked from commit 21667f97cbd519dbef1650cd29d53f26443441f3)
-rw-r--r-- | src/server/game/Entities/GameObject/GameObject.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp index d12c8bae8de..38ef02307b6 100644 --- a/src/server/game/Entities/GameObject/GameObject.cpp +++ b/src/server/game/Entities/GameObject/GameObject.cpp @@ -919,13 +919,20 @@ void GameObject::Update(uint32 diff) if (!m_respawnDelayTime) return; - if (!m_spawnedByDefault) + if (!m_spawnId) { m_respawnTime = 0; Delete(); return; } + if (!m_spawnedByDefault) + { + m_respawnTime = 0; + DestroyForNearbyPlayers(); + return; + } + uint32 respawnDelay = m_respawnDelayTime; if (uint32 scalingMode = sWorld->getIntConfig(CONFIG_RESPAWN_DYNAMICMODE)) GetMap()->ApplyDynamicModeRespawnScaling(this, this->m_spawnId, respawnDelay, scalingMode); |