aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSnapperRy <snapperryen@gmail.com>2016-10-03 23:02:50 +0200
committerSnapperRy <snapperryen@gmail.com>2016-10-03 23:02:50 +0200
commit9bca68fb56a48870548d9f27857d3d879eb77adb (patch)
tree404f2e88aa72d9e643d99b63e4fd81d3a18adc38 /src
parentf56a18152155183d4a5c344ff9014756cdf4ef1a (diff)
Core/Quest: send INVALIDREASON_QUEST_ALREADY_DONE if player tries to accept a quest that is already rewarded.
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Player/Player.cpp11
1 files changed, 11 insertions, 0 deletions
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)