From a7cc26e2ef7bc78b4274dbe94949fe1a751c0275 Mon Sep 17 00:00:00 2001 From: Malcrom Date: Fri, 29 Oct 2021 07:53:29 -0300 Subject: [PATCH] fix(Core) Quest Relations (#8777) --- .../game/Entities/Player/PlayerQuest.cpp | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/src/server/game/Entities/Player/PlayerQuest.cpp b/src/server/game/Entities/Player/PlayerQuest.cpp index 581af7c4c..4747e66e5 100644 --- a/src/server/game/Entities/Player/PlayerQuest.cpp +++ b/src/server/game/Entities/Player/PlayerQuest.cpp @@ -1604,16 +1604,32 @@ QuestGiverStatus Player::GetQuestDialogStatus(Object* questgiver) continue; QuestStatus status = GetQuestStatus(questId); - if ((status == QUEST_STATUS_COMPLETE && !GetQuestRewardStatus(questId)) || - (quest->IsAutoComplete() && CanTakeQuest(quest, false))) + if ((status == QUEST_STATUS_COMPLETE && !GetQuestRewardStatus(questId)) || (quest->IsAutoComplete() && CanTakeQuest(quest, false))) { - if (quest->IsAutoComplete() && quest->IsRepeatable() && !quest->IsDailyOrWeekly()) - result2 = DIALOG_STATUS_REWARD_REP; + if (quest->IsRepeatable() && quest->IsDailyOrWeekly()) + { + if (quest->IsAutoComplete()) + { + result2 = DIALOG_STATUS_AVAILABLE_REP; + } + else + { + result2 = DIALOG_STATUS_REWARD_REP; + } + } + else if (quest->IsAutoComplete()) + { + result2 = DIALOG_STATUS_AVAILABLE; + } else + { result2 = DIALOG_STATUS_REWARD; + } } else if (status == QUEST_STATUS_INCOMPLETE) + { result2 = DIALOG_STATUS_INCOMPLETE; + } if (result2 > result) result = result2;