diff options
| author | Sebastian Valle Herrera <subv2112@gmail.com> | 2014-06-24 15:21:34 -0500 |
|---|---|---|
| committer | Sebastian Valle Herrera <subv2112@gmail.com> | 2014-06-24 15:21:34 -0500 |
| commit | 3f21b14bc0cb8425ee2d60e6d4864250d22b1762 (patch) | |
| tree | 30843b3a5392f3c958efda92b3bd782cbe0904d2 /src | |
| parent | b3ddccb389db9374922683f600a9687a237ea712 (diff) | |
Core/Config: Fixed Rate.Corpse.Decay.Looted
Looted creatures should now correctly obey the Rate.Corpse.Decay.Looted value.
Closes #5358
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/game/Entities/Creature/Creature.cpp | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index c81ba409495..1823c7c96c2 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -2274,19 +2274,16 @@ void Creature::AllLootRemovedFromCorpse() if (m_corpseRemoveTime <= now) return; - float decayRate; + float decayRate = sWorld->getRate(RATE_CORPSE_DECAY_LOOTED); CreatureTemplate const* cinfo = GetCreatureTemplate(); - decayRate = sWorld->getRate(RATE_CORPSE_DECAY_LOOTED); - uint32 diff = uint32((m_corpseRemoveTime - now) * decayRate); - - m_respawnTime -= diff; - // corpse skinnable, but without skinning flag, and then skinned, corpse will despawn next update if (cinfo && cinfo->SkinLootId) m_corpseRemoveTime = time(NULL); else - m_corpseRemoveTime -= diff; + m_corpseRemoveTime = now + m_corpseDelay * decayRate; + + m_respawnTime = m_corpseRemoveTime + m_respawnTime; } } |
