From 4362a8c3f6aff1a8403ab9c1dee3fd23a82db339 Mon Sep 17 00:00:00 2001 From: Shauren Date: Sun, 24 Sep 2023 01:12:13 +0200 Subject: Core/Quests: Fixed optional quest objectives incorrectly changing quest state when they change completion state --- src/server/game/Entities/Player/Player.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index d5b1db07180..54d37c7bbb7 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -16718,9 +16718,12 @@ void Player::UpdateQuestObjectiveProgress(QuestObjectiveType objectiveType, int3 updateZoneAuras = true; } - if (objectiveIsNowComplete && CanCompleteQuest(questId, objective.ID)) - CompleteQuest(questId); - else if (objectiveItr.second.QuestStatusItr->second.Status == QUEST_STATUS_COMPLETE) + if (objectiveIsNowComplete) + { + if (CanCompleteQuest(questId, objective.ID)) + CompleteQuest(questId); + } + else if (!(objective.Flags & QUEST_OBJECTIVE_FLAG_OPTIONAL) && objectiveItr.second.QuestStatusItr->second.Status == QUEST_STATUS_COMPLETE) IncompleteQuest(questId); } } -- cgit v1.2.3