Core/Gossip: Send correct response depending on how the interaction was started

Port From (https://github.com/TrinityCore/TrinityCore/commit/4c92d3550b331aff6a22f753295388fa2a215e6c)
This commit is contained in:
Hondacrx
2025-08-19 17:21:20 -04:00
parent 877fb1a76f
commit 057b17383f
2 changed files with 5 additions and 4 deletions
+3 -2
View File
@@ -2767,16 +2767,17 @@ namespace Game.Entities
if (source == null) if (source == null)
return; return;
// If there is only one quest available (and no gossip options), send quest info
if (source.IsTypeId(TypeId.Unit) || source.IsTypeId(TypeId.GameObject)) if (source.IsTypeId(TypeId.Unit) || source.IsTypeId(TypeId.GameObject))
{ {
if (PlayerTalkClass.GetGossipMenu().IsEmpty() && !PlayerTalkClass.GetQuestMenu().IsEmpty()) if (PlayerTalkClass.GetGossipMenu().IsEmpty() && PlayerTalkClass.GetQuestMenu().GetMenuItemCount() == 1)
{ {
SendPreparedQuest(source); SendPreparedQuest(source);
return; return;
} }
} }
// in case non empty gossip menu (that not included quests list size) show it // In case non empty gossip menu or quest menu count > 1, show it
// (quest entries from quest menu will be included in list) // (quest entries from quest menu will be included in list)
uint textId = GetGossipTextId(source); uint textId = GetGossipTextId(source);
+2 -2
View File
@@ -56,8 +56,8 @@ namespace Game
if (creature.GetAI().OnGossipHello(_player)) if (creature.GetAI().OnGossipHello(_player))
return; return;
GetPlayer().PrepareGossipMenu(creature, _player.GetGossipMenuForSource(creature), true); _player.PrepareQuestMenu(creature.GetGUID());
GetPlayer().SendPreparedGossip(creature); _player.SendPreparedQuest(creature);
} }
[WorldPacketHandler(ClientOpcodes.QuestGiverAcceptQuest, Processing = PacketProcessing.Inplace)] [WorldPacketHandler(ClientOpcodes.QuestGiverAcceptQuest, Processing = PacketProcessing.Inplace)]