diff --git a/Source/Game/Entities/Unit/Unit.cs b/Source/Game/Entities/Unit/Unit.cs
index c9dcfbf63..481eddca4 100644
--- a/Source/Game/Entities/Unit/Unit.cs
+++ b/Source/Game/Entities/Unit/Unit.cs
@@ -437,6 +437,26 @@ namespace Game.Entities
target.SendPacket(data);
}
+ ///
+ /// Clears boss emotes frame
+ ///
+ /// Only clears emotes for players in that zone id
+ /// Only clears emotes for that player
+ public void ClearBossEmotes(uint? zoneId, Player target)
+ {
+ ClearBossEmotes clearBossEmotes = new();
+
+ if (target != null)
+ {
+ target.SendPacket(clearBossEmotes);
+ return;
+ }
+
+ foreach (var player in GetMap().GetPlayers())
+ if (!zoneId.HasValue || Global.DB2Mgr.IsInArea(player.GetAreaId(), zoneId.Value))
+ player.SendPacket(clearBossEmotes);
+ }
+
public override void UpdateObjectVisibility(bool forced = true)
{
if (!forced)
diff --git a/Source/Game/Networking/Packets/ChatPackets.cs b/Source/Game/Networking/Packets/ChatPackets.cs
index c7337e3fe..8dc1bff05 100644
--- a/Source/Game/Networking/Packets/ChatPackets.cs
+++ b/Source/Game/Networking/Packets/ChatPackets.cs
@@ -334,6 +334,13 @@ namespace Game.Networking.Packets
public int EmoteID;
}
+ class ClearBossEmotes : ServerPacket
+ {
+ public ClearBossEmotes() : base(ServerOpcodes.ClearBossEmotes) { }
+
+ public override void Write() { }
+ }
+
public class PrintNotification : ServerPacket
{
public PrintNotification(string notifyText) : base(ServerOpcodes.PrintNotification)