From dfdb8de7cfd7f060eba3719d4b691d48771c861a Mon Sep 17 00:00:00 2001 From: Ovahlord Date: Tue, 17 Apr 2018 20:28:24 +0200 Subject: [PATCH] Core/LFG: fixed displaying weekly rewards for first raid finder reward --- src/server/game/Entities/Player/Player.cpp | 2 +- src/server/game/Handlers/LFGHandler.cpp | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 890792fbbc8..395c5a7fe6d 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -15311,7 +15311,7 @@ void Player::RewardQuest(Quest const* quest, uint32 reward, Object* questGiver, CharacterDatabase.CommitTransaction(trans); } - if ((quest->IsDaily() || quest->IsDFQuest()) && !quest->IsRepeatable() && !quest->IsWeekly()) + if ((quest->IsDaily() || (quest->IsDFQuest()) && !quest->IsRepeatable()) && !quest->IsWeekly()) { SetDailyQuestStatus(quest_id); if (quest->IsDaily()) diff --git a/src/server/game/Handlers/LFGHandler.cpp b/src/server/game/Handlers/LFGHandler.cpp index a1ff24c2f17..025a88c12c1 100644 --- a/src/server/game/Handlers/LFGHandler.cpp +++ b/src/server/game/Handlers/LFGHandler.cpp @@ -316,19 +316,19 @@ void WorldSession::SendLfgPlayerLockInfo() data << uint32(dungeonId); // Dungeon Entry (id + type) lfg::LfgReward const* reward = sLFGMgr->GetRandomDungeonReward(dungeonId, level); Quest const* quest = nullptr; - bool done = false; + bool firstCompletion = true; if (reward) { quest = sObjectMgr->GetQuestTemplate(reward->firstQuest); if (quest) { - done = !player->CanRewardQuest(quest, false); - if (done) + firstCompletion = player->CanRewardQuest(quest, false); + if (!firstCompletion) quest = sObjectMgr->GetQuestTemplate(reward->otherQuest); } } - data << uint8(done); + data << uint8(firstCompletion); CurrencyTypesEntry const* currency = sCurrencyTypesStore.LookupEntry(CURRENCY_TYPE_VALOR_POINTS); int8 valorPointsField = -1; @@ -350,7 +350,7 @@ void WorldSession::SendLfgPlayerLockInfo() data << uint32(player->GetCurrencyWeekCap(currency)); // overall valor points weekly cap data << uint32(player->GetCurrencyOnWeek(CURRENCY_TYPE_VALOR_POINTS, false)); // purseQuantity data << uint32(player->GetCurrencyTotalCap(currency)); // purseLimit - data << uint32(0); // some sort of reward for completion + data << uint32(valorPointsField >= 0 ? quest->RewardCurrencyCount[valorPointsField] : 0); // some sort of reward for completion } else {