Exemplo n.º 1
0
        private void OnDeleteVehicle(bool impound)
        {
            var closeVeh = GTAHelpers.GetClosestVehicle();

            if (closeVeh != null)
            {
                if (closeVeh.HasDecor("Vehicle.ID") /*&& JobHandler.OnDutyAsJob(JobType.Police)*/)
                {
                    var vehId = closeVeh.GetDecor <int>("Vehicle.ID");
                    if (vehId < 1000000 && JobHandler.OnDutyAsJob(JobType.Police))
                    {
                        if (impound)
                        {
                            Client.TriggerServerEvent("Vehicle.ImpoundVehicle", vehId);
                        }
                        closeVeh.Delete();
                    }
                    else if (vehId > 1000000)
                    {
                        closeVeh.Delete();
                    }
                }
                else
                {
                    closeVeh.Delete();
                }
            }
        }
Exemplo n.º 2
0
        private void OnSeizeVehItems(Command cmd)
        {
            if (JobHandler.OnDutyAsJob(JobType.Police))
            {
                var closeVeh = GTAHelpers.GetClosestVehicle(3.0f, o => o.HasDecor("Vehicle.ID"));

                if (closeVeh != null)
                {
                    Client.TriggerServerEvent("Items.SeizeVehicleItems", closeVeh.GetDecor <int>("Vehicle.ID"), string.Join(" ", cmd.Args));
                }
            }
        }
Exemplo n.º 3
0
 private void handleTowJobCancel(Command cmd)
 {
     if (!JobHandler.OnDutyAsJob(JobType.Tow))
     {
         return;
     }
     if (currentJobVehicle != null)
     {
         currentJobVehicle.AttachedBlips.ToList().ForEach(o => o.Delete());
         currentJobVehicle = null;
         Log.ToChat("[Tow]", "You cancelled your current tow job", ConstantColours.TalkMarker);
     }
 }
Exemplo n.º 4
0
        private void FindCuffTarget(string cuffType)
        {
            var onDutyAsPolice = JobHandler.OnDutyAsJob(JobType.Police);

            var cloestPlayer = GTAHelpers.GetClosestPlayer(maxPickupRadius);;

            if (cloestPlayer == null || !onDutyAsPolice && (!IsEntityPlayingAnim(cloestPlayer.Character.Handle, "busted", "idle_a", 3) && cuffType != "EndCuff"))
            {
                return;
            }

            Log.ToChat("", $"Found cuff target for {cuffType}", Color.FromArgb(255, 255, 255));
            Client.TriggerServerEvent($"Cuff.{cuffType}", cloestPlayer.ServerId);
        }
Exemplo n.º 5
0
        private async Task VehicleGetTick()
        {
            if (Client.LocalSession == null)
            {
                return;
            }

            if (JobHandler.OnDutyAsJob(JobType.Tow))
            {
                await BaseScript.Delay(30000);

                getRandomVehicle();
            }
        }
Exemplo n.º 6
0
        private void FindSearchTarget()
        {
            var onDutyAsPolice = JobHandler.OnDutyAsJob(JobType.Police);

            var cloestPlayer  = GTAHelpers.GetClosestPlayer(maxPickupRadius);
            var playerSession = Client.Instances.Session.GetPlayer(cloestPlayer);

            if (cloestPlayer == null || !onDutyAsPolice && (!IsEntityPlayingAnim(cloestPlayer.Character.Handle, "busted", "idle_a", 3) || GetCuffState(playerSession) < CuffState.SoftCuffed))
            {
                return;
            }

            Log.ToChat("", $"Found search target", Color.FromArgb(255, 255, 255));
            Client.TriggerServerEvent($"Search.SearchPlayer", cloestPlayer.ServerId);
        }
Exemplo n.º 7
0
 public VehicleWeaponSelect()
 {
     Client.RegisterEventHandler("baseevents:enteredVehicle", new Action <int, int, string>((veh, seat, name) =>
     {
         if (JobHandler.OnDutyAsJob(JobType.Police))
         {
             Client.RegisterTickHandler(WeaponSelectTick);
         }
     }));
     Client.RegisterEventHandler("baseevents:leftVehicle", new Action <int, int, string>((veh, seat, name) =>
     {
         if (JobHandler.OnDutyAsJob(JobType.Police))
         {
             Client.DeregisterTickHandler(WeaponSelectTick);
         }
     }));
 }
