Core/Gossip: Fix interaction with gossip launched by accepting quest

Port From (https://github.com/TrinityCore/TrinityCore/commit/75bc3021da469d7c8eddbff23e5f1ec7c4a4dfbb)
This commit is contained in:
Hondacrx
2025-05-19 17:26:50 -04:00
parent e44861a629
commit 3e0e2354b7
3 changed files with 8 additions and 4 deletions
+1
View File
@@ -217,6 +217,7 @@ namespace Game.Misc
public ObjectGuid SourceGuid;
public uint TrainerId;
public uint PlayerChoiceId;
public bool IsLaunchedByQuest;
}
public class PlayerMenu
+3 -1
View File
@@ -436,7 +436,9 @@ namespace Game
[WorldPacketHandler(ClientOpcodes.CloseInteraction)]
void HandleCloseInteraction(CloseInteraction closeInteraction)
{
if (_player.PlayerTalkClass.GetInteractionData().SourceGuid == closeInteraction.SourceGuid)
if (_player.PlayerTalkClass.GetInteractionData().IsLaunchedByQuest)
_player.PlayerTalkClass.GetInteractionData().IsLaunchedByQuest = false;
else if (_player.PlayerTalkClass.GetInteractionData().SourceGuid == closeInteraction.SourceGuid)
_player.PlayerTalkClass.GetInteractionData().Reset();
if (_player.GetStableMaster() == closeInteraction.SourceGuid)
+4 -3
View File
@@ -159,15 +159,14 @@ namespace Game
}
}
_player.PlayerTalkClass.SendCloseGossip();
if (quest.HasFlag(QuestFlags.LaunchGossipAccept))
if (quest.HasFlag(QuestFlags.LaunchGossipAccept) && !quest.HasFlagEx(QuestFlagsEx.SuppressGossipAccept))
{
void launchGossip(WorldObject worldObject)
{
_player.PlayerTalkClass.ClearMenus();
_player.PrepareGossipMenu(worldObject, _player.GetGossipMenuForSource(worldObject), true);
_player.SendPreparedGossip(worldObject);
_player.PlayerTalkClass.GetInteractionData().IsLaunchedByQuest = true;
}
Creature creature = obj.ToCreature();
@@ -180,6 +179,8 @@ namespace Game
launchGossip(go);
}
}
else
_player.PlayerTalkClass.SendCloseGossip();
return;
}