diff options
author | Shauren <shauren.trinity@gmail.com> | 2014-03-29 13:24:48 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2014-03-29 13:24:48 +0100 |
commit | dee867547d302120467b3364307fdb1838f855f5 (patch) | |
tree | e9ee099d41b8d7a7857bb9766e1b55ed254ab538 /src/server/game/Handlers/LootHandler.cpp | |
parent | e4c57d839d83a7e735d4b651827e2dca1ddc68cd (diff) | |
parent | 6a5c43b0d819fc43a3d46aa63fa7576a11e5761c (diff) |
Merge pull request #11719 from Dehravor/master-loot
Core/Loot: Fix master loot
Diffstat (limited to 'src/server/game/Handlers/LootHandler.cpp')
-rw-r--r-- | src/server/game/Handlers/LootHandler.cpp | 31 |
1 files changed, 8 insertions, 23 deletions
diff --git a/src/server/game/Handlers/LootHandler.cpp b/src/server/game/Handlers/LootHandler.cpp index f3a1803dfca..f92c6e08e31 100644 --- a/src/server/game/Handlers/LootHandler.cpp +++ b/src/server/game/Handlers/LootHandler.cpp @@ -297,17 +297,7 @@ void WorldSession::DoLootRelease(uint64 lguid) // if the round robin player release, reset it. if (player->GetGUID() == loot->roundRobinPlayer) - { - if (Group* group = player->GetGroup()) - { - if (group->GetLootMethod() != MASTER_LOOT) - { - loot->roundRobinPlayer = 0; - } - } - else - loot->roundRobinPlayer = 0; - } + loot->roundRobinPlayer = 0; } } else if (IS_CORPSE_GUID(lguid)) // ONLY remove insignia at BG @@ -376,19 +366,15 @@ void WorldSession::DoLootRelease(uint64 lguid) // if the round robin player release, reset it. if (player->GetGUID() == loot->roundRobinPlayer) { + loot->roundRobinPlayer = 0; + if (Group* group = player->GetGroup()) { - if (group->GetLootMethod() != MASTER_LOOT) - { - loot->roundRobinPlayer = 0; - group->SendLooter(creature, NULL); - - // force update of dynamic flags, otherwise other group's players still not able to loot. - creature->ForceValuesUpdateAtIndex(UNIT_DYNAMIC_FLAGS); - } + group->SendLooter(creature, NULL); + + // force update of dynamic flags, otherwise other group's players still not able to loot. + creature->ForceValuesUpdateAtIndex(UNIT_DYNAMIC_FLAGS); } - else - loot->roundRobinPlayer = 0; } } } @@ -404,7 +390,7 @@ void WorldSession::HandleLootMasterGiveOpcode(WorldPacket& recvData) recvData >> lootguid >> slotid >> target_playerguid; - if (!_player->GetGroup() || _player->GetGroup()->GetLooterGuid() != _player->GetGUID()) + if (!_player->GetGroup() || _player->GetGroup()->GetMasterLooterGuid() != _player->GetGUID() || _player->GetGroup()->GetLootMethod() != MASTER_LOOT) { _player->SendLootRelease(GetPlayer()->GetLootGUID()); return; @@ -425,7 +411,6 @@ void WorldSession::HandleLootMasterGiveOpcode(WorldPacket& recvData) return; } - Loot* loot = NULL; if (IS_CRE_OR_VEH_GUID(GetPlayer()->GetLootGUID())) |