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)
This commit is contained in:
hondacrx
2021-04-12 14:57:08 -04:00
parent 96dbbb2b36
commit 2ec33db9a1
+11 -18
View File
@@ -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;
}
}