aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMalcrom <malcromdev@gmail.com>2017-04-24 09:19:58 -0230
committerAokromes <Aokromes@users.noreply.github.com>2017-04-24 13:49:58 +0200
commitde0bbf405641e8284d24fe2e71a99e364f8e970a (patch)
tree092b4cb41422670b313d751b7f2a9af855729763
parentd4759e43f1e16fbbdfd30889f5277690fb2a3896 (diff)
Core/Creature: Fixed ForcedDespawn
-rw-r--r--src/server/game/Entities/Creature/Creature.cpp13
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);
}