diff --git a/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj b/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj
index 4b216574..b1e8727c 100644
--- a/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj
+++ b/FFXIVClassic Map Server/FFXIVClassic Map Server.csproj
@@ -84,11 +84,13 @@
+
+
+
-
@@ -102,7 +104,6 @@
-
diff --git a/FFXIVClassic Map Server/PacketProcessor.cs b/FFXIVClassic Map Server/PacketProcessor.cs
index 79976bae..7b806917 100644
--- a/FFXIVClassic Map Server/PacketProcessor.cs
+++ b/FFXIVClassic Map Server/PacketProcessor.cs
@@ -181,6 +181,7 @@ namespace FFXIVClassic_Lobby_Server
BasePacket reply5 = new BasePacket("./packets/login/login5.bin");
BasePacket reply6 = new BasePacket("./packets/login/login6_data.bin");
+ BasePacket reply62 = new BasePacket("./packets/login/login6_2.bin");
BasePacket reply7 = new BasePacket("./packets/login/login7_data.bin");
BasePacket reply8 = new BasePacket("./packets/login/login8_data.bin");
BasePacket reply9 = new BasePacket("./packets/login/login9_zonesetup.bin");
@@ -204,9 +205,13 @@ namespace FFXIVClassic_Lobby_Server
client.queuePacket(BasePacket.createPacket(SetMapPacket.buildPacket(player.actorID, 0xD1), true, false));
client.queuePacket(BasePacket.createPacket(_0x2Packet.buildPacket(player.actorID), true, false));
+
client.queuePacket(reply5);
client.queuePacket(reply6);
-
+
+ client.queuePacket(BasePacket.createPacket(player.getActor().createSpeedPacket(player.actorID), true, false));
+ client.queuePacket(BasePacket.createPacket(player.getActor().createStatePacket(player.actorID), true, false));
+
client.queuePacket(BasePacket.createPacket(player.getActor().createNamePacket(player.actorID), true, false));
client.queuePacket(BasePacket.createPacket(player.getActor().createAppearancePacket(player.actorID), true, false));
diff --git a/FFXIVClassic Map Server/dataobjects/Actor.cs b/FFXIVClassic Map Server/dataobjects/Actor.cs
index f349aabc..e54b8e4a 100644
--- a/FFXIVClassic Map Server/dataobjects/Actor.cs
+++ b/FFXIVClassic Map Server/dataobjects/Actor.cs
@@ -92,5 +92,15 @@ namespace FFXIVClassic_Map_Server.dataobjects
return setappearance.buildPacket(playerActorID, actorID);
}
+ public SubPacket createStatePacket(uint playerActorID)
+ {
+ return SetActorStatePacket.buildPacket(playerActorID, actorID, SetActorStatePacket.STATE_PASSIVE);
+ }
+
+ public SubPacket createSpeedPacket(uint playerActorID)
+ {
+ return SetActorSpeedPacket.buildPacket(playerActorID, actorID);
+ }
+
}
}
diff --git a/FFXIVClassic Map Server/packets/send/Actor/SetActorPositionPacket.cs b/FFXIVClassic Map Server/packets/send/Actor/SetActorPositionPacket.cs
index c2a1e290..95e86e8f 100644
--- a/FFXIVClassic Map Server/packets/send/Actor/SetActorPositionPacket.cs
+++ b/FFXIVClassic Map Server/packets/send/Actor/SetActorPositionPacket.cs
@@ -13,7 +13,16 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
public const ushort OPCODE = 0x00CE;
public const uint PACKET_SIZE = 0x48;
- public static SubPacket buildPacket(uint playerActorID, uint actorID)
+ public const uint SPAWNTYPE_NORMAL = 1;
+ public const uint SPAWNTYPE_WARP1 = 2;
+ public const uint SPAWNTYPE_WARP2 = 3;
+
+ public const float INNPOS_X = 157.550003f;
+ public const float INNPOS_Y = 000.000000f;
+ public const float INNPOS_Z = 165.050003f;
+ public const float INNPOS_ROT = -1.530000f;
+
+ public static SubPacket buildPacket(uint playerActorID, uint actorID, float x, float y, float z, float rotation)
{
byte[] data = new byte[PACKET_SIZE-0x20];
@@ -21,13 +30,16 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
{
using (BinaryWriter binWriter = new BinaryWriter(mem))
{
-
+ binWriter.Write((Int32)0);
+ binWriter.Write((Int32)0);
+ binWriter.Write((Single)x);
+ binWriter.Write((Single)y);
+ binWriter.Write((Single)z);
+ binWriter.Write((Single)rotation);
}
- data = mem.GetBuffer();
}
- SubPacket packet = new SubPacket(OPCODE, playerActorID, actorID, data);
- return packet;
+ return new SubPacket(OPCODE, playerActorID, actorID, data);
}
}
diff --git a/FFXIVClassic Map Server/packets/send/Actor/SetActorStatePacket.cs b/FFXIVClassic Map Server/packets/send/Actor/SetActorStatePacket.cs
index f82baa00..cc284eed 100644
--- a/FFXIVClassic Map Server/packets/send/Actor/SetActorStatePacket.cs
+++ b/FFXIVClassic Map Server/packets/send/Actor/SetActorStatePacket.cs
@@ -19,9 +19,11 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
public static SubPacket buildPacket(uint playerActorID, uint targetID, uint state)
{
- byte[] data = new byte[PACKET_SIZE - 0x20];
+ ulong combined = 0;
- return new SubPacket(OPCODE, playerActorID, targetID, data);
+ combined |= state;
+
+ return new SubPacket(OPCODE, playerActorID, targetID, BitConverter.GetBytes(combined));
}
}
}