diff options
author | jackpoz <giacomopoz@gmail.com> | 2016-08-28 13:25:48 +0200 |
---|---|---|
committer | joschiwald <joschiwald.trinity@gmail.com> | 2017-02-18 17:21:00 +0100 |
commit | 3cd6e1dd82b27862c7d6e85cdea544f610a679d2 (patch) | |
tree | 2c9fa9b71a9600b90891f1d101856ea36aa69560 | |
parent | d4a2a725e48d44ecd9f986b28c1ef6ce5f56edef (diff) |
Core/Loot: Fix group loot if player loot recipient disconnects
Fixes #13300
(cherry picked from commit 38f8a03781d98388408f7d4d9f906c311d21bdcc)
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 1a1fab485fb..999dfbde7b4 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -8344,15 +8344,10 @@ void Player::SendLoot(ObjectGuid guid, LootType loot_type, bool aeLooting/* = fa } else { - // the player whose group may loot the corpse - Player* recipient = creature->GetLootRecipient(); - if (!recipient) - return; - if (loot->loot_type == LOOT_NONE) { // for creature, loot is filled when creature is killed. - if (Group* group = recipient->GetGroup()) + if (Group* group = creature->GetLootRecipientGroup()) { switch (group->GetLootMethod()) { @@ -8385,9 +8380,10 @@ void Player::SendLoot(ObjectGuid guid, LootType loot_type, bool aeLooting/* = fa // set group rights only for loot_type != LOOT_SKINNING else { - if (Group* group = GetGroup()) + if (creature->GetLootRecipientGroup()) { - if (group == recipient->GetGroup()) + Group* group = GetGroup(); + if (group == creature->GetLootRecipientGroup()) { switch (group->GetLootMethod()) { @@ -8405,7 +8401,7 @@ void Player::SendLoot(ObjectGuid guid, LootType loot_type, bool aeLooting/* = fa else permission = NONE_PERMISSION; } - else if (recipient == this) + else if (creature->GetLootRecipient() == this) permission = OWNER_PERMISSION; else permission = NONE_PERMISSION; |