Exemple #1
0
 internal void RunTick()
 {
     try
     {
         // If in ELS vehicle
         if (ELS.Ped.IsSittingInELSVehicle() && ELS.Ped.IsSittingInDriverOrPassengerSeat(ELS.CurrentVehicle))
         {
             API.SetVehicleDeformationFixed(ELS.CurrentVehicle.Handle);
             var netId = ELS.CurrentVehicle.NetworkId;
             if (API.NetworkDoesNetworkIdExist(netId))
             {
                 if (vehicleList.TryGetValue(netId, out var currentVehicle))
                 {
                     currentVehicle.RunControlTick();
                 }
                 else
                 {
                     if (!vehicleList.RecentlyRegistered(netId))
                     {
                         if (ELS.CurrentVehicle.IsNetworked() && vehicleList.TryGetElsVehicle(netId, vehicle: out ELSVehicle _currentVehicle))
                         {
                             _currentVehicle?.RunControlTick();
                         }
                     }
                 }
             }
         }
         //if (ELS.CurrentVehicle != null)
         //{
         //    var isPaused = Game.IsPaused;
         //    if (isPaused)
         //    {
         //        if (!Indicator.IsHazardLightActive)
         //        {
         //            WasPaused = true;
         //            Indicator.SetHazards(true);
         //        }
         //    }
         //    else if (WasPaused && Indicator.IsHazardLightActive)
         //    {
         //        WasPaused = false;
         //        Indicator.SetHazards(false);
         //    }
         //}
         vehicleList.RunTick();
     }
     catch (Exception e)
     {
         Debug.WriteLine($"VehicleManager Error: {e.Message} \n Stacktrace: {e.StackTrace}");
     }
 }
Exemple #2
0
        internal async void RunTickAsync()
        {
            try
            {
                if (Game.PlayerPed.IsSittingInELSVehicle() &&
                    (Game.PlayerPed.CurrentVehicle.GetPedOnSeat(VehicleSeat.Driver) == Game.PlayerPed ||
                     Game.PlayerPed.CurrentVehicle.GetPedOnSeat(VehicleSeat.Passenger) == Game.PlayerPed))
                {
                    if (vehicleList.ContainsKey(Game.PlayerPed.CurrentVehicle.GetNetworkId()))
                    {
                        //Utils.DebugWriteLine("Vehicle is in the list running ticks");
                        ELSVehicle _currentVehicle = vehicleList[Game.PlayerPed.CurrentVehicle.GetNetworkId()];
                        _currentVehicle?.RunControlTick();
                        //vehicleList.RunExternalTick(_currentVehicle);
                        Game.PlayerPed.CurrentVehicle.SetExistOnAllMachines(true);
                    }
                    else
                    {
                        if (!vehicleList.VehRegAttempts.ContainsKey(Game.PlayerPed.CurrentVehicle.GetNetworkId()) || Game.GameTime - vehicleList.VehRegAttempts[Game.PlayerPed.CurrentVehicle.GetNetworkId()].Item2 >= 15000 && vehicleList.VehRegAttempts[Game.PlayerPed.CurrentVehicle.GetNetworkId()].Item1 < 5)
                        {
                            if (vehicleList.MakeSureItExists(API.VehToNet(Game.PlayerPed.CurrentVehicle.Handle), vehicle: out ELSVehicle _currentVehicle))
                            {
                                _currentVehicle?.RunControlTick();
                                // vehicleList.RunExternalTick(_currentVehicle);
                                Game.PlayerPed.CurrentVehicle.SetExistOnAllMachines(true);
                            }
                        }
                    }
                    vehicleList.RunTick();
                    Indicator.RunAsync(Game.PlayerPed.CurrentVehicle);
#if DEBUG
                    //if (Game.IsControlJustPressed(0, Control.Cover))
                    //{
                    //    FullSync.FullSyncManager.SendDataBroadcast(
                    //        _currentVehicle.GetData(),
                    //        Game.Player.ServerId
                    //    );
                    //    CitizenFX.Core.UI.Screen.ShowNotification("FullSync™ ran");
                    //    CitizenFX.Core.Debug.WriteLine("FullSync™ ran");
                    //}
                    //Debug.DebugText();
#endif
                }
                else if (Game.PlayerPed.IsInVehicle() && (Game.PlayerPed.CurrentVehicle.GetPedOnSeat(VehicleSeat.Driver) == Game.PlayerPed) &&
                         (VehicleClass.Boats != Game.PlayerPed.CurrentVehicle.ClassType || VehicleClass.Trains != Game.PlayerPed.CurrentVehicle.ClassType ||
                          VehicleClass.Planes != Game.PlayerPed.CurrentVehicle.ClassType || VehicleClass.Helicopters != Game.PlayerPed.CurrentVehicle.ClassType))
                {
                    if (Game.PlayerPed.CurrentVehicle.GetNetworkId() == 0)
                    {
                        makenetworked(Game.PlayerPed.CurrentVehicle);
                    }
                    Indicator.RunAsync(Game.PlayerPed.CurrentVehicle);
                    vehicleList.RunTick();
                }
                else
                {
                    vehicleList.RunTick();
                    vehicleList.RunExternalTick();
                }
            }
            catch (Exception e)
            {
                CitizenFX.Core.Debug.WriteLine($"VehicleManager Error: {e.Message} \n Stacktrace: {e.StackTrace}");
            }

            //TODO Chnage how I check for the panic alarm
        }