Пример #1
0
 public static Vehicle GetNearbyVehicle()
 {
     Vehicle[] nearbyVehicles = PedsManager.LocalPlayer().GetNearbyVehicles(1); //Get one nearby vehicle
     if (nearbyVehicles.Length == 0)
     {
         return(null);
     }
     return(nearbyVehicles[0]);
 }
        public AbstractAmbientVehicleEvent GetRandomOffenceEvent()
        {
            if (false == this.Timer.CanCreateEvent())
            {
                Logger.LogTrivial("Can't create event: TIMER");
                return(null);
            }

            if (false == this.CanCreateAnEvent())
            {
                Logger.LogTrivial("Can't create event: To many | Callout running | In pursuit | Is performing pullover");
                return(null);
            }

            if (Tools.HavingChance(10, 100))
            {
                Logger.LogTrivial("Can't create event: Bad Chance");
                GameFiber.Sleep(3000);
                return(null);
            }

            this.HandleCleanUsedVehicles();
            AbstractAmbientVehicleEvent offenceEvent = null;
            int loopSecurity = 3;
            int loopCounter  = 0;

            while (null == offenceEvent && loopCounter < loopSecurity)
            {
                Vehicle[] vehicles = VehicleManager.Instance.GetNearbyVehicles(10);
                foreach (Vehicle vehicle in vehicles)
                {
                    if (vehicle.Exists())
                    {
                        if (vehicle.HasDriver &&
                            vehicle.Driver.Exists() &&
                            false == vehicle.IsPoliceVehicle &&
                            false == vehicle.HasSiren &&
                            vehicle.Driver != PedsManager.LocalPlayer() &&
                            false == vehicle.IsBoat &&
                            false == vehicle.IsBike &&
                            false == vehicle.IsBicycle &&
                            false == this.PlateAlreadyUsed.Contains(vehicle.LicensePlate))
                        {
                            this.PlateAlreadyUsed.Add(vehicle.LicensePlate);
                            offenceEvent = this.GenerateRandomOffenceInstance(vehicle);
                            this.Timer.HandleTimer();
                            break; //Bad but have no choice in Foreach ;)
                        }
                    }
                }
                loopSecurity++;
                GameFiber.Sleep(4000);
            }
            this.CurrentsEvents.Add(offenceEvent);
            return(offenceEvent);
        }
 public static float Distance(Vector3 position)
 {
     return(Vector3.Distance(PedsManager.LocalPlayer().Position, position));
 }