public static void askRepair(this InteractableVehicle Vehicle, ushort amount)
        {
            if (amount == 0 || Vehicle.isExploded)
            {
                return;
            }

            UnturnedVehicle vehicle = UnturnedServer.Vehicles.FirstOrDefault(v => v.InstanceID == Vehicle.instanceID);

            VehicleEvents.RunVehicleRepair(vehicle, amount);

            DetourManager.CallOriginal(typeof(InteractableVehicle).GetMethod("askRepair", BindingFlags.Public | BindingFlags.Instance),
                                       Vehicle, amount);
        }
        public static void askDamageTire(this InteractableVehicle Vehicle, int index)
        {
            if (index < 0)
            {
                return;
            }

            if (Vehicle.asset != null && !Vehicle.asset.canTiresBeDamaged)
            {
                return;
            }

            UnturnedVehicle UVehicle = UnturnedServer.Vehicles.FirstOrDefault(vehicle => vehicle.InstanceID == Vehicle.instanceID);

            VehicleEvents.RunVehicleTireDamage(UVehicle, index);

            DetourManager.CallOriginal(typeof(InteractableVehicle).GetMethod("askDamageTire", BindingFlags.Public | BindingFlags.Instance), Vehicle, index);
        }
示例#3
0
        public void tellExitVehicle(CSteamID steamID, uint instanceID, byte seat, Vector3 point, byte angle, bool forceUpdate)
        {
            if (!VehicleManager.instance.channel.checkServer(steamID))
            {
                return;
            }

            for (int i = 0; i < VehicleManager.vehicles.Count; i++)
            {
                if (VehicleManager.vehicles[i].instanceID != instanceID)
                {
                    continue;
                }

                UnturnedVehicle Vehicle = UnturnedServer.Vehicles.FirstOrDefault(vehicle => vehicle.InstanceID == instanceID);

                VehicleEvents.RunVehicleExit(Vehicle, seat, point, angle, forceUpdate);

                break;
            }

            DetourManager.CallOriginal(typeof(VehicleManager).GetMethod("tellExitVehicle", BindingFlags.Public | BindingFlags.Instance),
                                       VehicleManager.instance, steamID, instanceID, seat, point, angle, forceUpdate);
        }
 public void AddLapEvent(double elapsed, int lapNumber, double lapTime)
 {
     VehicleEvents.Add(new VehicleLapEvent(VehicleId, elapsed, lapNumber, lapTime));
 }
 public void AddPitEvent(double pitInElapsed, int pitInLap, double pitOutElapsed)
 {
     VehicleEvents.Add(new VehiclePitStopEvent(VehicleId, pitInElapsed, pitInLap, pitOutElapsed));
 }
 public VehicleLapEvent GetLapEventAt(int lapNumber)
 {
     return(VehicleEvents.OfType <VehicleLapEvent>().FirstOrDefault(e => e.LapNumber == lapNumber));
 }
 public VehiclePitStopEvent GetPitStopEventAt(double elapsed)
 {
     return(VehicleEvents.OfType <VehiclePitStopEvent>().FirstOrDefault(e => e.Elapsed == elapsed));
 }