diff options
author | xinef1 <w.szyszko2@gmail.com> | 2017-02-05 23:42:31 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2017-02-05 23:42:31 +0100 |
commit | 14dfc377b48bc909894396e65d4e4ce89d9708b6 (patch) | |
tree | 4c4a44bbbbd26e1266f1ffead2ce16890035e335 /src/server/game/Groups/Group.cpp | |
parent | 075f0e26ccaea835f1b3b771b717e9edef0d0b59 (diff) |
Core/Misc: Various crash fixes (#19059)
* Replaced some FindPlayer calls with GetPlayer
Fixed some more crashes
* Correction
Diffstat (limited to 'src/server/game/Groups/Group.cpp')
-rw-r--r-- | src/server/game/Groups/Group.cpp | 36 |
1 files changed, 14 insertions, 22 deletions
diff --git a/src/server/game/Groups/Group.cpp b/src/server/game/Groups/Group.cpp index 617a955fea0..d931343b5e2 100644 --- a/src/server/game/Groups/Group.cpp +++ b/src/server/game/Groups/Group.cpp @@ -986,21 +986,18 @@ void Group::GroupLoot(Loot* loot, WorldObject* pLootedObject) Player* member = itr->GetSource(); if (!member || !member->GetSession()) continue; - if (i->AllowedForPlayer(member)) + if (member->IsAtGroupRewardDistance(pLootedObject) && i->AllowedForPlayer(member)) { - if (member->IsAtGroupRewardDistance(pLootedObject)) - { - r->totalPlayersRolling++; + r->totalPlayersRolling++; - if (member->GetPassOnGroupLoot()) - { - r->playerVote[member->GetGUID()] = PASS; - r->totalPass++; - // can't broadcast the pass now. need to wait until all rolling players are known. - } - else - r->playerVote[member->GetGUID()] = NOT_EMITED_YET; + if (member->GetPassOnGroupLoot()) + { + r->playerVote[member->GetGUID()] = PASS; + r->totalPass++; + // can't broadcast the pass now. need to wait until all rolling players are known. } + else + r->playerVote[member->GetGUID()] = NOT_EMITED_YET; } } @@ -1072,13 +1069,10 @@ void Group::GroupLoot(Loot* loot, WorldObject* pLootedObject) if (!member || !member->GetSession()) continue; - if (i->AllowedForPlayer(member)) + if (member->IsAtGroupRewardDistance(pLootedObject) && i->AllowedForPlayer(member)) { - if (member->IsAtGroupRewardDistance(pLootedObject)) - { - r->totalPlayersRolling++; - r->playerVote[member->GetGUID()] = NOT_EMITED_YET; - } + r->totalPlayersRolling++; + r->playerVote[member->GetGUID()] = NOT_EMITED_YET; } } @@ -1133,8 +1127,7 @@ void Group::NeedBeforeGreed(Loot* loot, WorldObject* lootedObject) if (!playerToRoll || !playerToRoll->GetSession()) continue; - bool allowedForPlayer = i->AllowedForPlayer(playerToRoll); - if (allowedForPlayer && playerToRoll->IsAtGroupRewardDistance(lootedObject)) + if (playerToRoll->IsAtGroupRewardDistance(lootedObject) && i->AllowedForPlayer(playerToRoll)) { r->totalPlayersRolling++; if (playerToRoll->GetPassOnGroupLoot()) @@ -1209,8 +1202,7 @@ void Group::NeedBeforeGreed(Loot* loot, WorldObject* lootedObject) if (!playerToRoll || !playerToRoll->GetSession()) continue; - bool allowedForPlayer = i->AllowedForPlayer(playerToRoll); - if (allowedForPlayer && playerToRoll->IsAtGroupRewardDistance(lootedObject)) + if (playerToRoll->IsAtGroupRewardDistance(lootedObject) && i->AllowedForPlayer(playerToRoll)) { r->totalPlayersRolling++; r->playerVote[playerToRoll->GetGUID()] = NOT_EMITED_YET; |