AimCoords also added for LightSync. Small changes

This commit is contained in:
EntenKoeniq
2021-12-24 05:20:32 +01:00
parent d6ef443b92
commit 56ab6ef284
4 changed files with 70 additions and 14 deletions

View File

@ -478,6 +478,7 @@ namespace CoopClient
player.VehicleVelocity = packet.VehVelocity.ToVector(); player.VehicleVelocity = packet.VehVelocity.ToVector();
player.VehicleSpeed = packet.VehSpeed; player.VehicleSpeed = packet.VehSpeed;
player.VehicleSteeringAngle = packet.VehSteeringAngle; player.VehicleSteeringAngle = packet.VehSteeringAngle;
player.AimCoords = packet.AimCoords.ToVector();
player.VehIsEngineRunning = (packet.Flag.Value & (ushort)VehicleDataFlags.IsEngineRunning) > 0; player.VehIsEngineRunning = (packet.Flag.Value & (ushort)VehicleDataFlags.IsEngineRunning) > 0;
player.VehAreLightsOn = (packet.Flag.Value & (ushort)VehicleDataFlags.AreLightsOn) > 0; player.VehAreLightsOn = (packet.Flag.Value & (ushort)VehicleDataFlags.AreLightsOn) > 0;
player.VehAreHighBeamsOn = (packet.Flag.Value & (ushort)VehicleDataFlags.AreHighBeamsOn) > 0; player.VehAreHighBeamsOn = (packet.Flag.Value & (ushort)VehicleDataFlags.AreHighBeamsOn) > 0;

View File

@ -1165,6 +1165,8 @@ namespace CoopClient
public float VehSteeringAngle { get; set; } public float VehSteeringAngle { get; set; }
public LVector3 AimCoords { get; set; }
public ushort? Flag { get; set; } public ushort? Flag { get; set; }
public float? Latency { get; set; } public float? Latency { get; set; }
@ -1179,6 +1181,9 @@ namespace CoopClient
// Write player netHandle // Write player netHandle
byteArray.AddRange(BitConverter.GetBytes(NetHandle)); byteArray.AddRange(BitConverter.GetBytes(NetHandle));
// Write vehicle flags
byteArray.AddRange(BitConverter.GetBytes(Flag.Value));
// Write player health // Write player health
byteArray.AddRange(BitConverter.GetBytes(Health)); byteArray.AddRange(BitConverter.GetBytes(Health));
@ -1210,8 +1215,17 @@ namespace CoopClient
// Write vehicle steering angle // Write vehicle steering angle
byteArray.AddRange(BitConverter.GetBytes(VehSteeringAngle)); byteArray.AddRange(BitConverter.GetBytes(VehSteeringAngle));
// Write vehicle flags // Check
byteArray.AddRange(BitConverter.GetBytes(Flag.Value)); if (Flag.HasValue)
{
if ((Flag.Value & (ushort)VehicleDataFlags.OnTurretSeat) != 0)
{
// Write player aim coords
byteArray.AddRange(BitConverter.GetBytes(AimCoords.X));
byteArray.AddRange(BitConverter.GetBytes(AimCoords.Y));
byteArray.AddRange(BitConverter.GetBytes(AimCoords.Z));
}
}
// Check if player latency has value // Check if player latency has value
if (Latency.HasValue) if (Latency.HasValue)
@ -1240,6 +1254,9 @@ namespace CoopClient
// Read player netHandle // Read player netHandle
NetHandle = reader.ReadLong(); NetHandle = reader.ReadLong();
// Read player flags
Flag = reader.ReadUShort();
// Read player health // Read player health
Health = reader.ReadInt(); Health = reader.ReadInt();
@ -1280,8 +1297,19 @@ namespace CoopClient
// Read vehicle steering angle // Read vehicle steering angle
VehSteeringAngle = reader.ReadFloat(); VehSteeringAngle = reader.ReadFloat();
// Read player flags // Check
Flag = reader.ReadUShort(); if (Flag.HasValue)
{
if ((Flag.Value & (ushort)VehicleDataFlags.OnTurretSeat) != 0)
{
AimCoords = new LVector3()
{
X = reader.ReadFloat(),
Y = reader.ReadFloat(),
Z= reader.ReadFloat()
};
}
}
// Try to read latency // Try to read latency
if (reader.CanRead(4)) if (reader.CanRead(4))

View File

