mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-17 16:10:49 +01:00
Core/Quests: Better way to fix the problem affected in previous commit
closes #36
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user