Speed is now stored in the actor. Redid actor speed packet to use float. Added GameMessagePacket which can use all 20 msg packets. Added functions for lua side to call in player obj.

This commit is contained in:
Filip Maj 2016-02-02 00:02:06 -05:00
parent fe69f069ea
commit cfb29b912f
7 changed files with 445 additions and 21 deletions

View file

@ -13,9 +13,9 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
public const ushort OPCODE = 0x00D0;
public const uint PACKET_SIZE = 0xA8;
public const ushort DEFAULT_STOP = 0x0000;
public const ushort DEFAULT_WALK = 0x4000;
public const ushort DEFAULT_RUN = 0x40A0;
public const float DEFAULT_STOP = 0.0f;
public const float DEFAULT_WALK = 2.0f;
public const float DEFAULT_RUN = 5.0f;
public static SubPacket buildPacket(uint playerActorID, uint targetActorID)
{
@ -25,20 +25,16 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
{
using (BinaryWriter binWriter = new BinaryWriter(mem))
{
binWriter.Write((UInt16)00);
binWriter.Write((UInt16)DEFAULT_STOP);
binWriter.Write((Single)DEFAULT_STOP);
binWriter.Write((UInt32)0);
binWriter.Write((UInt16)00);
binWriter.Write((UInt16)DEFAULT_WALK);
binWriter.Write((Single)DEFAULT_WALK);
binWriter.Write((UInt32)1);
binWriter.Write((UInt16)00);
binWriter.Write((UInt16)DEFAULT_RUN);
binWriter.Write((Single)DEFAULT_RUN);
binWriter.Write((UInt32)2);
binWriter.Write((UInt16)00);
binWriter.Write((UInt16)DEFAULT_RUN);
binWriter.Write((Single)DEFAULT_RUN);
binWriter.Write((UInt32)3);
binWriter.BaseStream.Seek(0x80, SeekOrigin.Begin);
@ -50,7 +46,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
return new SubPacket(OPCODE, playerActorID, targetActorID, data);
}
public static SubPacket buildPacket(uint playerActorID, uint targetActorID, ushort stopSpeed, ushort walkSpeed, ushort runSpeed)
public static SubPacket buildPacket(uint playerActorID, uint targetActorID, float stopSpeed, float walkSpeed, float runSpeed)
{
byte[] data = new byte[PACKET_SIZE - 0x20];
@ -58,20 +54,17 @@ namespace FFXIVClassic_Map_Server.packets.send.actor
{
using (BinaryWriter binWriter = new BinaryWriter(mem))
{
binWriter.Write((UInt16)00);
binWriter.Write((UInt16)stopSpeed);
binWriter.Write((Single)stopSpeed);
binWriter.Write((UInt32)0);
binWriter.Write((UInt16)00);
binWriter.Write((UInt16)walkSpeed);
binWriter.Write((Single)walkSpeed);
binWriter.Write((UInt32)1);
binWriter.Write((UInt16)00);
binWriter.Write((UInt16)runSpeed);
binWriter.Write((Single)runSpeed);
binWriter.Write((UInt32)2);
binWriter.Write((UInt16)00);
binWriter.Write((UInt16)runSpeed);
binWriter.Write((Single)runSpeed);
binWriter.Write((UInt32)3);
binWriter.BaseStream.Seek(0x90, SeekOrigin.Begin);