diff options
-rw-r--r-- | src/server/game/Entities/Creature/Creature.cpp | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index 3d6c0a25740..0e5f8ac4cbb 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -1821,22 +1821,27 @@ void Creature::ForcedDespawn(uint32 timeMSToDespawn, Seconds const& forceRespawn return; } - if (IsAlive()) + if (forceRespawnTimer > Seconds::zero()) { - if (forceRespawnTimer > Seconds::zero()) + if (IsAlive()) { uint32 respawnDelay = m_respawnDelay; uint32 corpseDelay = m_corpseDelay; m_respawnDelay = forceRespawnTimer.count(); m_corpseDelay = 0; setDeathState(JUST_DIED); - m_respawnDelay = respawnDelay; m_corpseDelay = corpseDelay; } else - setDeathState(JUST_DIED); + { + m_corpseRemoveTime = time(NULL); + m_respawnTime = time(NULL) + forceRespawnTimer.count(); + } } + else + if (IsAlive()) + setDeathState(JUST_DIED); RemoveCorpse(false); } |