aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjackpoz <giacomopoz@gmail.com>2016-08-28 13:25:48 +0200
committerjoschiwald <joschiwald.trinity@gmail.com>2017-02-18 17:21:00 +0100
commit3cd6e1dd82b27862c7d6e85cdea544f610a679d2 (patch)
tree2c9fa9b71a9600b90891f1d101856ea36aa69560
parentd4a2a725e48d44ecd9f986b28c1ef6ce5f56edef (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.cpp14
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;