diff options
author | Shauren <shauren.trinity@gmail.com> | 2011-03-06 17:43:15 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2011-03-06 17:43:15 +0100 |
commit | 19cdf98c8a8caed840b9df7afaa551ead0174bfc (patch) | |
tree | 7dc09134a95d31a6ff9d67eac7410b4f42db18ba /src | |
parent | 0d224cf74ff8aa707f1ebaf5013880d0c5695b29 (diff) |
Core/Loot: Players who were not present during encounter completion are not eligible to receive the item in trade
Diffstat (limited to 'src')
-rwxr-xr-x | src/server/game/Loot/LootMgr.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/server/game/Loot/LootMgr.cpp b/src/server/game/Loot/LootMgr.cpp index dd924a31edd..f05c18e4735 100755 --- a/src/server/game/Loot/LootMgr.cpp +++ b/src/server/game/Loot/LootMgr.cpp @@ -452,7 +452,7 @@ bool Loot::FillLoot(uint32 lootId, LootStore const& store, Player* lootOwner, bo return true; } -void Loot::FillNotNormalLootFor(Player* pl, bool withCurrency) +void Loot::FillNotNormalLootFor(Player* pl, bool presentAtLooting) { uint32 plguid = pl->GetGUIDLow(); @@ -466,10 +466,10 @@ void Loot::FillNotNormalLootFor(Player* pl, bool withCurrency) qmapitr = PlayerNonQuestNonFFAConditionalItems.find(plguid); if (qmapitr == PlayerNonQuestNonFFAConditionalItems.end()) - FillNonQuestNonFFAConditionalLoot(pl); + FillNonQuestNonFFAConditionalLoot(pl, presentAtLooting); // if not auto-processed player will have to come and pick it up manually - if (!withCurrency) + if (!presentAtLooting) return; // Process currency items @@ -548,7 +548,7 @@ QuestItemList* Loot::FillQuestLoot(Player* player) return ql; } -QuestItemList* Loot::FillNonQuestNonFFAConditionalLoot(Player* player) +QuestItemList* Loot::FillNonQuestNonFFAConditionalLoot(Player* player, bool presentAtLooting) { QuestItemList *ql = new QuestItemList(); @@ -557,7 +557,8 @@ QuestItemList* Loot::FillNonQuestNonFFAConditionalLoot(Player* player) LootItem &item = items[i]; if (!item.is_looted && !item.freeforall && item.AllowedForPlayer(player)) { - item.AddAllowedLooter(player); + if (presentAtLooting) + item.AddAllowedLooter(player); if (!item.conditions.empty()) { ql->push_back(QuestItem(i)); |