Core/Quests: Better way to fix the problem affected in previous commit

closes #36
This commit is contained in:
Machiavelli
2011-01-06 17:33:40 +01:00
parent c617f1f85c
commit 26c91be2d3

View File

@@ -14661,13 +14661,9 @@ void Player::RewardQuest(Quest const *pQuest, uint32 reward, Object* questGiver,
} else if (pQuest->IsWeekly())
SetWeeklyQuestStatus(quest_id);
if (!pQuest->IsRepeatable())
{
m_RewardedQuests.insert(quest_id);
m_RewardedQuestsSave[quest_id] = true;
}
else
RemoveActiveQuest(quest_id);
RemoveActiveQuest(quest_id);
m_RewardedQuests.insert(quest_id);
m_RewardedQuestsSave[quest_id] = true;
if (announce)
SendQuestReward(pQuest, XP, questGiver);
@@ -15039,8 +15035,10 @@ bool Player::SatisfyQuestNextChain(Quest const* qInfo, bool msg)
if (!nextQuest)
return true;
Quest const* Nquest = sObjectMgr->GetQuestTemplate(nextQuest);
// next quest in chain already started or completed
if (m_QuestStatus.find(nextQuest) != m_QuestStatus.end() || m_RewardedQuests.find(nextQuest) != m_RewardedQuests.end())
if (m_QuestStatus.find(nextQuest) != m_QuestStatus.end() || (!(qInfo->IsRepeatable() && Nquest->IsRepeatable()) && m_RewardedQuests.find(nextQuest) != m_RewardedQuests.end()))
{
if (msg)
SendCanTakeQuestResponse(INVALIDREASON_DONT_HAVE_REQ);