@ -47,11 +47,6 @@ namespace CoopClient
} }
#endregion #endregion
public static dynamic Lerp(dynamic from, dynamic to, float fAlpha)
{
return (to - from) * fAlpha + from;
}
public static T GetGameMs<T>() where T : IConvertible public static T GetGameMs<T>() where T : IConvertible
{ {
return (T)Convert.ChangeType(1f / (Game.FPS > 60f ? 60f : Game.FPS) * 1000f, typeof(T)); return (T)Convert.ChangeType(1f / (Game.FPS > 60f ? 60f : Game.FPS) * 1000f, typeof(T));
@ -117,6 +112,11 @@ namespace CoopClient
return (end - start) * currentTime / duration + start; return (end - start) * currentTime / duration + start;
} }
public static dynamic Lerp(dynamic from, dynamic to, float fAlpha)
{
return (to - from) * fAlpha + from;
}
public static int GetResponsiblePedHandle(this Vehicle veh) public static int GetResponsiblePedHandle(this Vehicle veh)
{ {
if (veh == null || veh.Handle == 0 || !veh.Exists()) if (veh == null || veh.Handle == 0 || !veh.Exists())
@ -352,7 +352,6 @@ namespace CoopClient
public static void SetVehicleDamageModel(this Vehicle veh, VehicleDamageModel model, bool leavedoors = true) public static void SetVehicleDamageModel(this Vehicle veh, VehicleDamageModel model, bool leavedoors = true)
{ {
// Set doors
for (int i = 0; i < 8; i++) for (int i = 0; i < 8; i++)
{ {
if ((model.BrokenDoors & (byte)(1 << i)) != 0) if ((model.BrokenDoors & (byte)(1 << i)) != 0)

View File

@ -1057,6 +1057,8 @@ namespace CoopServer
public float VehSteeringAngle { get; set; } public float VehSteeringAngle { get; set; }
public LVector3 AimCoords { get; set; }
public ushort? Flag { get; set; } public ushort? Flag { get; set; }
public float? Latency { get; set; } public float? Latency { get; set; }
@ -1071,6 +1073,9 @@ namespace CoopServer
// Write player netHandle // Write player netHandle
byteArray.AddRange(BitConverter.GetBytes(NetHandle)); byteArray.AddRange(BitConverter.GetBytes(NetHandle));
// Write vehicle flags
byteArray.AddRange(BitConverter.GetBytes(Flag.Value));
// Write player health // Write player health
byteArray.AddRange(BitConverter.GetBytes(Health)); byteArray.AddRange(BitConverter.GetBytes(Health));
@ -1102,8 +1107,17 @@ namespace CoopServer
// Write vehicle steering angle // Write vehicle steering angle
byteArray.AddRange(BitConverter.GetBytes(VehSteeringAngle)); byteArray.AddRange(BitConverter.GetBytes(VehSteeringAngle));
// Write vehicle flags // Check
byteArray.AddRange(BitConverter.GetBytes(Flag.Value)); if (Flag.HasValue)
{
if ((Flag.Value & (ushort)VehicleDataFlags.OnTurretSeat) != 0)
{
// Write player aim coords
byteArray.AddRange(BitConverter.GetBytes(AimCoords.X));
byteArray.AddRange(BitConverter.GetBytes(AimCoords.Y));
byteArray.AddRange(BitConverter.GetBytes(AimCoords.Z));
}
}
// Check if player latency has value // Check if player latency has value
if (Latency.HasValue) if (Latency.HasValue)
@ -1132,6 +1146,9 @@ namespace CoopServer
// Read player netHandle // Read player netHandle
NetHandle = reader.ReadLong(); NetHandle = reader.ReadLong();
// Read player flags
Flag = reader.ReadUShort();
// Read player health // Read player health
Health = reader.ReadInt(); Health = reader.ReadInt();
@ -1172,8 +1189,19 @@ namespace CoopServer
// Read vehicle steering angle // Read vehicle steering angle
VehSteeringAngle = reader.ReadFloat(); VehSteeringAngle = reader.ReadFloat();
// Read player flags // Check
Flag = reader.ReadUShort(); if (Flag.HasValue)
{
if ((Flag.Value & (ushort)VehicleDataFlags.OnTurretSeat) != 0)
{
AimCoords = new LVector3()
{
X = reader.ReadFloat(),
Y = reader.ReadFloat(),
Z = reader.ReadFloat()
};
}
}
// Try to read latency // Try to read latency
if (reader.CanRead(4)) if (reader.CanRead(4))