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
+6 -13
View File
@@ -334,21 +334,13 @@ namespace Game.Entities
if (quest != null) if (quest != null)
{ {
if (qmi0.QuestIcon == 4) if (qmi0.QuestIcon == 4)
{
PlayerTalkClass.SendQuestGiverRequestItems(quest, source.GetGUID(), CanRewardQuest(quest, false), true); PlayerTalkClass.SendQuestGiverRequestItems(quest, source.GetGUID(), CanRewardQuest(quest, false), true);
return;
}
// Send completable on repeatable and autoCompletable quest if player don't have quest // 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) // @todo verify if check for !quest.IsDaily() is really correct (possibly not)
else else if (!source.HasQuest(questId) && !source.HasInvolvedQuest(questId))
{
if (!source.HasQuest(questId) && !source.HasInvolvedQuest(questId))
{
PlayerTalkClass.SendCloseGossip(); PlayerTalkClass.SendCloseGossip();
return; else
}
if (!source.IsTypeId(TypeId.Unit) || source.ToUnit().HasNpcFlag(NPCFlags.Gossip))
{ {
if (quest.IsAutoAccept() && CanAddQuest(quest, true) && CanTakeQuest(quest, true)) if (quest.IsAutoAccept() && CanAddQuest(quest, true) && CanTakeQuest(quest, true))
AddQuestAndCheckCompletion(quest, source); AddQuestAndCheckCompletion(quest, source);
@@ -357,11 +349,12 @@ namespace Game.Entities
PlayerTalkClass.SendQuestGiverRequestItems(quest, source.GetGUID(), CanCompleteRepeatableQuest(quest), true); PlayerTalkClass.SendQuestGiverRequestItems(quest, source.GetGUID(), CanCompleteRepeatableQuest(quest), true);
else else
PlayerTalkClass.SendQuestGiverQuestDetails(quest, source.GetGUID(), true, false); PlayerTalkClass.SendQuestGiverQuestDetails(quest, source.GetGUID(), true, false);
}
return; return;
} }
} }
}
}
PlayerTalkClass.SendQuestGiverQuestListMessage(source); PlayerTalkClass.SendQuestGiverQuestListMessage(source);
} }