From 1a20c2daa0d30f532c0498971dbd761874358f2a Mon Sep 17 00:00:00 2001 From: ZhengPeiRu21 <98835050+ZhengPeiRu21@users.noreply.github.com> Date: Fri, 2 Sep 2022 06:28:53 -0600 Subject: [PATCH] fix(Core): Correct Quest XP Display when modified by OnQuestCompleteXP Hook (#12919) --- src/server/game/Entities/Creature/GossipDef.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/server/game/Entities/Creature/GossipDef.cpp b/src/server/game/Entities/Creature/GossipDef.cpp index 842bb9506..70e7be7d6 100644 --- a/src/server/game/Entities/Creature/GossipDef.cpp +++ b/src/server/game/Entities/Creature/GossipDef.cpp @@ -452,7 +452,9 @@ void PlayerMenu::SendQuestGiverQuestDetails(Quest const* quest, ObjectGuid npcGU uint8 playerLevel = _session->GetPlayer() ? _session->GetPlayer()->getLevel() : 0; data << uint32(quest->GetRewOrReqMoney(playerLevel)); - data << uint32(quest->XPValue(playerLevel) * _session->GetPlayer()->GetQuestRate()); + uint32 questXp = uint32(quest->XPValue(playerLevel) * _session->GetPlayer()->GetQuestRate()); + sScriptMgr->OnQuestComputeXP(_session->GetPlayer(), quest, questXp); + data << questXp; } // rewarded honor points. Multiply with 10 to satisfy client @@ -680,7 +682,9 @@ void PlayerMenu::SendQuestGiverOfferReward(Quest const* quest, ObjectGuid npcGUI uint8 playerLevel = _session->GetPlayer() ? _session->GetPlayer()->getLevel() : 0; data << uint32(quest->GetRewOrReqMoney(playerLevel)); - data << uint32(quest->XPValue(playerLevel) * _session->GetPlayer()->GetQuestRate()); + uint32 questXp = uint32(quest->XPValue(playerLevel) * _session->GetPlayer()->GetQuestRate()); + sScriptMgr->OnQuestComputeXP(_session->GetPlayer(), quest, questXp); + data << questXp; // rewarded honor points. Multiply with 10 to satisfy client data << uint32(10 * quest->CalculateHonorGain(_session->GetPlayer()->GetQuestLevel(quest)));