Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        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;
        }
Beispiel #3
0
        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");
        }
Beispiel #4
0
 internal Lights(ELSVehicle vehicle, Vcfroot vcfroot)
 {
     Vcfroot    = vcfroot;
     ElsVehicle = vehicle;
     LightStagesSetup();
     if (Vehicle.Exists(ElsVehicle.Vehicle))
     {
         Init();
     }
 }
Beispiel #5
0
 internal Light(ELSVehicle vehicle, int extraId)
 {
     _vehicle = vehicle;
     _extraId = extraId;
 }
Beispiel #6
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?.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
        }