示例#1
0
        public Siren(Vehicle vehicle)
        {
            _vehicle = vehicle;
            Function.Call(Hash.DISABLE_VEHICLE_IMPACT_EXPLOSION_ACTIVATION, _vehicle, true);

            foreach (VCF.vcfroot vcfroot in VCF.ELSVehicle)
            {
                if (vcfroot.FileName == _vehicle.DisplayName)
                {
                    _vcf = vcfroot;
                }
            }
            if (_vcf == null)
            {
                throw new Exception($"Their is no VCF file for this vehicle: {_vehicle.DisplayName}");
            }

            _tones = new Tones
            {
                horn  = new Tone(_vcf.SOUNDS.MainHorn.AudioString, _vehicle, ToneType.Horn),
                tone1 = new Tone(_vcf.SOUNDS.SrnTone1.AudioString, _vehicle, ToneType.SrnTon1),
                tone2 = new Tone(_vcf.SOUNDS.SrnTone2.AudioString, _vehicle, ToneType.SrnTon2),
                tone3 = new Tone(_vcf.SOUNDS.SrnTone3.AudioString, _vehicle, ToneType.SrnTon3),
                tone4 = new Tone(_vcf.SOUNDS.SrnTone4.AudioString, _vehicle, ToneType.SrnTon4)
            };
            dual_siren = false;
            _mainSiren = new MainSiren(_tones);
        }
示例#2
0
        public Siren(Vehicle vehicle, VCF.vcfroot vcfroot, [Optional] IDictionary <string, object> data)
        {
            _vcf     = vcfroot;
            _vehicle = vehicle;

            Function.Call(Hash.DISABLE_VEHICLE_IMPACT_EXPLOSION_ACTIVATION, _vehicle, true);
#if DEBUG
            CitizenFX.Core.Debug.WriteLine(_vehicle.DisplayName);
#endif

            _tones = new Tones
            {
                horn       = new Tone(vcfroot.SOUNDS.MainHorn.AudioString, _vehicle, ToneType.Horn),
                tone1      = new Tone(vcfroot.SOUNDS.SrnTone1.AudioString, _vehicle, ToneType.SrnTon1),
                tone2      = new Tone(vcfroot.SOUNDS.SrnTone2.AudioString, _vehicle, ToneType.SrnTon2),
                tone3      = new Tone(vcfroot.SOUNDS.SrnTone3.AudioString, _vehicle, ToneType.SrnTon3),
                tone4      = new Tone(vcfroot.SOUNDS.SrnTone4.AudioString, _vehicle, ToneType.SrnTon4),
                panicAlarm = new Tone(vcfroot.SOUNDS.PanicMde.AudioString, _vehicle, ToneType.SrnPnic)
            };

            dual_siren = false;

            _mainSiren = new MainSiren(ref _tones);

            if (data != null)
            {
                SetData(data);
            }
        }
示例#3
0
        public ELSVehicle(int handle, IDictionary <string, object> data) : base(handle)
        {
            _vehicle = new Vehicle(handle);
            ModelLoaded();

            if (_vehicle.DisplayName == "CARNOTFOUND" || _vehicle.GetNetworkId() == 0)
            {
                throw new Exception("Vehicle creation failure.");
            }
            else if (VCF.ELSVehicle.Exists(item => item.Item2.FileName == _vehicle.DisplayName))
            {
                _vcf = VCF.ELSVehicle.Find(item => item.Item2.FileName == _vehicle.DisplayName).Item2;
            }
            if (data.ContainsKey("Siren"))
            {
                _siren = new Siren.Siren(_vehicle, _vcf, (IDictionary <string, object>)data["Siren"]);
            }
            else
            {
                //_vehicle.SetExistOnAllMachines(true);
#if DEBUG
                CitizenFX.Core.Debug.WriteLine(CitizenFX.Core.Native.API.IsEntityAMissionEntity(_vehicle.Handle).ToString());

                CitizenFX.Core.Debug.WriteLine($"registering netid:{_vehicle.GetNetworkId()}\n" +
                                               $"Does entity belong to this script:{CitizenFX.Core.Native.API.DoesEntityBelongToThisScript(_vehicle.Handle, false)}");
#endif
                _siren = new Siren.Siren(_vehicle, _vcf);
            }
#if DEBUG
            CitizenFX.Core.Debug.WriteLine($"created vehicle");
#endif
        }