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)
|
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);
|
||||||
|
|||||||
@@ -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)]
|
||||||
|
|||||||
Reference in New Issue
Block a user