diff options
author | Shauren <none@none> | 2010-12-29 13:14:51 +0100 |
---|---|---|
committer | Machiavelli <machiavelli.trinity@gmail.com> | 2010-12-29 13:14:51 +0100 |
commit | 82f471cc13843850be2428e6e511c37b67e15e03 (patch) | |
tree | 20bf3a2aa1d44cb330c5bb49524142d6938fc4cb | |
parent | 92460b4aab8bee475f32fcf12714b1e301f3426c (diff) |
Core/Quests: Fixed repeatable quest still showing as completable after completion
Signed-off-by: Machiavelli <machiavelli.trinity@gmail.com>
-rwxr-xr-x | src/server/game/Entities/Player/Player.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index a0e1de6959d..ca41e0ca7cc 100755 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -14238,15 +14238,14 @@ bool Player::CanCompleteQuest(uint32 quest_id) { if (quest_id) { - RewardedQuestSet::iterator rewItr = m_RewardedQuests.find(quest_id); - if (rewItr != m_RewardedQuests.end()) - return false; // not allow re-complete quest - Quest const* qInfo = sObjectMgr->GetQuestTemplate(quest_id); - if (!qInfo) return false; + RewardedQuestSet::iterator rewItr = m_RewardedQuests.find(quest_id); + if (!qInfo->IsRepeatable() && rewItr != m_RewardedQuests.end()) + return false; // not allow re-complete quest + // auto complete quest if ((qInfo->IsAutoComplete() || qInfo->GetFlags() & QUEST_FLAGS_AUTOCOMPLETE) && CanTakeQuest(qInfo, false)) return true; @@ -15182,8 +15181,9 @@ QuestStatus Player::GetQuestStatus(uint32 quest_id) const if (itr != m_QuestStatus.end()) return itr->second.m_status; - if (m_RewardedQuests.find(quest_id) != m_RewardedQuests.end()) - return QUEST_STATUS_COMPLETE; + if (Quest const* qInfo = sObjectMgr->GetQuestTemplate(quest_id)) + if (!qInfo->IsRepeatable() && m_RewardedQuests.find(quest_id) != m_RewardedQuests.end()) + return QUEST_STATUS_COMPLETE; } return QUEST_STATUS_NONE; } |