Some changes and bug fixes
This commit is contained in:
@ -150,23 +150,20 @@ namespace CoopClient.Entities.Player
|
|||||||
|
|
||||||
if (!characterExist)
|
if (!characterExist)
|
||||||
{
|
{
|
||||||
if (!CreateCharacter())
|
CreateCharacter();
|
||||||
{
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else if (LastSyncWasFull)
|
else if (LastSyncWasFull)
|
||||||
{
|
{
|
||||||
if (ModelHash != _lastModelHash)
|
if (ModelHash != _lastModelHash)
|
||||||
{
|
{
|
||||||
Character.Kill();
|
Character.Kill();
|
||||||
|
Character.MarkAsNoLongerNeeded();
|
||||||
Character.Delete();
|
Character.Delete();
|
||||||
|
|
||||||
if (!CreateCharacter())
|
CreateCharacter();
|
||||||
{
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else if (!Clothes.Compare(_lastClothes))
|
else if (!Clothes.Compare(_lastClothes))
|
||||||
{
|
{
|
||||||
SetClothes();
|
SetClothes();
|
||||||
@ -210,27 +207,20 @@ namespace CoopClient.Entities.Player
|
|||||||
|
|
||||||
private void RenderNameTag()
|
private void RenderNameTag()
|
||||||
{
|
{
|
||||||
if (Character.IsVisible && Character.IsInRange(Game.Player.Character.Position, 20f))
|
if (!Character.IsVisible || !Character.IsInRange(Game.Player.Character.Position, 20f))
|
||||||
{
|
{
|
||||||
float sizeOffset;
|
return;
|
||||||
if (GameplayCamera.IsFirstPersonAimCamActive)
|
|
||||||
{
|
|
||||||
Vector3 targetPos = Character.Bones[Bone.IKHead].Position + new Vector3(0, 0, 0.10f) + (Character.Velocity / Game.FPS);
|
|
||||||
|
|
||||||
Function.Call(Hash.SET_DRAW_ORIGIN, targetPos.X, targetPos.Y, targetPos.Z, 0);
|
|
||||||
|
|
||||||
sizeOffset = Math.Max(1f - ((GameplayCamera.Position - Character.Position).Length() / 30f), 0.30f);
|
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
string renderText = (Util.GetTickCount64() - LastUpdateReceived) > 5000 ? "~r~AFK" : Username;
|
||||||
Vector3 targetPos = Character.Bones[Bone.IKHead].Position + new Vector3(0, 0, 0.35f) + (Character.Velocity / Game.FPS);
|
Vector3 targetPos = Character.Bones[Bone.IKHead].Position + new Vector3(0, 0, 0.35f) + (Character.Velocity / Game.FPS);
|
||||||
|
|
||||||
Function.Call(Hash.SET_DRAW_ORIGIN, targetPos.X, targetPos.Y, targetPos.Z, 0);
|
Function.Call(Hash.SET_DRAW_ORIGIN, targetPos.X, targetPos.Y, targetPos.Z, 0);
|
||||||
|
|
||||||
sizeOffset = Math.Max(1f - ((GameplayCamera.Position - Character.Position).Length() / 25f), 0.25f);
|
float dist = (GameplayCamera.Position - Character.Position).Length();
|
||||||
}
|
var sizeOffset = Math.Max(1f - (dist / 30f), 0.3f);
|
||||||
|
|
||||||
new ScaledText(new PointF(0, 0), Username, 0.4f * sizeOffset, GTA.UI.Font.ChaletLondon)
|
new ScaledText(new PointF(0, 0), renderText, 0.4f * sizeOffset, GTA.UI.Font.ChaletLondon)
|
||||||
{
|
{
|
||||||
Outline = true,
|
Outline = true,
|
||||||
Alignment = GTA.UI.Alignment.Center
|
Alignment = GTA.UI.Alignment.Center
|
||||||
@ -238,10 +228,21 @@ namespace CoopClient.Entities.Player
|
|||||||
|
|
||||||
Function.Call(Hash.CLEAR_DRAW_ORIGIN);
|
Function.Call(Hash.CLEAR_DRAW_ORIGIN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void CreateCharacter()
|
||||||
|
{
|
||||||
|
if (Character != null)
|
||||||
|
{
|
||||||
|
if (Character.Exists())
|
||||||
|
{
|
||||||
|
Character.Kill();
|
||||||
|
Character.MarkAsNoLongerNeeded();
|
||||||
|
Character.Delete();
|
||||||
|
}
|
||||||
|
|
||||||
|
Character = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool CreateCharacter()
|
|
||||||
{
|
|
||||||
if (PedBlip != null && PedBlip.Exists())
|
if (PedBlip != null && PedBlip.Exists())
|
||||||
{
|
{
|
||||||
PedBlip.Delete();
|
PedBlip.Delete();
|
||||||
@ -249,22 +250,20 @@ namespace CoopClient.Entities.Player
|
|||||||
}
|
}
|
||||||
|
|
||||||
Model characterModel = ModelHash.ModelRequest();
|
Model characterModel = ModelHash.ModelRequest();
|
||||||
|
|
||||||
if (characterModel == null)
|
if (characterModel == null)
|
||||||
{
|
{
|
||||||
//GTA.UI.Notification.Show($"~r~(Character)Model ({CurrentModelHash}) cannot be loaded!");
|
return;
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Character = World.CreatePed(characterModel, Position, Rotation.Z);
|
Character = World.CreatePed(characterModel, Position);
|
||||||
characterModel.MarkAsNoLongerNeeded();
|
characterModel.MarkAsNoLongerNeeded();
|
||||||
|
if (Character == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
Character.RelationshipGroup = Main.RelationshipGroup;
|
Character.RelationshipGroup = Main.RelationshipGroup;
|
||||||
Character.Health = Health;
|
Character.Health = Health;
|
||||||
if (IsInVehicle)
|
|
||||||
{
|
|
||||||
Character.IsVisible = false;
|
|
||||||
}
|
|
||||||
Character.BlockPermanentEvents = true;
|
Character.BlockPermanentEvents = true;
|
||||||
Character.CanRagdoll = false;
|
Character.CanRagdoll = false;
|
||||||
Character.IsInvincible = true;
|
Character.IsInvincible = true;
|
||||||
@ -286,8 +285,6 @@ namespace CoopClient.Entities.Player
|
|||||||
Character.AttachedBlip.Color = BlipColor.White;
|
Character.AttachedBlip.Color = BlipColor.White;
|
||||||
Character.AttachedBlip.Scale = 0.8f;
|
Character.AttachedBlip.Scale = 0.8f;
|
||||||
Character.AttachedBlip.Name = Username;
|
Character.AttachedBlip.Name = Username;
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SetClothes()
|
private void SetClothes()
|
||||||
|
@ -41,9 +41,6 @@ namespace CoopClient.Entities.Player
|
|||||||
{
|
{
|
||||||
if (Character.IsInVehicle())
|
if (Character.IsInVehicle())
|
||||||
{
|
{
|
||||||
Character.Task.ClearAll();
|
|
||||||
Character.Task.ClearSecondary();
|
|
||||||
|
|
||||||
if (MainVehicle == null)
|
if (MainVehicle == null)
|
||||||
{
|
{
|
||||||
Character.Task.LeaveVehicle();
|
Character.Task.LeaveVehicle();
|
||||||
|
@ -69,30 +69,19 @@ namespace CoopClient.Entities.Player
|
|||||||
Model vehicleModel = VehicleModelHash.ModelRequest();
|
Model vehicleModel = VehicleModelHash.ModelRequest();
|
||||||
if (vehicleModel == null)
|
if (vehicleModel == null)
|
||||||
{
|
{
|
||||||
//GTA.UI.Notification.Show($"~r~(Vehicle)Model ({CurrentVehicleModelHash}) cannot be loaded!");
|
|
||||||
Character.IsVisible = false;
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool vehFound = false;
|
|
||||||
|
|
||||||
Vehicle targetVehicle = World.GetClosestVehicle(Position, 7f, vehicleModel);
|
Vehicle targetVehicle = World.GetClosestVehicle(Position, 7f, vehicleModel);
|
||||||
if (targetVehicle != null)
|
if (targetVehicle != null && targetVehicle.IsSeatFree((VehicleSeat)VehicleSeatIndex))
|
||||||
{
|
|
||||||
if (targetVehicle.IsSeatFree((VehicleSeat)VehicleSeatIndex))
|
|
||||||
{
|
{
|
||||||
MainVehicle = targetVehicle;
|
MainVehicle = targetVehicle;
|
||||||
vehFound = true;
|
|
||||||
}
|
}
|
||||||
}
|
else
|
||||||
|
|
||||||
if (!vehFound)
|
|
||||||
{
|
{
|
||||||
MainVehicle = World.CreateVehicle(vehicleModel, Position);
|
MainVehicle = World.CreateVehicle(vehicleModel, Position);
|
||||||
MainVehicle.IsVisible = false;
|
|
||||||
MainVehicle.Quaternion = _vehicleRotation;
|
|
||||||
|
|
||||||
MainVehicle.IsInvincible = true;
|
MainVehicle.IsInvincible = true;
|
||||||
|
MainVehicle.Quaternion = _vehicleRotation;
|
||||||
|
|
||||||
if (MainVehicle.HasRoof)
|
if (MainVehicle.HasRoof)
|
||||||
{
|
{
|
||||||
@ -105,7 +94,6 @@ namespace CoopClient.Entities.Player
|
|||||||
}
|
}
|
||||||
|
|
||||||
vehicleModel.MarkAsNoLongerNeeded();
|
vehicleModel.MarkAsNoLongerNeeded();
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_lastVehicleEnter != 0)
|
if (_lastVehicleEnter != 0)
|
||||||
@ -122,8 +110,6 @@ namespace CoopClient.Entities.Player
|
|||||||
}
|
}
|
||||||
else if (!Character.IsInVehicle() || Character.CurrentVehicle.Handle != MainVehicle.Handle)
|
else if (!Character.IsInVehicle() || Character.CurrentVehicle.Handle != MainVehicle.Handle)
|
||||||
{
|
{
|
||||||
MainVehicle.IsVisible = true;
|
|
||||||
|
|
||||||
if (Game.Player.Character.CurrentVehicle?.Handle == MainVehicle.Handle &&
|
if (Game.Player.Character.CurrentVehicle?.Handle == MainVehicle.Handle &&
|
||||||
VehicleSeatIndex == (int)Game.Player.Character.SeatIndex)
|
VehicleSeatIndex == (int)Game.Player.Character.SeatIndex)
|
||||||
{
|
{
|
||||||
@ -134,17 +120,16 @@ namespace CoopClient.Entities.Player
|
|||||||
if (VehicleSpeed > 0.2f || !Character.IsInRange(MainVehicle.Position, 4f))
|
if (VehicleSpeed > 0.2f || !Character.IsInRange(MainVehicle.Position, 4f))
|
||||||
{
|
{
|
||||||
Character.SetIntoVehicle(MainVehicle, (VehicleSeat)VehicleSeatIndex);
|
Character.SetIntoVehicle(MainVehicle, (VehicleSeat)VehicleSeatIndex);
|
||||||
Character.IsVisible = true;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_lastVehicleEnter = Util.GetTickCount64();
|
_lastVehicleEnter = Util.GetTickCount64();
|
||||||
|
|
||||||
Character.Task.ClearAllImmediately();
|
Character.Task.ClearAllImmediately();
|
||||||
Character.IsVisible = true;
|
|
||||||
Character.Task.EnterVehicle(MainVehicle, (VehicleSeat)VehicleSeatIndex, -1, 2f, EnterVehicleFlags.WarpToDoor);
|
Character.Task.EnterVehicle(MainVehicle, (VehicleSeat)VehicleSeatIndex, -1, 2f, EnterVehicleFlags.WarpToDoor);
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((int)Character.SeatIndex != VehicleSeatIndex)
|
if ((int)Character.SeatIndex != VehicleSeatIndex)
|
||||||
@ -176,6 +161,11 @@ namespace CoopClient.Entities.Player
|
|||||||
|
|
||||||
private void UpdateVehicleInfo()
|
private void UpdateVehicleInfo()
|
||||||
{
|
{
|
||||||
|
if (LastSyncWasFull)
|
||||||
|
{
|
||||||
|
MainVehicle.SetVehicleDamageModel(VehDamageModel);
|
||||||
|
}
|
||||||
|
|
||||||
if (VehicleColors != null && VehicleColors != _lastVehicleColors)
|
if (VehicleColors != null && VehicleColors != _lastVehicleColors)
|
||||||
{
|
{
|
||||||
Function.Call(Hash.SET_VEHICLE_COLOURS, MainVehicle, VehicleColors[0], VehicleColors[1]);
|
Function.Call(Hash.SET_VEHICLE_COLOURS, MainVehicle, VehicleColors[0], VehicleColors[1]);
|
||||||
@ -231,18 +221,16 @@ namespace CoopClient.Entities.Player
|
|||||||
MainVehicle.IsEngineRunning = VehIsEngineRunning;
|
MainVehicle.IsEngineRunning = VehIsEngineRunning;
|
||||||
}
|
}
|
||||||
|
|
||||||
MainVehicle.CurrentRPM = VehRPM;
|
|
||||||
|
|
||||||
if (VehAreLightsOn != MainVehicle.AreLightsOn)
|
if (MainVehicle.IsPlane)
|
||||||
{
|
{
|
||||||
MainVehicle.AreLightsOn = VehAreLightsOn;
|
if (VehLandingGear != (byte)MainVehicle.LandingGearState)
|
||||||
}
|
|
||||||
|
|
||||||
if (VehAreHighBeamsOn != MainVehicle.AreHighBeamsOn)
|
|
||||||
{
|
{
|
||||||
MainVehicle.AreHighBeamsOn = VehAreHighBeamsOn;
|
MainVehicle.LandingGearState = (VehicleLandingGearState)VehLandingGear;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
if (MainVehicle.IsSubmarineCar)
|
if (MainVehicle.IsSubmarineCar)
|
||||||
{
|
{
|
||||||
if (Transformed)
|
if (Transformed)
|
||||||
@ -260,20 +248,23 @@ namespace CoopClient.Entities.Player
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (MainVehicle.IsPlane)
|
if (VehAreLightsOn != MainVehicle.AreLightsOn)
|
||||||
{
|
{
|
||||||
if (VehLandingGear != (byte)MainVehicle.LandingGearState)
|
MainVehicle.AreLightsOn = VehAreLightsOn;
|
||||||
{
|
|
||||||
MainVehicle.LandingGearState = (VehicleLandingGearState)VehLandingGear;
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else
|
if (VehAreHighBeamsOn != MainVehicle.AreHighBeamsOn)
|
||||||
{
|
{
|
||||||
|
MainVehicle.AreHighBeamsOn = VehAreHighBeamsOn;
|
||||||
|
}
|
||||||
|
|
||||||
if (MainVehicle.HasSiren && VehIsSireneActive != MainVehicle.IsSirenActive)
|
if (MainVehicle.HasSiren && VehIsSireneActive != MainVehicle.IsSirenActive)
|
||||||
{
|
{
|
||||||
MainVehicle.IsSirenActive = VehIsSireneActive;
|
MainVehicle.IsSirenActive = VehIsSireneActive;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MainVehicle.AreBrakeLightsOn = VehAreBrakeLightsOn;
|
||||||
|
|
||||||
if (IsHornActive)
|
if (IsHornActive)
|
||||||
{
|
{
|
||||||
if (!_lastHornActive)
|
if (!_lastHornActive)
|
||||||
@ -296,19 +287,14 @@ namespace CoopClient.Entities.Player
|
|||||||
MainVehicle.RoofState = VehRoofOpened ? VehicleRoofState.Opening : VehicleRoofState.Closing;
|
MainVehicle.RoofState = VehRoofOpened ? VehicleRoofState.Opening : VehicleRoofState.Closing;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Function.Call(Hash.SET_VEHICLE_BRAKE_LIGHTS, MainVehicle.Handle, VehAreBrakeLightsOn);
|
|
||||||
|
|
||||||
if (LastSyncWasFull)
|
|
||||||
{
|
|
||||||
MainVehicle.SetVehicleDamageModel(VehDamageModel);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void UpdateVehiclePosition()
|
private void UpdateVehiclePosition()
|
||||||
{
|
{
|
||||||
|
MainVehicle.CurrentRPM = VehRPM;
|
||||||
|
|
||||||
float avrLat = Math.Min(1.5f, (Util.GetTickCount64() - LastUpdateReceived) / AverageLatency);
|
float avrLat = Math.Min(1.5f, (Util.GetTickCount64() - LastUpdateReceived) / AverageLatency);
|
||||||
|
|
||||||
if (_lastVehicleSteeringAngle != VehicleSteeringAngle)
|
if (_lastVehicleSteeringAngle != VehicleSteeringAngle)
|
||||||
|
@ -374,7 +374,7 @@ namespace CoopClient
|
|||||||
DebugSyncPed = Players[0];
|
DebugSyncPed = Players[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((Util.GetTickCount64() - _artificialLagCounter) < 279)
|
if ((Util.GetTickCount64() - _artificialLagCounter) < 243)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -314,7 +314,6 @@ namespace CoopClient
|
|||||||
byteArray.Add(VehDamageModel.BrokenDoors);
|
byteArray.Add(VehDamageModel.BrokenDoors);
|
||||||
byteArray.Add(VehDamageModel.BrokenWindows);
|
byteArray.Add(VehDamageModel.BrokenWindows);
|
||||||
byteArray.AddRange(BitConverter.GetBytes(VehDamageModel.BurstedTires));
|
byteArray.AddRange(BitConverter.GetBytes(VehDamageModel.BurstedTires));
|
||||||
byteArray.AddRange(BitConverter.GetBytes(VehDamageModel.PuncturedTires));
|
|
||||||
byteArray.Add(VehDamageModel.LeftHeadLightBroken);
|
byteArray.Add(VehDamageModel.LeftHeadLightBroken);
|
||||||
byteArray.Add(VehDamageModel.RightHeadLightBroken);
|
byteArray.Add(VehDamageModel.RightHeadLightBroken);
|
||||||
}
|
}
|
||||||
@ -441,7 +440,6 @@ namespace CoopClient
|
|||||||
BrokenDoors = reader.ReadByte(),
|
BrokenDoors = reader.ReadByte(),
|
||||||
BrokenWindows = reader.ReadByte(),
|
BrokenWindows = reader.ReadByte(),
|
||||||
BurstedTires = reader.ReadShort(),
|
BurstedTires = reader.ReadShort(),
|
||||||
PuncturedTires = reader.ReadShort(),
|
|
||||||
LeftHeadLightBroken = reader.ReadByte(),
|
LeftHeadLightBroken = reader.ReadByte(),
|
||||||
RightHeadLightBroken = reader.ReadByte()
|
RightHeadLightBroken = reader.ReadByte()
|
||||||
};
|
};
|
||||||
|
@ -169,7 +169,6 @@ namespace CoopClient
|
|||||||
public byte BrokenWindows { get; set; }
|
public byte BrokenWindows { get; set; }
|
||||||
public byte BrokenDoors { get; set; }
|
public byte BrokenDoors { get; set; }
|
||||||
public short BurstedTires { get; set; }
|
public short BurstedTires { get; set; }
|
||||||
public short PuncturedTires { get; set; }
|
|
||||||
public byte LeftHeadLightBroken { get; set; }
|
public byte LeftHeadLightBroken { get; set; }
|
||||||
public byte RightHeadLightBroken { get; set; }
|
public byte RightHeadLightBroken { get; set; }
|
||||||
}
|
}
|
||||||
|
@ -525,7 +525,6 @@ namespace CoopClient
|
|||||||
byteArray.Add(VehDamageModel.BrokenDoors);
|
byteArray.Add(VehDamageModel.BrokenDoors);
|
||||||
byteArray.Add(VehDamageModel.BrokenWindows);
|
byteArray.Add(VehDamageModel.BrokenWindows);
|
||||||
byteArray.AddRange(BitConverter.GetBytes(VehDamageModel.BurstedTires));
|
byteArray.AddRange(BitConverter.GetBytes(VehDamageModel.BurstedTires));
|
||||||
byteArray.AddRange(BitConverter.GetBytes(VehDamageModel.PuncturedTires));
|
|
||||||
byteArray.Add(VehDamageModel.LeftHeadLightBroken);
|
byteArray.Add(VehDamageModel.LeftHeadLightBroken);
|
||||||
byteArray.Add(VehDamageModel.RightHeadLightBroken);
|
byteArray.Add(VehDamageModel.RightHeadLightBroken);
|
||||||
}
|
}
|
||||||
@ -673,7 +672,6 @@ namespace CoopClient
|
|||||||
BrokenDoors = reader.ReadByte(),
|
BrokenDoors = reader.ReadByte(),
|
||||||
BrokenWindows = reader.ReadByte(),
|
BrokenWindows = reader.ReadByte(),
|
||||||
BurstedTires = reader.ReadShort(),
|
BurstedTires = reader.ReadShort(),
|
||||||
PuncturedTires = reader.ReadShort(),
|
|
||||||
LeftHeadLightBroken = reader.ReadByte(),
|
LeftHeadLightBroken = reader.ReadByte(),
|
||||||
RightHeadLightBroken = reader.ReadByte()
|
RightHeadLightBroken = reader.ReadByte()
|
||||||
};
|
};
|
||||||
|
@ -379,20 +379,13 @@ namespace CoopClient
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Bursted and Punctured tires
|
// Bursted tires
|
||||||
short puncturedTires = 0;
|
|
||||||
short burstedTires = 0;
|
short burstedTires = 0;
|
||||||
foreach (VehicleWheel wheel in veh.Wheels.GetAllWheels())
|
foreach (VehicleWheel wheel in veh.Wheels.GetAllWheels())
|
||||||
{
|
{
|
||||||
if (wheel.IsBursted)
|
if (wheel.IsBursted)
|
||||||
{
|
{
|
||||||
burstedTires |= (short)(1 << (int)wheel.BoneId);
|
burstedTires |= (short)(1 << (int)wheel.BoneId);
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (wheel.IsPunctured)
|
|
||||||
{
|
|
||||||
puncturedTires |= (short)(1 << (int)wheel.BoneId);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -401,7 +394,6 @@ namespace CoopClient
|
|||||||
BrokenDoors = brokenDoors,
|
BrokenDoors = brokenDoors,
|
||||||
BrokenWindows = brokenWindows,
|
BrokenWindows = brokenWindows,
|
||||||
BurstedTires = burstedTires,
|
BurstedTires = burstedTires,
|
||||||
PuncturedTires = puncturedTires,
|
|
||||||
LeftHeadLightBroken = (byte)(veh.IsLeftHeadLightBroken ? 1 : 0),
|
LeftHeadLightBroken = (byte)(veh.IsLeftHeadLightBroken ? 1 : 0),
|
||||||
RightHeadLightBroken = (byte)(veh.IsRightHeadLightBroken ? 1 : 0)
|
RightHeadLightBroken = (byte)(veh.IsRightHeadLightBroken ? 1 : 0)
|
||||||
};
|
};
|
||||||
@ -441,25 +433,11 @@ namespace CoopClient
|
|||||||
wheel.Puncture();
|
wheel.Puncture();
|
||||||
wheel.Burst();
|
wheel.Burst();
|
||||||
}
|
}
|
||||||
|
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
else if (wheel.IsBursted)
|
else if (wheel.IsBursted)
|
||||||
{
|
{
|
||||||
wheel.Fix();
|
wheel.Fix();
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((model.PuncturedTires & (short)(1 << (int)wheel.BoneId)) != 0)
|
|
||||||
{
|
|
||||||
if (!wheel.IsPunctured)
|
|
||||||
{
|
|
||||||
wheel.Puncture();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (wheel.IsPunctured)
|
|
||||||
{
|
|
||||||
wheel.Fix();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
veh.IsLeftHeadLightBroken = model.LeftHeadLightBroken > 0;
|
veh.IsLeftHeadLightBroken = model.LeftHeadLightBroken > 0;
|
||||||
|
@ -314,7 +314,6 @@ namespace CoopServer
|
|||||||
byteArray.Add(VehDamageModel.BrokenDoors);
|
byteArray.Add(VehDamageModel.BrokenDoors);
|
||||||
byteArray.Add(VehDamageModel.BrokenWindows);
|
byteArray.Add(VehDamageModel.BrokenWindows);
|
||||||
byteArray.AddRange(BitConverter.GetBytes(VehDamageModel.BurstedTires));
|
byteArray.AddRange(BitConverter.GetBytes(VehDamageModel.BurstedTires));
|
||||||
byteArray.AddRange(BitConverter.GetBytes(VehDamageModel.PuncturedTires));
|
|
||||||
byteArray.Add(VehDamageModel.LeftHeadLightBroken);
|
byteArray.Add(VehDamageModel.LeftHeadLightBroken);
|
||||||
byteArray.Add(VehDamageModel.RightHeadLightBroken);
|
byteArray.Add(VehDamageModel.RightHeadLightBroken);
|
||||||
}
|
}
|
||||||
@ -441,7 +440,6 @@ namespace CoopServer
|
|||||||
BrokenDoors = reader.ReadByte(),
|
BrokenDoors = reader.ReadByte(),
|
||||||
BrokenWindows = reader.ReadByte(),
|
BrokenWindows = reader.ReadByte(),
|
||||||
BurstedTires = reader.ReadShort(),
|
BurstedTires = reader.ReadShort(),
|
||||||
PuncturedTires = reader.ReadShort(),
|
|
||||||
LeftHeadLightBroken = reader.ReadByte(),
|
LeftHeadLightBroken = reader.ReadByte(),
|
||||||
RightHeadLightBroken = reader.ReadByte()
|
RightHeadLightBroken = reader.ReadByte()
|
||||||
};
|
};
|
||||||
|
@ -157,7 +157,6 @@ namespace CoopServer
|
|||||||
public byte BrokenWindows { get; set; }
|
public byte BrokenWindows { get; set; }
|
||||||
public byte BrokenDoors { get; set; }
|
public byte BrokenDoors { get; set; }
|
||||||
public short BurstedTires { get; set; }
|
public short BurstedTires { get; set; }
|
||||||
public short PuncturedTires { get; set; }
|
|
||||||
public byte LeftHeadLightBroken { get; set; }
|
public byte LeftHeadLightBroken { get; set; }
|
||||||
public byte RightHeadLightBroken { get; set; }
|
public byte RightHeadLightBroken { get; set; }
|
||||||
}
|
}
|
||||||
|
@ -525,7 +525,6 @@ namespace CoopServer
|
|||||||
byteArray.Add(VehDamageModel.BrokenDoors);
|
byteArray.Add(VehDamageModel.BrokenDoors);
|
||||||
byteArray.Add(VehDamageModel.BrokenWindows);
|
byteArray.Add(VehDamageModel.BrokenWindows);
|
||||||
byteArray.AddRange(BitConverter.GetBytes(VehDamageModel.BurstedTires));
|
byteArray.AddRange(BitConverter.GetBytes(VehDamageModel.BurstedTires));
|
||||||
byteArray.AddRange(BitConverter.GetBytes(VehDamageModel.PuncturedTires));
|
|
||||||
byteArray.Add(VehDamageModel.LeftHeadLightBroken);
|
byteArray.Add(VehDamageModel.LeftHeadLightBroken);
|
||||||
byteArray.Add(VehDamageModel.RightHeadLightBroken);
|
byteArray.Add(VehDamageModel.RightHeadLightBroken);
|
||||||
}
|
}
|
||||||
@ -673,7 +672,6 @@ namespace CoopServer
|
|||||||
BrokenDoors = reader.ReadByte(),
|
BrokenDoors = reader.ReadByte(),
|
||||||
BrokenWindows = reader.ReadByte(),
|
BrokenWindows = reader.ReadByte(),
|
||||||
BurstedTires = reader.ReadShort(),
|
BurstedTires = reader.ReadShort(),
|
||||||
PuncturedTires = reader.ReadShort(),
|
|
||||||
LeftHeadLightBroken = reader.ReadByte(),
|
LeftHeadLightBroken = reader.ReadByte(),
|
||||||
RightHeadLightBroken = reader.ReadByte()
|
RightHeadLightBroken = reader.ReadByte()
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user