diff options
author | Shauren <none@none> | 2010-09-14 16:56:30 +0200 |
---|---|---|
committer | Shauren <none@none> | 2010-09-14 16:56:30 +0200 |
commit | 74ca173923c53982b25a1e443fbd060990fda36c (patch) | |
tree | 05798403e00bbc88105cdacf72fae0b18ca64aa3 | |
parent | 61bbd284de251aa3b46872c431174720a118ed9c (diff) |
Core/Loot: Fixed currency items being automatically distributed to players outside the instance, now if player is outside he will still be able to claim his emblems but will have to loot it manually
Closes issue #4005.
--HG--
branch : trunk
-rw-r--r-- | src/server/game/Loot/LootMgr.cpp | 12 | ||||
-rw-r--r-- | src/server/game/Loot/LootMgr.h | 2 |
2 files changed, 9 insertions, 5 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; diff --git a/src/server/game/Loot/LootMgr.h b/src/server/game/Loot/LootMgr.h index f057c19ce41..b8b415438e7 100644 --- a/src/server/game/Loot/LootMgr.h +++ b/src/server/game/Loot/LootMgr.h @@ -333,7 +333,7 @@ struct Loot bool hasOverThresholdItem() const; private: - void FillNotNormalLootFor(Player* player); + void FillNotNormalLootFor(Player* player, bool withCurrency); QuestItemList* FillFFALoot(Player* player); QuestItemList* FillQuestLoot(Player* player); QuestItemList* FillNonQuestNonFFAConditionalLoot(Player* player); |