diff options
author | tartalo <none@none> | 2009-10-21 22:15:36 +0200 |
---|---|---|
committer | tartalo <none@none> | 2009-10-21 22:15:36 +0200 |
commit | 5e9c0d385ac862d11b0a1a6d894dce4ac172d39b (patch) | |
tree | bd31621418099c3b5eb79c7cf139a5fcbc7e842d /src | |
parent | 7a0bb775f04468259394204a38c1a09a597c33c4 (diff) |
* Fix possible server crash in Player::IsAtGroupRewardDistance, by Spp
* Fix possible server crash in Player::RewardPlayerAndGroupAtEvent
* Wintergrasp: Correct use of RewardPlayerAndGroupAtEvent, by Spp
--HG--
branch : trunk
Diffstat (limited to 'src')
-rw-r--r-- | src/game/Player.cpp | 4 | ||||
-rw-r--r-- | src/game/Wintergrasp.cpp | 6 |
2 files changed, 7 insertions, 3 deletions
diff --git a/src/game/Player.cpp b/src/game/Player.cpp index b2b87349cca..18ffff3a0b2 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -20289,6 +20289,8 @@ bool Player::RewardPlayerAndGroupAtKill(Unit* pVictim) void Player::RewardPlayerAndGroupAtEvent(uint32 creature_id, WorldObject* pRewardSource) { + if (!pRewardSource) + return; uint64 creature_guid = (pRewardSource && pRewardSource->GetTypeId()==TYPEID_UNIT) ? pRewardSource->GetGUID() : uint64(0); // prepare data for near group iteration @@ -20314,6 +20316,8 @@ void Player::RewardPlayerAndGroupAtEvent(uint32 creature_id, WorldObject* pRewar bool Player::IsAtGroupRewardDistance(WorldObject const* pRewardSource) const { + if (!pRewardSource) + return; const WorldObject* player = GetCorpse(); if(!player || isAlive()) player = this; diff --git a/src/game/Wintergrasp.cpp b/src/game/Wintergrasp.cpp index 1e88b63912b..778214ceecb 100644 --- a/src/game/Wintergrasp.cpp +++ b/src/game/Wintergrasp.cpp @@ -865,18 +865,18 @@ void OPvPWintergrasp::HandleKill(Player *killer, Unit *victim) { if (victim->getLevel() >= 70) ok = true; - killer->RewardPlayerAndGroupAtEvent(CRE_PVP_KILL, 0); + killer->RewardPlayerAndGroupAtEvent(CRE_PVP_KILL, victim); } else { switch(GetCreatureType(victim->GetEntry())) { case CREATURE_SIEGE_VEHICLE: - killer->RewardPlayerAndGroupAtEvent(CRE_PVP_KILL_V,0); + killer->RewardPlayerAndGroupAtEvent(CRE_PVP_KILL_V, victim); ok = true; break; case CREATURE_GUARD: - killer->RewardPlayerAndGroupAtEvent(CRE_PVP_KILL, 0); + killer->RewardPlayerAndGroupAtEvent(CRE_PVP_KILL, victim); ok = true; break; case CREATURE_TURRET: |