diff options
Diffstat (limited to 'src/server/game/Loot/LootMgr.cpp')
-rw-r--r-- | src/server/game/Loot/LootMgr.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/server/game/Loot/LootMgr.cpp b/src/server/game/Loot/LootMgr.cpp index 85f0cd869ee..a0fc3156c07 100644 --- a/src/server/game/Loot/LootMgr.cpp +++ b/src/server/game/Loot/LootMgr.cpp @@ -437,8 +437,8 @@ bool Loot::FillLoot(uint32 lootId, LootStore const& store, Player* lootOwner, bo roundRobinPlayer = lootOwner->GetGUID(); for (GroupReference *itr = pGroup->GetFirstMember(); itr != NULL; itr = itr->next()) - if (Player* pl = itr->getSource()) - FillNotNormalLootFor(pl); + if (Player* pl = itr->getSource()) // should actually be looted object instead of lootOwner but looter has to be really close so doesnt really matter + FillNotNormalLootFor(pl, pl->IsAtGroupRewardDistance(lootOwner)); for (uint8 i = 0; i < items.size(); ++i) { @@ -449,12 +449,12 @@ bool Loot::FillLoot(uint32 lootId, LootStore const& store, Player* lootOwner, bo } // ... for personal loot else - FillNotNormalLootFor(lootOwner); + FillNotNormalLootFor(lootOwner, true); return true; } -void Loot::FillNotNormalLootFor(Player* pl) +void Loot::FillNotNormalLootFor(Player* pl, bool withCurrency) { uint32 plguid = pl->GetGUIDLow(); @@ -470,6 +470,10 @@ void Loot::FillNotNormalLootFor(Player* pl) if (qmapitr == PlayerNonQuestNonFFAConditionalItems.end()) FillNonQuestNonFFAConditionalLoot(pl); + // if not auto-processed player will have to come and pick it up manually + if (!withCurrency) + return; + // Process currency items uint32 max_slot = GetMaxSlotInLootFor(pl); uint32 itemId = 0; |