Exemplo n.º 8
0
        private async Task RadarTick()
        {
            if (!JobHandler.OnDutyAsJob(JobType.Police) || Cache.PlayerPed.CurrentVehicle.ClassType != VehicleClass.Emergency)
            {
                return;
            }

            var frontVeh = getRadarVehicle(105.0f);
            var backVeh  = getRadarVehicle(-105.0f);

            if (radarEnabled)
            {
                if (frontVeh != null && !radarFrozen)
                {
                    frontVehText.Caption = $"F: {frontVeh.LocalizedName} | {frontVeh.Mods.LicensePlate} | {Math.Round(frontVeh.Speed * 2.23694f)} MPH";
                }

                if (backVeh != null && !radarFrozen)
                {
                    backVehText.Caption = $"B: {backVeh.LocalizedName} | {backVeh.Mods.LicensePlate} | {Math.Round(backVeh.Speed * 2.23694f)} MPH";
                }

                if (Input.IsControlJustPressed(Control.FrontendRdown))
                {
                    radarFrozen = !radarFrozen;

                    frontVehText.Color = radarFrozen ? ConstantColours.Green : Color.FromArgb(255, 255, 255);
                    backVehText.Color  = radarFrozen ? ConstantColours.Green : Color.FromArgb(255, 255, 255);
                }

                frontVehText.DrawTick();
                backVehText.DrawTick();
            }

            if (Input.IsControlJustPressed(Control.Detonate))
            {
                if (frontVeh != null)
                {
                    ExecuteCommand($"runplate {frontVeh.Mods.LicensePlate}");
                }
            }
        }
        public override async void StartJob()
        {
            base.StartJob();
            if (JobVehicle == null)
                JobVehicle = await spawnJobVehicle();

            if (!JobHandler.OnDutyAsJob(JobType.Delivery))
            {
                JobHandler.SetPlayerJob(JobType.Delivery);
                JobHandler.SetDutyState(true);
            }

            if(!Client.Get<InteractionUI>().ContainsInteractionMenuItem(ReturnVehicleItem))
                Client.Get<InteractionUI>().RegisterInteractionMenuItem(ReturnVehicleItem, () => JobHandler.OnDutyAsJob(JobType.Delivery) && Game.PlayerPed.Position.DistanceToSquared(VehicleSpawnLocation) < 400.0f, 500);

            CurrentDeliveryLocations = GetDeliveryLocations();
            CurrentDeliveryLocation = CurrentDeliveryLocations[0];
            loadDeliveryBlip();
            Log.ToChat("[Job]", StartString, ConstantColours.Job);
            Client.RegisterTickHandler(JobTick);
        }
Exemplo n.º 10
0
        protected override async void OnInteraction()
        {
            if (Game.PlayerPed.Position.DistanceToSquared(MarkerLocation) < Math.Pow(3, 2))
            {
                if (!JobHandler.IsOnDuty)
                {
                    StartJob();
                }
                else if (JobHandler.OnDutyAsJob(JobType.Delivery) && truckTrailer == null)
                {
                    truckTrailer = await spawnTruckTrailer();

                    Client.DeregisterTickHandler(JobTick);
                    StartJob();
                }
                else
                {
                    Log.ToChat("[Job]", "You must quit your current job before starting another one", ConstantColours.Job);
                }
            }
        }
Exemplo n.º 11
0
        private void handleTowCommand(Command cmd)
        {
            if (!JobHandler.OnDutyAsJob(JobType.Tow) || Cache.PlayerPed.IsInVehicle())
            {
                return;
            }

            var frontVeh = GTAHelpers.GetClosestVehicle(12.0f, veh => veh != currentTowTruck);

            if (frontVeh == null || currentTowTruck == null)
            {
                return;
            }

            if (frontVeh.ClassType == VehicleClass.Helicopters || frontVeh.ClassType == VehicleClass.Military || frontVeh.ClassType == VehicleClass.Trains || frontVeh.Occupants.Length > 0)
            {
                return;
            }

            if (towedVehicle != null && !Game.PlayerPed.IsInVehicle() && Game.PlayerPed.Position.DistanceToSquared(towedVehicle.Position) < 16.0f)
            {
                towedVehicle.AttachTo(currentTowTruck, new Vector3(-0.5f, -12, 0));
                towedVehicle.Detach();
                towedVehicle = null;
                return;
            }

            if (frontVeh.Model.Hash == (int)VehicleHash.Flatbed)
            {
                return;
            }

            if (frontVeh != currentTowTruck)
            {
                towedVehicle = frontVeh;
                towedVehicle.AttachTo(currentTowTruck, new Vector3(0, -2.5f, 0.85f));
                towedVehicle.AttachedBlips.ToList().ForEach(o => o.Delete());
            }
        }
Exemplo n.º 12
0
        public async void StartJob()
        {
            await CreateJobVehicle(VehicleHash.Taxi, vehicleSpawnLocation, 0.0f);

            JobHandler.SetPlayerJob(JobType.Taxi);
            JobHandler.SetDutyState(true);
            Client.RegisterTickHandler(JobTick);
            Client.RegisterTickHandler(taxiSearchTick);
            lookingForTaxiJob = true;
            inTaxiJob         = false;
            Client.Get <InteractionUI>().RegisterInteractionMenuItem(taxiDutyItem, () => JobHandler.OnDutyAsJob(JobType.Taxi) && !inTaxiJob, 250);
            Client.Get <InteractionUI>().RegisterInteractionMenuItem(returnVehicleItem, () => JobHandler.OnDutyAsJob(JobType.Taxi) && Game.PlayerPed.Position.DistanceToSquared(vehicleSpawnLocation) < 200.0f, 250);
        }