diff options
Diffstat (limited to 'src/server')
| -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);  }  | 
