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}"); } }
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 }