*Use map pointer of killed creature instead of player pointer to prevent crash in case killer is not in world.
--HG-- branch : trunk
This commit is contained in:
+1
-1
@@ -117,7 +117,7 @@ namespace Trinity
|
|||||||
(((Creature*)u)->GetCreatureInfo()->flags_extra & CREATURE_FLAG_EXTRA_NO_XP_AT_KILL) ))
|
(((Creature*)u)->GetCreatureInfo()->flags_extra & CREATURE_FLAG_EXTRA_NO_XP_AT_KILL) ))
|
||||||
return 0;
|
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 )
|
if( xp_gain == 0 )
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
|||||||
@@ -13668,6 +13668,7 @@ void Unit::SetToNotify()
|
|||||||
|
|
||||||
void Unit::Kill(Unit *pVictim, bool durabilityLoss)
|
void Unit::Kill(Unit *pVictim, bool durabilityLoss)
|
||||||
{
|
{
|
||||||
|
assert(pVictim->IsInWorld() && pVictim->FindMap());
|
||||||
// Prevent killing unit twice (and giving reward from kill twice)
|
// Prevent killing unit twice (and giving reward from kill twice)
|
||||||
if (!pVictim->GetHealth())
|
if (!pVictim->GetHealth())
|
||||||
return;
|
return;
|
||||||
|
|||||||
Reference in New Issue
Block a user