From 9bca68fb56a48870548d9f27857d3d879eb77adb Mon Sep 17 00:00:00 2001 From: SnapperRy Date: Mon, 3 Oct 2016 23:02:50 +0200 Subject: Core/Quest: send INVALIDREASON_QUEST_ALREADY_DONE if player tries to accept a quest that is already rewarded. --- src/server/game/Entities/Player/Player.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src') diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 6b54554ccbd..01bc075a35b 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -15479,6 +15479,17 @@ bool Player::SatisfyQuestReputation(Quest const* qInfo, bool msg) bool Player::SatisfyQuestStatus(Quest const* qInfo, bool msg) const { + if (GetQuestStatus(qInfo->GetQuestId()) == QUEST_STATUS_REWARDED) + { + if (msg) + { + SendCanTakeQuestResponse(INVALIDREASON_QUEST_ALREADY_DONE); + TC_LOG_DEBUG("misc", "Player::SatisfyQuestStatus: Sent QUEST_STATUS_REWARDED (QuestID: %u) because player '%s' (%s) quest status is already REWARDED.", + qInfo->GetQuestId(), GetName().c_str(), GetGUID().ToString().c_str()); + } + return false; + } + if (GetQuestStatus(qInfo->GetQuestId()) != QUEST_STATUS_NONE) { if (msg) -- cgit v1.2.3