Core/Gossip: Fix interaction with gossip launched by accepting quest
Port From (https://github.com/TrinityCore/TrinityCore/commit/75bc3021da469d7c8eddbff23e5f1ec7c4a4dfbb)
This commit is contained in:
@@ -217,6 +217,7 @@ namespace Game.Misc
|
|||||||
public ObjectGuid SourceGuid;
|
public ObjectGuid SourceGuid;
|
||||||
public uint TrainerId;
|
public uint TrainerId;
|
||||||
public uint PlayerChoiceId;
|
public uint PlayerChoiceId;
|
||||||
|
public bool IsLaunchedByQuest;
|
||||||
}
|
}
|
||||||
|
|
||||||
public class PlayerMenu
|
public class PlayerMenu
|
||||||
|
|||||||
@@ -436,7 +436,9 @@ namespace Game
|
|||||||
[WorldPacketHandler(ClientOpcodes.CloseInteraction)]
|
[WorldPacketHandler(ClientOpcodes.CloseInteraction)]
|
||||||
void HandleCloseInteraction(CloseInteraction 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();
|
_player.PlayerTalkClass.GetInteractionData().Reset();
|
||||||
|
|
||||||
if (_player.GetStableMaster() == closeInteraction.SourceGuid)
|
if (_player.GetStableMaster() == closeInteraction.SourceGuid)
|
||||||
|
|||||||
@@ -159,15 +159,14 @@ namespace Game
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_player.PlayerTalkClass.SendCloseGossip();
|
if (quest.HasFlag(QuestFlags.LaunchGossipAccept) && !quest.HasFlagEx(QuestFlagsEx.SuppressGossipAccept))
|
||||||
|
|
||||||
if (quest.HasFlag(QuestFlags.LaunchGossipAccept))
|
|
||||||
{
|
{
|
||||||
void launchGossip(WorldObject worldObject)
|
void launchGossip(WorldObject worldObject)
|
||||||
{
|
{
|
||||||
_player.PlayerTalkClass.ClearMenus();
|
_player.PlayerTalkClass.ClearMenus();
|
||||||
_player.PrepareGossipMenu(worldObject, _player.GetGossipMenuForSource(worldObject), true);
|
_player.PrepareGossipMenu(worldObject, _player.GetGossipMenuForSource(worldObject), true);
|
||||||
_player.SendPreparedGossip(worldObject);
|
_player.SendPreparedGossip(worldObject);
|
||||||
|
_player.PlayerTalkClass.GetInteractionData().IsLaunchedByQuest = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Creature creature = obj.ToCreature();
|
Creature creature = obj.ToCreature();
|
||||||
@@ -180,6 +179,8 @@ namespace Game
|
|||||||
launchGossip(go);
|
launchGossip(go);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
_player.PlayerTalkClass.SendCloseGossip();
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user