private bool AddIfNotPresint(int NETID, [Optional] IDictionary <string, object> data, [Optional] out ELSVehicle vehicle) { if (NETID == 0) { CitizenFX.Core.Debug.WriteLine("ERROR NetwordID equals 0\n"); vehicle = null; return(false); } else if (!Entities.Exists(poolObject => ((ELSVehicle)poolObject).GetNetworkId() == NETID)) { if (data == null) { data = new Dictionary <string, object>(); } try { var veh = new ELSVehicle(API.NetToVeh(NETID), data); Entities.Add(veh); vehicle = veh; return(false); } catch (Exception ex) { vehicle = null; return(false); } } else { vehicle = Entities.Find(poolObject => ((ELSVehicle)poolObject).GetNetworkId() == NETID) as ELSVehicle; return(true); } }
internal Tone(string file, ELSVehicle entity, ToneType type, bool allow, bool state = false, string soundSet = null) { _entity = entity; _file = file; _soundSet = soundSet; Utils.ReleaseWriteLine($"siren: {type}; soundSet: {_soundSet}; file: {_file}"); SetState(state); AllowUse = allow; switch (type) { case ToneType.SrnTon1: Type = "WL"; break; case ToneType.SrnTon2: Type = "YP"; break; case ToneType.SrnTon3: Type = "A1"; break; case ToneType.SrnTon4: Type = "A2"; break; } soundId = -2; }
public Siren(ELSVehicle vehicle, Vcfroot vcfroot, IPatterns patt) { _vcf = vcfroot; if (_vcf is null) { Utils.ReleaseWriteLine($"VCF for vehicle {vehicle?.Vehicle?.DisplayName} with netId {vehicle?.NetworkId} is null!"); return; } _elsVehicle = vehicle; _patternController = patt; Utils.DebugWriteLine($"{_vcf.SOUNDS.MainHorn.AudioString}"); Utils.DebugWriteLine($"{_vcf.SOUNDS.SrnTone1.AudioString}"); Utils.DebugWriteLine($"{_vcf.SOUNDS.SrnTone2.AudioString}"); Utils.DebugWriteLine($"{_vcf.SOUNDS.SrnTone3.AudioString}"); Utils.DebugWriteLine($"{_vcf.SOUNDS.SrnTone4.AudioString}"); _tones = new Tones { horn = new Tone(_vcf.SOUNDS.MainHorn.AudioString, _elsVehicle, ToneType.Horn, true, soundSet: _vcf.SOUNDS.MainHorn.SoundSet), tone1 = new Tone(_vcf.SOUNDS.SrnTone1.AudioString, _elsVehicle, ToneType.SrnTon1, _vcf.SOUNDS.SrnTone1.AllowUse, soundSet: _vcf.SOUNDS.SrnTone1.SoundSet), tone2 = new Tone(_vcf.SOUNDS.SrnTone2.AudioString, _elsVehicle, ToneType.SrnTon2, _vcf.SOUNDS.SrnTone2.AllowUse, soundSet: _vcf.SOUNDS.SrnTone2.SoundSet), tone3 = new Tone(_vcf.SOUNDS.SrnTone3.AudioString, _elsVehicle, ToneType.SrnTon3, _vcf.SOUNDS.SrnTone3.AllowUse, soundSet: _vcf.SOUNDS.SrnTone3.SoundSet), tone4 = new Tone(_vcf.SOUNDS.SrnTone4.AudioString, _elsVehicle, ToneType.SrnTon4, _vcf.SOUNDS.SrnTone4.AllowUse, soundSet: _vcf.SOUNDS.SrnTone4.SoundSet), }; _mainSiren = new MainSiren(ref _tones); dual_siren = false; ElsUiPanel.SetUiDesc(_mainSiren.MainTones[_mainSiren.currentTone].Type, "SRN"); ElsUiPanel.SetUiDesc("--", "HRN"); }
internal Lights(ELSVehicle vehicle, Vcfroot vcfroot) { Vcfroot = vcfroot; ElsVehicle = vehicle; LightStagesSetup(); if (Vehicle.Exists(ElsVehicle.Vehicle)) { Init(); } }
internal Light(ELSVehicle vehicle, int extraId) { _vehicle = vehicle; _extraId = extraId; }
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?.RunTick(); 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?.RunTick(); vehicleList.RunExternalTick(_currentVehicle); Game.PlayerPed.CurrentVehicle.SetExistOnAllMachines(true); } else { vehicleList.RunExternalTick(); } } else { vehicleList.RunExternalTick(); } } 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); } #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 { 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 }