Add RoofState sync.
This commit is contained in:
@ -358,6 +358,7 @@ namespace RageCoop.Client
|
|||||||
v.ModelHash=packet.ModelHash;
|
v.ModelHash=packet.ModelHash;
|
||||||
v.Colors=packet.Colors;
|
v.Colors=packet.Colors;
|
||||||
v.LandingGear=packet.LandingGear;
|
v.LandingGear=packet.LandingGear;
|
||||||
|
v.RoofState=(VehicleRoofState)packet.RoofState;
|
||||||
v.EngineRunning = packet.Flag.HasFlag(VehicleDataFlags.IsEngineRunning);
|
v.EngineRunning = packet.Flag.HasFlag(VehicleDataFlags.IsEngineRunning);
|
||||||
v.LightsOn = packet.Flag.HasFlag(VehicleDataFlags.AreLightsOn);
|
v.LightsOn = packet.Flag.HasFlag(VehicleDataFlags.AreLightsOn);
|
||||||
v.BrakeLightsOn = packet.Flag.HasFlag(VehicleDataFlags.AreBrakeLightsOn);
|
v.BrakeLightsOn = packet.Flag.HasFlag(VehicleDataFlags.AreBrakeLightsOn);
|
||||||
|
@ -105,6 +105,7 @@ namespace RageCoop.Client
|
|||||||
Colors=new byte[] { primaryColor, secondaryColor },
|
Colors=new byte[] { primaryColor, secondaryColor },
|
||||||
DamageModel=veh.GetVehicleDamageModel(),
|
DamageModel=veh.GetVehicleDamageModel(),
|
||||||
LandingGear = veh.IsAircraft ? (byte)veh.LandingGearState : (byte)0,
|
LandingGear = veh.IsAircraft ? (byte)veh.LandingGearState : (byte)0,
|
||||||
|
RoofState=(byte)veh.RoofState,
|
||||||
Mods = veh.Mods.GetVehicleMods(),
|
Mods = veh.Mods.GetVehicleMods(),
|
||||||
ModelHash=veh.Model.Hash,
|
ModelHash=veh.Model.Hash,
|
||||||
EngineHealth=veh.EngineHealth,
|
EngineHealth=veh.EngineHealth,
|
||||||
|
@ -598,7 +598,6 @@ namespace RageCoop.Client
|
|||||||
Function.Call(Hash.GIVE_WEAPON_OBJECT_TO_PED, _lastWeaponObj, MainPed.Handle);
|
Function.Call(Hash.GIVE_WEAPON_OBJECT_TO_PED, _lastWeaponObj, MainPed.Handle);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_lastWeaponComponents = WeaponComponents;
|
_lastWeaponComponents = WeaponComponents;
|
||||||
}
|
}
|
||||||
if (Function.Call<int>(Hash.GET_PED_WEAPON_TINT_INDEX,MainPed,CurrentWeaponHash)!=WeaponTint)
|
if (Function.Call<int>(Hash.GET_PED_WEAPON_TINT_INDEX,MainPed,CurrentWeaponHash)!=WeaponTint)
|
||||||
|
@ -83,7 +83,7 @@ namespace RageCoop.Client
|
|||||||
internal bool BrakeLightsOn { get; set; } = false;
|
internal bool BrakeLightsOn { get; set; } = false;
|
||||||
internal bool HighBeamsOn { get; set; }
|
internal bool HighBeamsOn { get; set; }
|
||||||
internal byte LandingGear { get; set; }
|
internal byte LandingGear { get; set; }
|
||||||
internal bool RoofOpened { get; set; }
|
internal VehicleRoofState RoofState { get; set; }
|
||||||
internal bool SireneActive { get; set; }
|
internal bool SireneActive { get; set; }
|
||||||
internal VehicleDamageModel DamageModel { get; set; }
|
internal VehicleDamageModel DamageModel { get; set; }
|
||||||
internal int ModelHash { get; set; }
|
internal int ModelHash { get; set; }
|
||||||
@ -308,13 +308,9 @@ namespace RageCoop.Client
|
|||||||
MainVehicle.SoundHorn(1);
|
MainVehicle.SoundHorn(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (MainVehicle.HasRoof)
|
if (MainVehicle.HasRoof && MainVehicle.RoofState!=RoofState)
|
||||||
{
|
{
|
||||||
bool roofOpened = MainVehicle.RoofState == VehicleRoofState.Opened || MainVehicle.RoofState == VehicleRoofState.Opening;
|
MainVehicle.RoofState=RoofState;
|
||||||
if (roofOpened != RoofOpened)
|
|
||||||
{
|
|
||||||
MainVehicle.RoofState = RoofOpened ? VehicleRoofState.Opening : VehicleRoofState.Closing;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Function.Call(Hash.SET_VEHICLE_BRAKE_LIGHTS, MainVehicle.Handle, BrakeLightsOn);
|
Function.Call(Hash.SET_VEHICLE_BRAKE_LIGHTS, MainVehicle.Handle, BrakeLightsOn);
|
||||||
@ -373,14 +369,9 @@ namespace RageCoop.Client
|
|||||||
EntityPool.Add( this);
|
EntityPool.Add( this);
|
||||||
}
|
}
|
||||||
MainVehicle.Quaternion = Quaternion;
|
MainVehicle.Quaternion = Quaternion;
|
||||||
|
|
||||||
if (MainVehicle.HasRoof)
|
if (MainVehicle.HasRoof)
|
||||||
{
|
{
|
||||||
bool roofOpened = MainVehicle.RoofState == VehicleRoofState.Opened || MainVehicle.RoofState == VehicleRoofState.Opening;
|
MainVehicle.RoofState=RoofState;
|
||||||
if (roofOpened != RoofOpened)
|
|
||||||
{
|
|
||||||
MainVehicle.RoofState = RoofOpened ? VehicleRoofState.Opened : VehicleRoofState.Closed;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
vehicleModel.MarkAsNoLongerNeeded();
|
vehicleModel.MarkAsNoLongerNeeded();
|
||||||
}
|
}
|
||||||
|
@ -72,7 +72,10 @@ namespace RageCoop.Client
|
|||||||
{
|
{
|
||||||
flags|= VehicleDataFlags.IsDeluxoHovering;
|
flags|= VehicleDataFlags.IsDeluxoHovering;
|
||||||
}
|
}
|
||||||
|
if (veh.HasRoof)
|
||||||
|
{
|
||||||
|
flags|=VehicleDataFlags.HasRoof;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return flags;
|
return flags;
|
||||||
|
@ -103,6 +103,7 @@ namespace RageCoop.Core
|
|||||||
OnTurretSeat = 1 << 9,
|
OnTurretSeat = 1 << 9,
|
||||||
IsAircraft = 1 << 10,
|
IsAircraft = 1 << 10,
|
||||||
IsDeluxoHovering=1 << 11,
|
IsDeluxoHovering=1 << 11,
|
||||||
|
HasRoof=1 << 12,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -30,6 +30,7 @@ namespace RageCoop.Core
|
|||||||
public VehicleDamageModel DamageModel { get; set; }
|
public VehicleDamageModel DamageModel { get; set; }
|
||||||
|
|
||||||
public byte LandingGear { get; set; }
|
public byte LandingGear { get; set; }
|
||||||
|
public byte RoofState { get; set; }
|
||||||
|
|
||||||
public VehicleDataFlags Flag { get; set; }
|
public VehicleDataFlags Flag { get; set; }
|
||||||
|
|
||||||
@ -66,7 +67,11 @@ namespace RageCoop.Core
|
|||||||
if (Flag.HasFlag(VehicleDataFlags.IsAircraft))
|
if (Flag.HasFlag(VehicleDataFlags.IsAircraft))
|
||||||
{
|
{
|
||||||
// Write the vehicle landing gear
|
// Write the vehicle landing gear
|
||||||
byteArray.AddRange(BitConverter.GetBytes(LandingGear));
|
byteArray.Add(LandingGear);
|
||||||
|
}
|
||||||
|
if (Flag.HasFlag(VehicleDataFlags.HasRoof))
|
||||||
|
{
|
||||||
|
byteArray.Add(RoofState);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Write vehicle colors
|
// Write vehicle colors
|
||||||
@ -151,7 +156,11 @@ namespace RageCoop.Core
|
|||||||
if (Flag.HasFlag(VehicleDataFlags.IsAircraft))
|
if (Flag.HasFlag(VehicleDataFlags.IsAircraft))
|
||||||
{
|
{
|
||||||
// Read vehicle landing gear
|
// Read vehicle landing gear
|
||||||
LandingGear = (byte)reader.ReadShort();
|
LandingGear = reader.ReadByte();
|
||||||
|
}
|
||||||
|
if (Flag.HasFlag(VehicleDataFlags.HasRoof))
|
||||||
|
{
|
||||||
|
RoofState=reader.ReadByte();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Read vehicle colors
|
// Read vehicle colors
|
||||||
|
Reference in New Issue
Block a user