From 2ec33db9a1431890a0468a7551d4ef69bcf47373 Mon Sep 17 00:00:00 2001 From: hondacrx Date: Mon, 12 Apr 2021 14:57:08 -0400 Subject: [PATCH] Core/Quests: Show quest details windows if there's only one quest in gossip menu, even if questgiver doesn't have gossip npc flag Port From (https://github.com/TrinityCore/TrinityCore/commit/8b93fc57211eaf47a12772d2b620453dfd21070a) --- Source/Game/Entities/Player/Player.Quest.cs | 29 ++++++++------------- 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/Source/Game/Entities/Player/Player.Quest.cs b/Source/Game/Entities/Player/Player.Quest.cs index 985f0746f..66e42ad57 100644 --- a/Source/Game/Entities/Player/Player.Quest.cs +++ b/Source/Game/Entities/Player/Player.Quest.cs @@ -334,32 +334,25 @@ namespace Game.Entities if (quest != null) { if (qmi0.QuestIcon == 4) - { PlayerTalkClass.SendQuestGiverRequestItems(quest, source.GetGUID(), CanRewardQuest(quest, false), true); - return; - } + // Send completable on repeatable and autoCompletable quest if player don't have quest // @todo verify if check for !quest.IsDaily() is really correct (possibly not) + else if (!source.HasQuest(questId) && !source.HasInvolvedQuest(questId)) + PlayerTalkClass.SendCloseGossip(); else { - if (!source.HasQuest(questId) && !source.HasInvolvedQuest(questId)) - { - PlayerTalkClass.SendCloseGossip(); - return; - } + if (quest.IsAutoAccept() && CanAddQuest(quest, true) && CanTakeQuest(quest, true)) + AddQuestAndCheckCompletion(quest, source); - if (!source.IsTypeId(TypeId.Unit) || source.ToUnit().HasNpcFlag(NPCFlags.Gossip)) - { - if (quest.IsAutoAccept() && CanAddQuest(quest, true) && CanTakeQuest(quest, true)) - AddQuestAndCheckCompletion(quest, source); + if (quest.IsAutoComplete() && quest.IsRepeatable() && !quest.IsDailyOrWeekly()) + PlayerTalkClass.SendQuestGiverRequestItems(quest, source.GetGUID(), CanCompleteRepeatableQuest(quest), true); + else + PlayerTalkClass.SendQuestGiverQuestDetails(quest, source.GetGUID(), true, false); - if (quest.IsAutoComplete() && quest.IsRepeatable() && !quest.IsDailyOrWeekly()) - PlayerTalkClass.SendQuestGiverRequestItems(quest, source.GetGUID(), CanCompleteRepeatableQuest(quest), true); - else - PlayerTalkClass.SendQuestGiverQuestDetails(quest, source.GetGUID(), true, false); - return; - } } + + return; } }