diff options
| author | Giuseppe Montesanto <montesanto.giuseppe@live.it> | 2012-01-01 04:34:14 +0100 |
|---|---|---|
| committer | Giuseppe Montesanto <montesanto.giuseppe@live.it> | 2012-01-01 04:34:14 +0100 |
| commit | bf73409f4934754fcd8b85e70a16ceb2715e60d0 (patch) | |
| tree | 400024ca6c866cc88d5bee7d9dac6ebfa725613f /src/server/game | |
| parent | ea7b0b064da0b43086c12df4651649d6dfec76cb (diff) | |
Fix 'The Undying' and 'The Immortal' achievements.
Diffstat (limited to 'src/server/game')
| -rwxr-xr-x | src/server/game/Entities/Creature/Creature.cpp | 3 | ||||
| -rwxr-xr-x | src/server/game/Entities/Unit/Unit.cpp | 4 | ||||
| -rwxr-xr-x | src/server/game/Maps/ZoneScript.h | 2 |
3 files changed, 5 insertions, 4 deletions
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index f97d01a42a4..aac7e55a4a7 100755 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -1507,9 +1507,6 @@ void Creature::setDeathState(DeathState s) if (m_formation && m_formation->getLeader() == this) m_formation->FormationReset(true); - if (ZoneScript* zoneScript = GetZoneScript()) - zoneScript->OnCreatureDeath(this); - if ((canFly() || IsFlying()) && FallGround()) return; diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index fec9a13192c..981318fbdeb 100755 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -12750,6 +12750,10 @@ void Unit::setDeathState(DeathState s) // do not why since in IncreaseMaxHealth currenthealth is checked SetHealth(0); SetPower(getPowerType(), 0); + + // players in instance don't have ZoneScript, but they have InstanceScript + if (ZoneScript* zoneScript = GetZoneScript() ? GetZoneScript() : (ZoneScript*)GetInstanceScript()) + zoneScript->OnUnitDeath(this); } else if (s == JUST_ALIVED) RemoveFlag (UNIT_FIELD_FLAGS, UNIT_FLAG_SKINNABLE); // clear skinnable for creature and player (at battleground) diff --git a/src/server/game/Maps/ZoneScript.h b/src/server/game/Maps/ZoneScript.h index 58ba9ae2c43..70239baefaf 100755 --- a/src/server/game/Maps/ZoneScript.h +++ b/src/server/game/Maps/ZoneScript.h @@ -37,7 +37,7 @@ class ZoneScript virtual void OnGameObjectCreate(GameObject* /*go*/) {} virtual void OnGameObjectRemove(GameObject* /*go*/) {} - virtual void OnCreatureDeath(Creature* /*creature*/) {} + virtual void OnUnitDeath(Unit* /*unit*/) {} //All-purpose data storage 64 bit virtual uint64 GetData64(uint32 /*DataId*/) { return 0; } |
