aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjackpoz <giacomopoz@gmail.com>2016-08-28 13:25:48 +0200
committerjackpoz <giacomopoz@gmail.com>2016-08-28 13:25:48 +0200
commit38f8a03781d98388408f7d4d9f906c311d21bdcc (patch)
tree6ab5a90334dbb9daa3ec05d1f8baf77cdddf771e
parent5b81f55141791292e438606c9d7d942e2f5a8d2b (diff)
Core/Loot: Fix group loot if player loot recipient disconnects
Fixes #13300
-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 54b953b4e12..4656b0a3c2e 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -8558,15 +8558,10 @@ void Player::SendLoot(ObjectGuid guid, LootType loot_type)
}
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())
{
@@ -8602,9 +8597,10 @@ void Player::SendLoot(ObjectGuid guid, LootType loot_type)
// 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())
{
@@ -8625,7 +8621,7 @@ void Player::SendLoot(ObjectGuid guid, LootType loot_type)
else
permission = NONE_PERMISSION;
}
- else if (recipient == this)
+ else if (creature->GetLootRecipient() == this)
permission = OWNER_PERMISSION;
else
permission = NONE_PERMISSION;