diff --git a/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj b/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj index 6ac87dc2..d54628cd 100644 --- a/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj +++ b/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj @@ -122,6 +122,7 @@ + @@ -134,6 +135,7 @@ + diff --git a/FFXIVClassic Map Server/packets/send/Actor/SetActorIdleAnimationPacket.cs b/FFXIVClassic Map Server/packets/send/Actor/SetActorIdleAnimationPacket.cs new file mode 100644 index 00000000..545c2ba2 --- /dev/null +++ b/FFXIVClassic Map Server/packets/send/Actor/SetActorIdleAnimationPacket.cs @@ -0,0 +1,32 @@ +using FFXIVClassic_Lobby_Server.packets; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FFXIVClassic_Map_Server.packets.send.actor +{ + class SetActorIdleAnimationPacket + { + public const ushort OPCODE = 0x144; + public const uint PACKET_SIZE = 0x28; + + public static SubPacket buildPacket(uint playerActorID, uint targetID, uint idleAnimationId) + { + byte[] data = new byte[PACKET_SIZE - 0x20]; + + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryWriter binWriter = new BinaryWriter(mem)) + { + binWriter.Seek(0x6, SeekOrigin.Begin); + binWriter.Write((UInt16)(idleAnimationId&0xFFFF)); + } + } + + return new SubPacket(OPCODE, playerActorID, targetID, data); + } + } +} diff --git a/FFXIVClassic Map Server/packets/send/Actor/_0x132Packet.cs b/FFXIVClassic Map Server/packets/send/Actor/_0x132Packet.cs new file mode 100644 index 00000000..202c3c1e --- /dev/null +++ b/FFXIVClassic Map Server/packets/send/Actor/_0x132Packet.cs @@ -0,0 +1,32 @@ +using FFXIVClassic_Lobby_Server.packets; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FFXIVClassic_Map_Server.packets.send.actor +{ + class _0x132Packet + { + public const ushort OPCODE = 0x132; + public const uint PACKET_SIZE = 0x48; + + public static SubPacket buildPacket(uint playerActorID, ushort number, string function) + { + byte[] data = new byte[PACKET_SIZE - 0x20]; + + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryWriter binWriter = new BinaryWriter(mem)) + { + binWriter.Write((UInt16)number); + binWriter.Write(Encoding.ASCII.GetBytes(function), 0, Encoding.ASCII.GetByteCount(function) >= 0x20 ? 0x20 : Encoding.ASCII.GetByteCount(function)); + } + } + + return new SubPacket(OPCODE, playerActorID, playerActorID, data); + } + } +}