diff options
author | DDuarte <dnpd.dd@gmail.com> | 2014-09-09 23:11:13 +0100 |
---|---|---|
committer | DDuarte <dnpd.dd@gmail.com> | 2014-09-09 23:11:37 +0100 |
commit | 2bba21910692cf32b8ec333be3c4423d1ad18a43 (patch) | |
tree | 335173ab34ea4d425d3959cf37664799adef60a5 /src | |
parent | 04415f33a7646f9f2a148a087a1603826599fc76 (diff) |
Core/Loot: Fix some issues with master loot
Thanks to @PortgasDAce for the initial patch
Closes #12732
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Loot/LootMgr.cpp | 10 |
2 files changed, 10 insertions, 2 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 0e1e53cfe4c..f7ef9a3d895 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -17831,6 +17831,7 @@ bool Player::isAllowedToLoot(const Creature* creature) switch (thisGroup->GetLootMethod()) { + case MASTER_LOOT: case FREE_FOR_ALL: return true; case ROUND_ROBIN: @@ -17840,7 +17841,6 @@ bool Player::isAllowedToLoot(const Creature* creature) return true; return loot->hasItemFor(this); - case MASTER_LOOT: case GROUP_LOOT: case NEED_BEFORE_GREED: // may only loot if the player is the loot roundrobin player diff --git a/src/server/game/Loot/LootMgr.cpp b/src/server/game/Loot/LootMgr.cpp index 270af559f0b..cf50dbcda52 100644 --- a/src/server/game/Loot/LootMgr.cpp +++ b/src/server/game/Loot/LootMgr.cpp @@ -898,8 +898,16 @@ ByteBuffer& operator<<(ByteBuffer& b, LootView const& lv) slot_type = LOOT_SLOT_TYPE_ROLL_ONGOING; break; case MASTER_PERMISSION: - slot_type = LOOT_SLOT_TYPE_MASTER; + { + if (lv.viewer->GetGroup()) + { + if (lv.viewer->GetGroup()->GetMasterLooterGuid() == lv.viewer->GetGUID()) + slot_type = LOOT_SLOT_TYPE_MASTER; + else + slot_type = LOOT_SLOT_TYPE_LOCKED; + } break; + } case RESTRICTED_PERMISSION: slot_type = LOOT_SLOT_TYPE_LOCKED; break; |