public void WriteOutcoming() { BS.WriteValue( ParamType.UInt8, PacketId, ParamType.UInt16, FromPlayerId, ParamType.UInt16, VehicleId, ParamType.UInt16, LRKey, ParamType.UInt16, UDKey, ParamType.UInt16, Keys ); BS.WriteNormQuat(Quaternion); BS.WriteValue( ParamType.Float, Position.X, ParamType.Float, Position.Y, ParamType.Float, Position.Z ); BS.WriteVector(Velocity); BS.WriteUInt16((int)VehicleHealth); byte healthArmour = HealthArmour.SetInByte(PlayerHealth, PlayerArmour); BS.WriteUInt8((int)healthArmour); BS.WriteUInt8(WeaponId); if (SirenState == 1) { BS.WriteBool(true); } else { BS.WriteBool(false); } if (LandingGearState == 1) { BS.WriteBool(true); } else { BS.WriteBool(false); } // HYDRA THRUST ANGLE AND TRAILER Id BS.WriteBool(false); BS.WriteBool(false); int trailerId_or_thrustAngle = 0; BS.WriteUInt32(trailerId_or_thrustAngle); // TRAIN SPECIAL BS.WriteBool(false); }
public void WriteOutcoming() { BS.WriteUInt8(PacketId); BS.WriteUInt16(FromPlayerId); if (LRKey != 0) { BS.WriteBool(true); BS.WriteUInt16(LRKey); } else { BS.WriteBool(false); } if (UDKey != 0) { BS.WriteBool(true); BS.WriteUInt16(UDKey); } else { BS.WriteBool(false); } BS.WriteValue( ParamType.UInt16, Keys, ParamType.Float, Position.X, ParamType.Float, Position.Y, ParamType.Float, Position.Z ); BS.WriteNormQuat(Quaternion); byte healthArmourByte = HealthArmour.SetInByte(Health, Armour); BS.WriteValue( ParamType.UInt8, (int)healthArmourByte, ParamType.UInt8, WeaponId, ParamType.UInt8, SpecialAction ); BS.WriteVector(Velocity); if (SurfingVehicleId != 0) { BS.WriteValue( ParamType.Bool, true, ParamType.UInt8, SurfingVehicleId, ParamType.Float, SurfingOffsets.X, ParamType.Float, SurfingOffsets.Y, ParamType.Float, SurfingOffsets.Z ); } else { BS.WriteBool(false); } if (AnimationId != 0) { BS.WriteBool(true); BS.WriteInt32(AnimationId); } else { BS.WriteBool(false); } }
public void ReadOutcoming() { PacketId = BS.ReadUInt8(); FromPlayerId = BS.ReadUInt16(); //LEFT/RIGHT KEYS bool hasLR = BS.ReadBool(); if (hasLR) { LRKey = BS.ReadUInt16(); } // UP/DOWN KEYS bool hasUD = BS.ReadBool(); if (hasUD) { UDKey = BS.ReadUInt16(); } var arguments = new List <object>() { ParamType.UInt16, "keys", ParamType.Float, "position_0", ParamType.Float, "position_1", ParamType.Float, "position_2" }; var result = BS.ReadValue(arguments.ToArray()); Keys = (int)result["keys"]; Position = new Vector3((float)result["position_0"], (float)result["position_1"], (float)result["position_2"]); Quaternion = BS.ReadNormQuat(); result = BS.ReadValue( ParamType.UInt8, "healthArmourByte", ParamType.UInt8, "weaponId", ParamType.UInt8, "specialAction" ); byte healthArmour = Convert.ToByte(((int)result["healthArmourByte"])); HealthArmour.GetFromByte(healthArmour, out int health, out int armour); Health = health; Armour = armour; WeaponId = (int)result["weaponId"]; SpecialAction = (int)result["specialAction"]; Velocity = BS.ReadVector(); bool hasSurfInfo = BS.ReadBool(); if (hasSurfInfo) { SurfingVehicleId = BS.ReadUInt16(); float offsetsX = BS.ReadFloat(); float offsetsY = BS.ReadFloat(); float offsetsZ = BS.ReadFloat(); SurfingOffsets = new Vector3(offsetsX, offsetsY, offsetsZ); } else { SurfingVehicleId = -1; } bool hasAnimation = BS.ReadBool(); if (hasAnimation) { AnimationId = BS.ReadInt32(); } }
public void ReadOutcoming() { PacketId = BS.ReadUInt8(); FromPlayerId = BS.ReadUInt16(); VehicleId = BS.ReadUInt16(); // LEFT/RIGHT KEYS LRKey = BS.ReadUInt16(); // UP/DOWN KEYS UDKey = BS.ReadUInt16(); // GENERAL KEYS Keys = BS.ReadUInt16(); // ROTATION Quaternion = BS.ReadNormQuat(); float x = BS.ReadFloat(); float y = BS.ReadFloat(); float z = BS.ReadFloat(); Position = new Vector3(x, y, z); Velocity = BS.ReadVector(); VehicleHealth = (float)BS.ReadUInt16(); byte healthArmour = Convert.ToByte(BS.ReadUInt8()); HealthArmour.GetFromByte(healthArmour, out int health, out int armour); PlayerHealth = health; PlayerArmour = armour; WeaponId = BS.ReadUInt8(); bool sirenState = BS.ReadCompressedBool(); if (sirenState) { SirenState = 1; } bool landingGear = BS.ReadCompressedBool(); if (landingGear) { LandingGearState = 1; } // HYDRA THRUST ANGLE AND TRAILER Id bool hydra = BS.ReadCompressedBool(); bool trailer = BS.ReadCompressedBool(); int trailerId_or_thrustAngle = BS.ReadUInt32(); bool train = BS.ReadCompressedBool(); if (train) { TrainSpeed = (float)BS.ReadUInt8(); } }