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:
@@ -2767,16 +2767,17 @@ namespace Game.Entities
|
||||
if (source == null)
|
||||
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 (PlayerTalkClass.GetGossipMenu().IsEmpty() && !PlayerTalkClass.GetQuestMenu().IsEmpty())
|
||||
if (PlayerTalkClass.GetGossipMenu().IsEmpty() && PlayerTalkClass.GetQuestMenu().GetMenuItemCount() == 1)
|
||||
{
|
||||
SendPreparedQuest(source);
|
||||
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)
|
||||
|
||||
uint textId = GetGossipTextId(source);
|
||||
|
||||
@@ -56,8 +56,8 @@ namespace Game
|
||||
if (creature.GetAI().OnGossipHello(_player))
|
||||
return;
|
||||
|
||||
GetPlayer().PrepareGossipMenu(creature, _player.GetGossipMenuForSource(creature), true);
|
||||
GetPlayer().SendPreparedGossip(creature);
|
||||
_player.PrepareQuestMenu(creature.GetGUID());
|
||||
_player.SendPreparedQuest(creature);
|
||||
}
|
||||
|
||||
[WorldPacketHandler(ClientOpcodes.QuestGiverAcceptQuest, Processing = PacketProcessing.Inplace)]
|
||||
|
||||
Reference in New Issue
Block a user