diff --git a/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj b/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj index 6cd4c4bb..666485d5 100644 --- a/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj +++ b/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj @@ -80,6 +80,7 @@ + diff --git a/FFXIVClassic Map Server/PacketProcessor.cs b/FFXIVClassic Map Server/PacketProcessor.cs index 17b88432..70c68879 100644 --- a/FFXIVClassic Map Server/PacketProcessor.cs +++ b/FFXIVClassic Map Server/PacketProcessor.cs @@ -307,6 +307,8 @@ namespace FFXIVClassic_Lobby_Server break; //Set Target case 0x00CD: + subpacket.debugPrintSubPacket(); + SetTargetPacket setTarget = new SetTargetPacket(subpacket.data); player.setTarget(setTarget.actorID); client.queuePacket(BasePacket.createPacket(SetActorTargetAnimatedPacket.buildPacket(player.actorID, player.actorID, setTarget.actorID), true, false)); @@ -319,8 +321,9 @@ namespace FFXIVClassic_Lobby_Server //Start Script case 0x012D: subpacket.debugPrintSubPacket(); - StartScriptPacket startScript = new StartScriptPacket(subpacket.data); - client.queuePacket(new BasePacket("./packets/script/bed.bin")); + //StartScriptPacket startScript = new StartScriptPacket(subpacket.data); + //client.queuePacket(new BasePacket("./packets/script/bed.bin")); + client.queuePacket(BasePacket.createPacket(ActorDoEmotePacket.buildPacket(player.actorID, player.getTargetedActor(), 137), true, false)); break; //Script Result case 0x012E: diff --git a/FFXIVClassic Map Server/bin/Debug/packets/charawork b/FFXIVClassic Map Server/bin/Debug/packets/charawork deleted file mode 100644 index 7aaa9839..00000000 Binary files a/FFXIVClassic Map Server/bin/Debug/packets/charawork and /dev/null differ diff --git a/FFXIVClassic Map Server/bin/Debug/packets/charawork2 b/FFXIVClassic Map Server/bin/Debug/packets/charawork2 deleted file mode 100644 index daec25d7..00000000 Binary files a/FFXIVClassic Map Server/bin/Debug/packets/charawork2 and /dev/null differ diff --git a/FFXIVClassic Map Server/bin/Debug/packets/charawork3 b/FFXIVClassic Map Server/bin/Debug/packets/charawork3 deleted file mode 100644 index a3d4062f..00000000 Binary files a/FFXIVClassic Map Server/bin/Debug/packets/charawork3 and /dev/null differ diff --git a/FFXIVClassic Map Server/bin/Debug/packets/charawork4 b/FFXIVClassic Map Server/bin/Debug/packets/charawork4 deleted file mode 100644 index af372448..00000000 Binary files a/FFXIVClassic Map Server/bin/Debug/packets/charawork4 and /dev/null differ diff --git a/FFXIVClassic Map Server/bin/Debug/packets/charawork_inv b/FFXIVClassic Map Server/bin/Debug/packets/charawork_inv deleted file mode 100644 index fe720c7b..00000000 Binary files a/FFXIVClassic Map Server/bin/Debug/packets/charawork_inv and /dev/null differ diff --git a/FFXIVClassic Map Server/bin/Debug/packets/charawork_inv2 b/FFXIVClassic Map Server/bin/Debug/packets/charawork_inv2 deleted file mode 100644 index 43c46022..00000000 Binary files a/FFXIVClassic Map Server/bin/Debug/packets/charawork_inv2 and /dev/null differ diff --git a/FFXIVClassic Map Server/bin/Debug/packets/charawork_inv3 b/FFXIVClassic Map Server/bin/Debug/packets/charawork_inv3 deleted file mode 100644 index efab5561..00000000 Binary files a/FFXIVClassic Map Server/bin/Debug/packets/charawork_inv3 and /dev/null differ diff --git a/FFXIVClassic Map Server/bin/Debug/packets/d0packet b/FFXIVClassic Map Server/bin/Debug/packets/d0packet deleted file mode 100644 index 3f76e783..00000000 Binary files a/FFXIVClassic Map Server/bin/Debug/packets/d0packet and /dev/null differ diff --git a/FFXIVClassic Map Server/bin/Debug/packets/inv1 b/FFXIVClassic Map Server/bin/Debug/packets/inv1 deleted file mode 100644 index 8791b466..00000000 Binary files a/FFXIVClassic Map Server/bin/Debug/packets/inv1 and /dev/null differ diff --git a/FFXIVClassic Map Server/bin/Debug/packets/login7_data.bin b/FFXIVClassic Map Server/bin/Debug/packets/login7_data.bin deleted file mode 100644 index 5efdb5cd..00000000 Binary files a/FFXIVClassic Map Server/bin/Debug/packets/login7_data.bin and /dev/null differ diff --git a/FFXIVClassic Map Server/bin/Debug/packets/script/bed.bin b/FFXIVClassic Map Server/bin/Debug/packets/script/bed.bin index afc32a5a..8250f841 100644 Binary files a/FFXIVClassic Map Server/bin/Debug/packets/script/bed.bin and b/FFXIVClassic Map Server/bin/Debug/packets/script/bed.bin differ diff --git a/FFXIVClassic Map Server/bin/Debug/packets/script/inn_exitdoor.bin b/FFXIVClassic Map Server/bin/Debug/packets/script/inn_exitdoor.bin index eeedb683..9536c112 100644 Binary files a/FFXIVClassic Map Server/bin/Debug/packets/script/inn_exitdoor.bin and b/FFXIVClassic Map Server/bin/Debug/packets/script/inn_exitdoor.bin differ diff --git a/FFXIVClassic Map Server/bin/Debug/packets/setinv b/FFXIVClassic Map Server/bin/Debug/packets/setinv deleted file mode 100644 index 815dd926..00000000 Binary files a/FFXIVClassic Map Server/bin/Debug/packets/setinv and /dev/null differ diff --git a/FFXIVClassic Map Server/bin/Debug/packets/setinv_backup b/FFXIVClassic Map Server/bin/Debug/packets/setinv_backup deleted file mode 100644 index 87a45b3c..00000000 Binary files a/FFXIVClassic Map Server/bin/Debug/packets/setinv_backup and /dev/null differ diff --git a/FFXIVClassic Map Server/bin/Debug/packets/status b/FFXIVClassic Map Server/bin/Debug/packets/status deleted file mode 100644 index 38eb14cb..00000000 Binary files a/FFXIVClassic Map Server/bin/Debug/packets/status and /dev/null differ diff --git a/FFXIVClassic Map Server/bin/Debug/packets/temp_inv.bin b/FFXIVClassic Map Server/bin/Debug/packets/temp_inv.bin deleted file mode 100644 index e1c67103..00000000 Binary files a/FFXIVClassic Map Server/bin/Debug/packets/temp_inv.bin and /dev/null differ diff --git a/FFXIVClassic Map Server/bin/Debug/packets/test_player2 b/FFXIVClassic Map Server/bin/Debug/packets/test_player2 deleted file mode 100644 index a729c2b7..00000000 Binary files a/FFXIVClassic Map Server/bin/Debug/packets/test_player2 and /dev/null differ diff --git a/FFXIVClassic Map Server/bin/Debug/packets/updategil b/FFXIVClassic Map Server/bin/Debug/packets/updategil deleted file mode 100644 index a5ea3e6b..00000000 Binary files a/FFXIVClassic Map Server/bin/Debug/packets/updategil and /dev/null differ diff --git a/FFXIVClassic Map Server/dataobjects/Player.cs b/FFXIVClassic Map Server/dataobjects/Player.cs index ad17b76e..b995b05d 100644 --- a/FFXIVClassic Map Server/dataobjects/Player.cs +++ b/FFXIVClassic Map Server/dataobjects/Player.cs @@ -18,8 +18,8 @@ namespace FFXIVClassic_Map_Server.dataobjects public uint characterID = 0; public uint actorID = 0; - private uint currentTarget = 0; - private uint currentLockedTarget = 0; + private uint currentTarget = 0xC0000000; + private uint currentLockedTarget = 0xC0000000; private uint currentZoneID = 0; @@ -121,5 +121,10 @@ namespace FFXIVClassic_Map_Server.dataobjects { currentLockedTarget = actorID; } + + public uint getTargetedActor() + { + return currentTarget; + } } } diff --git a/FFXIVClassic Map Server/packets/send/Actor/ActorDoEmotePacket.cs b/FFXIVClassic Map Server/packets/send/Actor/ActorDoEmotePacket.cs new file mode 100644 index 00000000..bc0b63f5 --- /dev/null +++ b/FFXIVClassic Map Server/packets/send/Actor/ActorDoEmotePacket.cs @@ -0,0 +1,36 @@ +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 ActorDoEmotePacket + { + public const ushort OPCODE = 0x00E1; + public const uint PACKET_SIZE = 0x30; + + public static SubPacket buildPacket(uint playerActorID, uint targetActorID, uint emoteID) + { + byte[] data = new byte[PACKET_SIZE - 0x20]; + + using (MemoryStream mem = new MemoryStream(data)) + { + using (BinaryWriter binWriter = new BinaryWriter(mem)) + { + uint realAnimID = 0x5000000 | ((emoteID - 100) << 12); + uint realDescID = 20000 + ((emoteID - 1) * 10) + (targetActorID == playerActorID || targetActorID == 0xC0000000 ? (uint)2 : (uint)1); + binWriter.Write((UInt32)realAnimID); + binWriter.Write((UInt32)targetActorID); + binWriter.Write((UInt32)realDescID); + } + } + + SubPacket packet = new SubPacket(OPCODE, playerActorID, targetActorID, data); + return packet; + } + } +}