Added vehicle roof sync
This commit is contained in:
@ -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)
|
||||
|
@ -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())
|
||||
|
@ -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,
|
||||
|
||||
|
@ -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>
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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]
|
||||
|
Reference in New Issue
Block a user