aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKillyana <morphone1@gmail.com>2019-04-23 16:43:49 +0200
committerShauren <shauren.trinity@gmail.com>2021-12-02 00:39:19 +0100
commit62d3010e56e018ffab0d3a0548d0b8ec51ab9964 (patch)
treefb546380029bd7c1bb05112901493e2f2c544a44 /src
parenta290fe1c1417bfbeada8530bd172c74884bfaa1c (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)
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/GameObject/GameObject.cpp9
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);