diff --git a/Source/Game/Entities/Unit/Unit.cs b/Source/Game/Entities/Unit/Unit.cs index fec3e7e50..f35dcb91d 100644 --- a/Source/Game/Entities/Unit/Unit.cs +++ b/Source/Game/Entities/Unit/Unit.cs @@ -229,7 +229,7 @@ namespace Game.Entities _spellHistory.Update(); } - public void HandleEmoteCommand(Emote animId, uint[] spellVisualKitIds = null) + public void HandleEmoteCommand(Emote animId, Player target = null, uint[] spellVisualKitIds = null) { EmoteMessage packet = new(); packet.Guid = GetGUID(); @@ -240,7 +240,10 @@ namespace Game.Entities if (emotesEntry.AnimId == (uint)Anim.MountSpecial || emotesEntry.AnimId == (uint)Anim.MountSelfSpecial) packet.SpellVisualKitIDs.AddRange(spellVisualKitIds); - SendMessageToSet(packet, true); + if (target != null) + target.SendPacket(packet); + else + SendMessageToSet(packet, true); } public void SendDurabilityLoss(Player receiver, uint percent) diff --git a/Source/Game/Handlers/ChatHandler.cs b/Source/Game/Handlers/ChatHandler.cs index ffa31c211..b359e36d8 100644 --- a/Source/Game/Handlers/ChatHandler.cs +++ b/Source/Game/Handlers/ChatHandler.cs @@ -579,7 +579,7 @@ namespace Game // Only allow text-emotes for "dead" entities (feign death included) if (GetPlayer().HasUnitState(UnitState.Died)) break; - GetPlayer().HandleEmoteCommand(emoteAnim, packet.SpellVisualKitIDs); + GetPlayer().HandleEmoteCommand(emoteAnim, null, packet.SpellVisualKitIDs); break; }