From c5a4504ac6cda674d134d5a42ce3b650e485932f Mon Sep 17 00:00:00 2001 From: hondacrx Date: Thu, 7 May 2020 14:37:32 -0400 Subject: [PATCH] Core/Quest: fix RewardNextQuest being used to condition previous quests in chain Port From (https://github.com/TrinityCore/TrinityCore/commit/9e945615bc9967cc1f49c801c708cf5881cd8de9) --- Source/Game/Entities/Player/Player.Quest.cs | 35 +++------------------ Source/Game/Globals/ObjectManager.cs | 2 -- Source/Game/Quest/Quest.cs | 1 - 3 files changed, 4 insertions(+), 34 deletions(-) diff --git a/Source/Game/Entities/Player/Player.Quest.cs b/Source/Game/Entities/Player/Player.Quest.cs index 04324bb5a..53fa1879a 100644 --- a/Source/Game/Entities/Player/Player.Quest.cs +++ b/Source/Game/Entities/Player/Player.Quest.cs @@ -408,7 +408,7 @@ namespace Game.Entities if (!Global.DisableMgr.IsDisabledFor(DisableType.Quest, quest.Id, this) && SatisfyQuestClass(quest, false) && SatisfyQuestRace(quest, false) && SatisfyQuestSkill(quest, false) && SatisfyQuestExclusiveGroup(quest, false) && SatisfyQuestReputation(quest, false) && SatisfyQuestDependentQuests(quest, false) && SatisfyQuestNextChain(quest, false) && - SatisfyQuestPrevChain(quest, false) && SatisfyQuestDay(quest, false) && SatisfyQuestWeek(quest, false) && + SatisfyQuestDay(quest, false) && SatisfyQuestWeek(quest, false) && SatisfyQuestMonth(quest, false) && SatisfyQuestSeasonal(quest, false)) { return GetLevel() + WorldConfig.GetIntValue(WorldCfg.QuestHighLevelHideDiff) >= GetQuestMinLevel(quest); @@ -424,10 +424,9 @@ namespace Game.Entities && SatisfyQuestClass(quest, msg) && SatisfyQuestRace(quest, msg) && SatisfyQuestLevel(quest, msg) && SatisfyQuestSkill(quest, msg) && SatisfyQuestReputation(quest, msg) && SatisfyQuestDependentQuests(quest, msg) && SatisfyQuestTimed(quest, msg) - && SatisfyQuestNextChain(quest, msg) && SatisfyQuestPrevChain(quest, msg) - && SatisfyQuestDay(quest, msg) && SatisfyQuestWeek(quest, msg) - && SatisfyQuestMonth(quest, msg) && SatisfyQuestSeasonal(quest, msg) - && SatisfyQuestConditions(quest, msg); + && SatisfyQuestNextChain(quest, msg) && SatisfyQuestDay(quest, msg) + && SatisfyQuestWeek(quest, msg) && SatisfyQuestMonth(quest, msg) + && SatisfyQuestSeasonal(quest, msg) && SatisfyQuestConditions(quest, msg); } public bool CanAddQuest(Quest quest, bool msg) @@ -1581,32 +1580,6 @@ namespace Game.Entities return true; } - public bool SatisfyQuestPrevChain(Quest qInfo, bool msg) - { - // No previous quest in chain - if (qInfo.PrevChainQuests.Empty()) - return true; - - foreach (var prevQuestId in qInfo.PrevChainQuests) - { - var questStatusData = m_QuestStatus.LookupByKey(prevQuestId); - - // If any of the previous quests in chain active, return false - if (questStatusData != null && questStatusData.Status != QuestStatus.None) - { - if (msg) - { - SendCanTakeQuestResponse(QuestFailedReasons.None); - Log.outDebug(LogFilter.Server, "SatisfyQuestNextChain: Sent QuestFailedReason.None (questId: {0}) because player already did or started next quest in chain.", qInfo.Id); - } - return false; - } - } - - // No previous quest in chain active - return true; - } - public bool SatisfyQuestDay(Quest qInfo, bool msg) { if (!qInfo.IsDaily() && !qInfo.IsDFQuest()) diff --git a/Source/Game/Globals/ObjectManager.cs b/Source/Game/Globals/ObjectManager.cs index 7d9b1aa61..a11e8451f 100644 --- a/Source/Game/Globals/ObjectManager.cs +++ b/Source/Game/Globals/ObjectManager.cs @@ -7017,8 +7017,6 @@ namespace Game qinfo.Id, qinfo.NextQuestInChain, qinfo.NextQuestInChain); qinfo.NextQuestInChain = 0; } - else - qNext.PrevChainQuests.Add(qinfo.Id); } for (var j = 0; j < SharedConst.QuestRewardCurrencyCount; ++j) diff --git a/Source/Game/Quest/Quest.cs b/Source/Game/Quest/Quest.cs index f4e735ae0..212ddf373 100644 --- a/Source/Game/Quest/Quest.cs +++ b/Source/Game/Quest/Quest.cs @@ -662,7 +662,6 @@ namespace Game public uint ScriptId; public List DependentPreviousQuests = new List(); - public List PrevChainQuests = new List(); public QueryQuestInfoResponse QueryData; uint _rewChoiceItemsCount;