diff options
author | QAston <none@none> | 2009-07-20 16:59:15 +0200 |
---|---|---|
committer | QAston <none@none> | 2009-07-20 16:59:15 +0200 |
commit | b1183c931b1dcbffa83d860c32d1afa308bb03e6 (patch) | |
tree | fa3a9ae62286b02c59a434afa4b79d013fa63632 | |
parent | ffcbd11b2c4f72f9390486081d813bcf54a41179 (diff) |
*Use map pointer of killed creature instead of player pointer to prevent crash in case killer is not in world.
--HG--
branch : trunk
-rw-r--r-- | src/game/Formulas.h | 2 | ||||
-rw-r--r-- | src/game/Unit.cpp | 1 |
2 files changed, 2 insertions, 1 deletions
diff --git a/src/game/Formulas.h b/src/game/Formulas.h index 041c0621c74..2ec175f95be 100644 --- a/src/game/Formulas.h +++ b/src/game/Formulas.h @@ -117,7 +117,7 @@ namespace Trinity (((Creature*)u)->GetCreatureInfo()->flags_extra & CREATURE_FLAG_EXTRA_NO_XP_AT_KILL) )) return 0; - uint32 xp_gain= BaseGain(pl->getLevel(), u->getLevel(), GetContentLevelsForMapAndZone(pl->GetMapId(),pl->GetZoneId())); + uint32 xp_gain= BaseGain(pl->getLevel(), u->getLevel(), GetContentLevelsForMapAndZone(u->GetMapId(),u->GetZoneId())); if( xp_gain == 0 ) return 0; diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 66a06135ec5..24128fc85c5 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -13668,6 +13668,7 @@ void Unit::SetToNotify() void Unit::Kill(Unit *pVictim, bool durabilityLoss) { + assert(pVictim->IsInWorld() && pVictim->FindMap()); // Prevent killing unit twice (and giving reward from kill twice) if (!pVictim->GetHealth()) return; |