Added vehicle roof sync

This commit is contained in:
EntenKoeniq
2021-12-18 09:46:42 +01:00
parent ce5868e9ac
commit 6f857daf69
6 changed files with 28 additions and 7 deletions

View File

@ -70,7 +70,7 @@ namespace CoopClient.Entities
internal bool VehAreLightsOn { get; set; }
internal bool VehAreHighBeamsOn { get; set; }
internal byte VehLandingGear { get; set; }
internal bool VehRoofOpened { get; set; }
internal bool VehIsSireneActive { get; set; }
private VehicleDoors[] LastVehDoors;
internal VehicleDoors[] VehDoors { get; set; }
@ -273,6 +273,15 @@ namespace CoopClient.Entities
MainVehicle.SoundHorn(1);
}
if (MainVehicle.HasRoof)
{
bool roofOpened = MainVehicle.RoofState == VehicleRoofState.Opened || MainVehicle.RoofState == VehicleRoofState.Opening;
if (roofOpened != VehRoofOpened)
{
MainVehicle.RoofState = VehRoofOpened ? VehicleRoofState.Opening : VehicleRoofState.Closing;
}
}
Function.Call(Hash.SET_VEHICLE_BRAKE_LIGHTS, MainVehicle, CurrentVehicleSpeed > 0.2f && LastVehicleSpeed > CurrentVehicleSpeed);
if (LastSyncWasFull)

View File

@ -251,11 +251,11 @@ namespace CoopClient
}
Players.Clear();
foreach (KeyValuePair<long, EntitiesPed> Npc in NPCs)
foreach (KeyValuePair<long, EntitiesPed> npc in NPCs)
{
Npc.Value.Character?.CurrentVehicle?.Delete();
Npc.Value.Character?.Kill();
Npc.Value.Character?.Delete();
npc.Value.Character?.CurrentVehicle?.Delete();
npc.Value.Character?.Kill();
npc.Value.Character?.Delete();
}
NPCs.Clear();
@ -332,6 +332,7 @@ namespace CoopClient
DebugSyncPed.VehicleDead = (flags.Value & (byte)VehicleDataFlags.IsDead) > 0;
DebugSyncPed.IsHornActive = (flags.Value & (byte)VehicleDataFlags.IsHornActive) > 0;
DebugSyncPed.Transformed = (flags.Value & (byte)VehicleDataFlags.IsTransformed) > 0;
DebugSyncPed.VehRoofOpened = (flags.Value & (byte)VehicleDataFlags.RoofOpened) > 0;
DebugSyncPed.VehLandingGear = veh.IsPlane ? (byte)veh.LandingGearState : (byte)0;
if (DebugSyncPed.MainVehicle != null && DebugSyncPed.MainVehicle.Exists() && player.IsInVehicle())

View File

@ -340,6 +340,7 @@ namespace CoopClient
player.VehicleDead = (packet.Flag.Value & (byte)VehicleDataFlags.IsDead) > 0;
player.IsHornActive = (packet.Flag.Value & (byte)VehicleDataFlags.IsHornActive) > 0;
player.Transformed = (packet.Flag.Value & (byte)VehicleDataFlags.IsTransformed) > 0;
player.VehRoofOpened = (packet.Flag.Value & (byte)VehicleDataFlags.RoofOpened) > 0;
player.IsInVehicle = true;
player.LastSyncWasFull = true;
@ -397,6 +398,7 @@ namespace CoopClient
player.VehicleDead = (packet.Flag.Value & (byte)VehicleDataFlags.IsDead) > 0;
player.IsHornActive = (packet.Flag.Value & (byte)VehicleDataFlags.IsHornActive) > 0;
player.Transformed = (packet.Flag.Value & (byte)VehicleDataFlags.IsTransformed) > 0;
player.VehRoofOpened = (packet.Flag.Value & (byte)VehicleDataFlags.RoofOpened) > 0;
player.IsInVehicle = true;
player.LastSyncWasFull = false;
@ -639,6 +641,7 @@ namespace CoopClient
npc.VehicleDead = (packet.Flag.Value & (byte)VehicleDataFlags.IsDead) > 0;
npc.IsHornActive = (packet.Flag.Value & (byte)VehicleDataFlags.IsHornActive) > 0;
npc.Transformed = (packet.Flag.Value & (byte)VehicleDataFlags.IsTransformed) > 0;
npc.VehRoofOpened = (packet.Flag.Value & (byte)VehicleDataFlags.RoofOpened) > 0;
npc.IsInVehicle = true;
npc.LastSyncWasFull = true;
@ -674,6 +677,7 @@ namespace CoopClient
VehicleDead = (packet.Flag.Value & (byte)VehicleDataFlags.IsDead) > 0,
IsHornActive = (packet.Flag.Value & (byte)VehicleDataFlags.IsHornActive) > 0,
Transformed = (packet.Flag.Value & (byte)VehicleDataFlags.IsTransformed) > 0,
VehRoofOpened = (packet.Flag.Value & (byte)VehicleDataFlags.RoofOpened) > 0,
IsInVehicle = true,
LastSyncWasFull = true,

View File

@ -164,7 +164,8 @@ namespace CoopClient
IsSirenActive = 1 << 3,
IsDead = 1 << 4,
IsHornActive = 1 << 5,
IsTransformed = 1 << 6
IsTransformed = 1 << 6,
RoofOpened = 1 << 7
}
/// <summary>

View File

@ -207,6 +207,11 @@ namespace CoopClient
flags |= (byte)VehicleDataFlags.IsTransformed;
}
if (veh.HasRoof && (veh.RoofState == VehicleRoofState.Opened || veh.RoofState == VehicleRoofState.Opening))
{
flags |= (byte)VehicleDataFlags.RoofOpened;
}
return flags;
}

View File

@ -107,7 +107,8 @@ namespace CoopServer
IsSirenActive = 1 << 3,
IsDead = 1 << 4,
IsHornActive = 1 << 5,
IsTransformed = 1 << 6
IsTransformed = 1 << 6,
RoofOpened = 1 << 7
}
[ProtoContract]