diff --git a/FFXIVClassic Map Server/actors/Actor.cs b/FFXIVClassic Map Server/actors/Actor.cs index 8f5c3c53..222b71c5 100644 --- a/FFXIVClassic Map Server/actors/Actor.cs +++ b/FFXIVClassic Map Server/actors/Actor.cs @@ -23,7 +23,7 @@ namespace FFXIVClassic_Map_Server.Actors public float positionX, positionY, positionZ, rotation; public float oldPositionX, oldPositionY, oldPositionZ, oldRotation; public ushort moveState, oldMoveState; - public float[] moveSpeeds = new float[5]; + public float[] moveSpeeds = new float[4]; public uint zoneId, zoneId2; public Area zone = null; @@ -53,7 +53,7 @@ namespace FFXIVClassic_Map_Server.Actors this.moveSpeeds[0] = SetActorSpeedPacket.DEFAULT_STOP; this.moveSpeeds[1] = SetActorSpeedPacket.DEFAULT_WALK; this.moveSpeeds[2] = SetActorSpeedPacket.DEFAULT_RUN; - this.moveSpeeds[3] = SetActorSpeedPacket.DEFAULT_RUN; + this.moveSpeeds[3] = SetActorSpeedPacket.DEFAULT_ACTIVE; } public SubPacket CreateAddActorPacket(uint playerActorId, byte val) @@ -289,17 +289,17 @@ namespace FFXIVClassic_Map_Server.Actors public void ChangeSpeed(int type, float value) { moveSpeeds[type] = value; - SubPacket ChangeSpeedPacket = SetActorSpeedPacket.BuildPacket(actorId, actorId, moveSpeeds[0], moveSpeeds[1], moveSpeeds[2]); + SubPacket ChangeSpeedPacket = SetActorSpeedPacket.BuildPacket(actorId, actorId, moveSpeeds[0], moveSpeeds[1], moveSpeeds[2], moveSpeeds[3]); zone.BroadcastPacketAroundActor(this, ChangeSpeedPacket); } - public void ChangeSpeed(float speedStop, float speedWalk, float speedRun) + public void ChangeSpeed(float speedStop, float speedWalk, float speedRun, float speedActive) { moveSpeeds[0] = speedStop; moveSpeeds[1] = speedWalk; moveSpeeds[2] = speedRun; - moveSpeeds[3] = speedRun; - SubPacket ChangeSpeedPacket = SetActorSpeedPacket.BuildPacket(actorId, actorId, moveSpeeds[0], moveSpeeds[1], moveSpeeds[2]); + moveSpeeds[3] = speedActive; + SubPacket ChangeSpeedPacket = SetActorSpeedPacket.BuildPacket(actorId, actorId, moveSpeeds[0], moveSpeeds[1], moveSpeeds[2], moveSpeeds[3]); zone.BroadcastPacketAroundActor(this, ChangeSpeedPacket); } diff --git a/FFXIVClassic Map Server/packets/send/Actor/SetActorSpeedPacket.cs b/FFXIVClassic Map Server/packets/send/Actor/SetActorSpeedPacket.cs index 009ee086..d266ef5b 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/SetActorSpeedPacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/SetActorSpeedPacket.cs @@ -12,6 +12,7 @@ namespace FFXIVClassic_Map_Server.packets.send.actor public const float DEFAULT_STOP = 0.0f; public const float DEFAULT_WALK = 2.0f; public const float DEFAULT_RUN = 5.0f; + public const float DEFAULT_ACTIVE = 5.0f; public static SubPacket BuildPacket(uint playerActorID, uint targetActorID) { @@ -30,19 +31,19 @@ namespace FFXIVClassic_Map_Server.packets.send.actor binWriter.Write((Single)DEFAULT_RUN); binWriter.Write((UInt32)2); - binWriter.Write((Single)DEFAULT_RUN); + binWriter.Write((Single)DEFAULT_ACTIVE); binWriter.Write((UInt32)3); binWriter.BaseStream.Seek(0x80, SeekOrigin.Begin); - binWriter.Write((UInt32)5); + binWriter.Write((UInt32)4); } } return new SubPacket(OPCODE, playerActorID, targetActorID, data); } - public static SubPacket BuildPacket(uint playerActorID, uint targetActorID, float stopSpeed, float walkSpeed, float runSpeed) + public static SubPacket BuildPacket(uint playerActorID, uint targetActorID, float stopSpeed, float walkSpeed, float runSpeed, float activeSpeed) { byte[] data = new byte[PACKET_SIZE - 0x20]; @@ -59,12 +60,12 @@ namespace FFXIVClassic_Map_Server.packets.send.actor binWriter.Write((Single)runSpeed); binWriter.Write((UInt32)2); - binWriter.Write((Single)runSpeed); + binWriter.Write((Single)activeSpeed); binWriter.Write((UInt32)3); binWriter.BaseStream.Seek(0x80, SeekOrigin.Begin); - binWriter.Write((UInt32)5); + binWriter.Write((UInt32)4); } } diff --git a/data/scripts/commands/ChocoboRideCommand.lua b/data/scripts/commands/ChocoboRideCommand.lua index 9952417f..2fb5dcfe 100644 --- a/data/scripts/commands/ChocoboRideCommand.lua +++ b/data/scripts/commands/ChocoboRideCommand.lua @@ -24,7 +24,7 @@ function onEventStarted(player, actor, triggerName, isGoobbue) player:SetMountState(2); end - player:ChangeSpeed(0.0, 5.0, 10.0); + player:ChangeSpeed(0.0, 5.0, 10.0, 10.0); player:ChangeState(15); else player:ChangeMusic(player:GetZone().bgmDay); @@ -38,7 +38,7 @@ function onEventStarted(player, actor, triggerName, isGoobbue) end player:SetMountState(0); - player:ChangeSpeed(0.0, 2.0, 5.0) + player:ChangeSpeed(0.0, 2.0, 5.0, 5.0) player:ChangeState(0); end diff --git a/data/scripts/commands/gm/speed.lua b/data/scripts/commands/gm/speed.lua index 90cf537a..9a145208 100644 --- a/data/scripts/commands/gm/speed.lua +++ b/data/scripts/commands/gm/speed.lua @@ -9,5 +9,5 @@ function onTrigger(player, argc, stop, walk, run) walk = tonumber(walk) or 2; run = tonumber(run) or 5; - player:ChangeSpeed(stop, walk, run); + player:ChangeSpeed(stop, walk, run, run); end; \ No newline at end of file