diff options
author | Trazom62 <none@none> | 2010-02-28 21:34:31 +0100 |
---|---|---|
committer | Trazom62 <none@none> | 2010-02-28 21:34:31 +0100 |
commit | 4c16bff8e62ca894f6411767706a74d687d04309 (patch) | |
tree | e53c1e72378c99618bfddb584641dfe3927fba81 | |
parent | 3ffeb5f5dddac4ec7314b28d9829f34f95b5f191 (diff) |
Fix mana set to 0 when mob dies. Thanks Malcrom.
--HG--
branch : trunk
-rw-r--r-- | src/game/Creature.cpp | 5 | ||||
-rw-r--r-- | src/game/Unit.cpp | 4 |
2 files changed, 4 insertions, 5 deletions
diff --git a/src/game/Creature.cpp b/src/game/Creature.cpp index bb93b844c1d..3591179eb23 100644 --- a/src/game/Creature.cpp +++ b/src/game/Creature.cpp @@ -1484,6 +1484,9 @@ void Creature::setDeathState(DeathState s) if(m_formation && m_formation->getLeader() == this) m_formation->FormationReset(true); + SetHealth(0); + SetPower(getPowerType(),0); + if ((canFly() || IsFlying()) && FallGround()) return; @@ -1564,7 +1567,6 @@ void Creature::Respawn(bool force) if (m_isDeadByDefault) { setDeathState(JUST_DIED); - SetHealth(0); i_motionMaster.Clear(); clearUnitState(UNIT_STAT_ALL_STATE); LoadCreaturesAddon(true); @@ -1608,7 +1610,6 @@ void Creature::ForcedDespawn(uint32 timeMSToDespawn) setDeathState(JUST_DIED); RemoveCorpse(); - SetHealth(0); // just for nice GM-mode view } bool Creature::IsImmunedToSpell(SpellEntry const* spellInfo) diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 60cc59a1311..644b2430b6f 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -658,7 +658,6 @@ uint32 Unit::DealDamage(Unit *pVictim, uint32 damage, CleanDamage const* cleanDa if (damage >= pVictim->GetHealth()) { pVictim->setDeathState(JUST_DIED); - pVictim->SetHealth(0); CreatureInfo const* cInfo = ((Creature*)pVictim)->GetCreatureInfo(); if (cInfo && cInfo->lootid) @@ -11997,6 +11996,7 @@ void Unit::setDeathState(DeathState s) //without this when removing IncreaseMaxHealth aura player may stuck with 1 hp //do not why since in IncreaseMaxHealth currenthealth is checked SetHealth(0); + SetPower(getPowerType(),0); } else if (s == JUST_ALIVED) RemoveFlag (UNIT_FIELD_FLAGS, UNIT_FLAG_SKINNABLE); // clear skinnable for creature and player (at battleground) @@ -14550,8 +14550,6 @@ void Unit::Kill(Unit *pVictim, bool durabilityLoss) //sLog.outError("%u kill %u", GetEntry(), pVictim->GetEntry()); - pVictim->SetHealth(0); - // find player: owner of controlled `this` or `this` itself maybe Player *player = GetCharmerOrOwnerPlayerOrPlayerItself(); |