Better brake lights
This commit is contained in:
@ -45,6 +45,7 @@ namespace CoopClient.Entities.NPC
|
||||
private bool LastHornActive = false;
|
||||
internal bool IsHornActive { get; set; }
|
||||
internal bool VehAreLightsOn { get; set; }
|
||||
internal bool VehAreBrakeLightsOn = false;
|
||||
internal bool VehAreHighBeamsOn { get; set; }
|
||||
internal byte VehLandingGear { get; set; }
|
||||
internal bool VehRoofOpened { get; set; }
|
||||
@ -236,7 +237,7 @@ namespace CoopClient.Entities.NPC
|
||||
}
|
||||
}
|
||||
|
||||
Function.Call(Hash.SET_VEHICLE_BRAKE_LIGHTS, MainVehicle, CurrentVehicleSpeed > 0.2f && LastVehicleSpeed > CurrentVehicleSpeed);
|
||||
Function.Call(Hash.SET_VEHICLE_BRAKE_LIGHTS, MainVehicle.Handle, VehAreBrakeLightsOn);
|
||||
|
||||
if (LastSyncWasFull)
|
||||
{
|
||||
|
@ -362,26 +362,32 @@ namespace CoopClient.Entities.Player
|
||||
UpdateOnFootPosition();
|
||||
}
|
||||
|
||||
private byte LastStuckCount = 0;
|
||||
private bool StuckDetection = false;
|
||||
private ulong LastStuckTime;
|
||||
private void UpdateOnFootPosition(bool updatePosition = true, bool updateRotation = true, bool updateVelocity = true)
|
||||
{
|
||||
ulong time = Util.GetTickCount64();
|
||||
|
||||
if (StuckDetection)
|
||||
{
|
||||
if (time - LastStuckTime >= 500)
|
||||
{
|
||||
StuckDetection = false;
|
||||
|
||||
if (Character.Position.DistanceTo(Position) > 5f)
|
||||
{
|
||||
if (Util.GetTickCount64() - LastStuckTime < 1000)
|
||||
{
|
||||
LastStuckCount = 0;
|
||||
Character.PositionNoOffset = Position;
|
||||
Character.Rotation = Rotation;
|
||||
}
|
||||
|
||||
++LastStuckCount;
|
||||
|
||||
if (LastStuckCount >= 5)
|
||||
{
|
||||
Character.Position = Position;
|
||||
LastStuckCount = 0;
|
||||
}
|
||||
|
||||
LastStuckTime = Util.GetTickCount64();
|
||||
}
|
||||
else if (time - LastStuckTime >= 500)
|
||||
{
|
||||
if (Character.Position.DistanceTo(Position) > 5f)
|
||||
{
|
||||
StuckDetection = true;
|
||||
LastStuckTime = time;
|
||||
}
|
||||
}
|
||||
|
||||
if (updatePosition)
|
||||
|
@ -63,6 +63,7 @@ namespace CoopClient.Entities.Player
|
||||
private bool LastHornActive = false;
|
||||
internal bool IsHornActive { get; set; }
|
||||
internal bool VehAreLightsOn { get; set; }
|
||||
internal bool VehAreBrakeLightsOn = false;
|
||||
internal bool VehAreHighBeamsOn { get; set; }
|
||||
internal byte VehLandingGear { get; set; }
|
||||
internal bool VehRoofOpened { get; set; }
|
||||
@ -259,7 +260,7 @@ namespace CoopClient.Entities.Player
|
||||
}
|
||||
}
|
||||
|
||||
Function.Call(Hash.SET_VEHICLE_BRAKE_LIGHTS, MainVehicle, CurrentVehicleSpeed > 0.2f && LastVehicleSpeed > CurrentVehicleSpeed);
|
||||
Function.Call(Hash.SET_VEHICLE_BRAKE_LIGHTS, MainVehicle.Handle, VehAreBrakeLightsOn);
|
||||
|
||||
if (LastSyncWasFull)
|
||||
{
|
||||
|
@ -385,6 +385,7 @@ namespace CoopClient
|
||||
DebugSyncPed.IsInVehicle = true;
|
||||
DebugSyncPed.VehIsEngineRunning = (flags.Value & (ushort)VehicleDataFlags.IsEngineRunning) > 0;
|
||||
DebugSyncPed.VehAreLightsOn = (flags.Value & (ushort)VehicleDataFlags.AreLightsOn) > 0;
|
||||
DebugSyncPed.VehAreBrakeLightsOn = (flags.Value & (ushort)VehicleDataFlags.AreBrakeLightsOn) > 0;
|
||||
DebugSyncPed.VehAreHighBeamsOn = (flags.Value & (ushort)VehicleDataFlags.AreHighBeamsOn) > 0;
|
||||
DebugSyncPed.VehIsSireneActive = (flags.Value & (ushort)VehicleDataFlags.IsSirenActive) > 0;
|
||||
DebugSyncPed.VehicleDead = (flags.Value & (ushort)VehicleDataFlags.IsDead) > 0;
|
||||
|
@ -149,14 +149,15 @@ namespace CoopClient
|
||||
{
|
||||
IsEngineRunning = 1 << 0,
|
||||
AreLightsOn = 1 << 1,
|
||||
AreHighBeamsOn = 1 << 2,
|
||||
IsSirenActive = 1 << 3,
|
||||
IsDead = 1 << 4,
|
||||
IsHornActive = 1 << 5,
|
||||
IsTransformed = 1 << 6,
|
||||
RoofOpened = 1 << 7,
|
||||
OnTurretSeat = 1 << 8,
|
||||
IsPlane = 1 << 9
|
||||
AreBrakeLightsOn = 1 << 2,
|
||||
AreHighBeamsOn = 1 << 3,
|
||||
IsSirenActive = 1 << 4,
|
||||
IsDead = 1 << 5,
|
||||
IsHornActive = 1 << 6,
|
||||
IsTransformed = 1 << 7,
|
||||
RoofOpened = 1 << 8,
|
||||
OnTurretSeat = 1 << 9,
|
||||
IsPlane = 1 << 10
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -187,6 +187,11 @@ namespace CoopClient
|
||||
flags |= (ushort)VehicleDataFlags.AreLightsOn;
|
||||
}
|
||||
|
||||
if (veh.BrakePower >= 0.01f)
|
||||
{
|
||||
flags |= (ushort)VehicleDataFlags.AreBrakeLightsOn;
|
||||
}
|
||||
|
||||
if (veh.AreHighBeamsOn)
|
||||
{
|
||||
flags |= (ushort)VehicleDataFlags.AreHighBeamsOn;
|
||||
|
@ -135,14 +135,15 @@ namespace CoopServer
|
||||
{
|
||||
IsEngineRunning = 1 << 0,
|
||||
AreLightsOn = 1 << 1,
|
||||
AreHighBeamsOn = 1 << 2,
|
||||
IsSirenActive = 1 << 3,
|
||||
IsDead = 1 << 4,
|
||||
IsHornActive = 1 << 5,
|
||||
IsTransformed = 1 << 6,
|
||||
RoofOpened = 1 << 7,
|
||||
OnTurretSeat = 1 << 8,
|
||||
IsPlane = 1 << 9
|
||||
AreBrakeLightsOn = 1 << 2,
|
||||
AreHighBeamsOn = 1 << 3,
|
||||
IsSirenActive = 1 << 4,
|
||||
IsDead = 1 << 5,
|
||||
IsHornActive = 1 << 6,
|
||||
IsTransformed = 1 << 7,
|
||||
RoofOpened = 1 << 8,
|
||||
OnTurretSeat = 1 << 9,
|
||||
IsPlane = 1 << 10
|
||||
}
|
||||
|
||||
struct VehicleDamageModel
|
||||
|
Reference in New Issue
Block a user