예제 #1
0
        //game tick
        public override void Process()
        {
            base.Process();
            if (!HasPedBeenDesignated)
            {
                if (LPlayer.LocalPlayer.Ped.Position.DistanceTo(this.spawnPosition) <= 20f)
                {
                    this.blip.Delete();
                    if (IsGunman)
                    {
                        this.criminal.EquipWeapon();
                        this.pursuit = Functions.CreatePursuit();
                        Functions.AddPedToPursuit(this.pursuit, this.criminal);
                        Functions.SetPursuitCalledIn(pursuit, true);
                        Functions.SetPursuitCopsCanJoin(pursuit, true);
                        Functions.SetPursuitForceSuspectsToFight(pursuit, true);
                        Functions.SetPursuitIsActiveForPlayer(pursuit, true);
                        Functions.AddTextToTextwall("Control I've got a suspect with a gun, send backup!", LPlayer.LocalPlayer.Username);
                        Functions.AddTextToTextwall("Affirmative, units around you have been advised.", "CONTROL");

                        HasPedBeenDesignated = true;
                    }
                    else
                    {
                        this.criminal.ItemsCarried = LPed.EPedItem.Drugs;
                        this.criminal.Weapons.Knife.Select();
                        this.criminal.StartKillingSpree(true);
                        Functions.PrintHelp("This suspect doesn't look right, he may be under the influence of an illegal susbstance");
                        criminal.AttachBlip();
                        HasPedBeenDesignated = true;
                    }
                }
            }


            if (this.criminal.HasBeenArrested)
            {
                this.End();
            }
        }
예제 #2
0
        public override bool OnCalloutAccepted()
        {
            base.OnCalloutAccepted();

            driver = new LPed(spawnPoint.Position, "M_Y_STREET_01");
            Vehicle temp = World.CreateVehicle(spawnPoint.Position.Around(5.0f));

            car = LVehicle.FromGTAVehicle(temp);
            driver.IsRequiredForMission = true;
            car.IsRequiredForMission    = true;

            try
            {
                // Fix NullReferenceException
                if (driver == null)
                {
                    return(false);
                }

                if (driver.Exists() || car.Exists())
                {
                    driver.CanResistArrest = true;
                    driver.Task.WarpIntoVehicle(car.GVehicle, VehicleSeat.Driver);
                    driver.Task.CruiseWithVehicle(car.GVehicle, 20f, false);
                    blip = driver.AttachBlip();

                    Functions.AddToScriptDeletionList(driver, this);
                    Functions.SetPedIsOwnedByScript(driver, this, true);

                    Functions.AddToScriptDeletionList(car, this);
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception ex)
            {
                Log.Error("Exception caught while callout is being accepted", "HotCallots] [DangerousDriver");
                Log.Error(ex.GetType().Name + ": " + ex.Message + "\r\n" + ex.StackTrace, "HotCallots] [DangerousDriver");
                return(false);
            }

            return(true);
        }
예제 #3
0
        public override bool OnCalloutAccepted()
        {
            target  = new LPed(spawnPoint.Position, "M_Y_GBIK_LO_01");
            officer = new LPed(target.Position.Around(10.0f), "M_Y_COP");
            switch (CallType)
            {
            case EFirearmAttackType.Attack:
                officer.EquipWeapon();
                target.EquipWeapon();

                officerBlip = officer.AttachBlip();
                targetBlip  = target.AttachBlip();

                officerBlip.Friendly = true;

                targetBlip.Icon        = BlipIcon.Misc_CopHeli;
                targetBlip.Scale       = 0.5f;
                targetBlip.Color       = BlipColor.Red;
                targetBlip.RouteActive = true;
                targetBlip.Name        = "Suspect";

                target.Task.FightAgainst(officer);
                officer.Task.FightAgainst(target);

                Functions.PrintText("Get to the ~y~crime scene~w~ ASAP!", 7000);
                Functions.AddTextToTextwall("Be advised, we have another unit responding.", Functions.GetStringFromLanguageFile("POLICE_SCANNER_CONTROL"));
                Functions.RequestPoliceBackupAtPosition(spawnPoint.Position);
                break;

            case EFirearmAttackType.TakingAim:
                officer.EquipWeapon();
                target.EquipWeapon();

                officerBlip = officer.AttachBlip();
                targetBlip  = target.AttachBlip();

                officerBlip.Friendly = true;

                targetBlip.Icon        = BlipIcon.Misc_CopHeli;
                targetBlip.Scale       = 0.5f;
                targetBlip.Color       = BlipColor.Red;
                targetBlip.RouteActive = true;
                targetBlip.Name        = "Suspect";

                officer.Task.AimAt(target.GPed, -1);
                target.Task.AimAt(officer.GPed, -1);
                Functions.PrintText("Get to the ~crime scene~w~.", 7000);
                break;

            case EFirearmAttackType.DrawGun:
                officer.EquipWeapon();
                target.EquipWeapon();

                officerBlip = officer.AttachBlip();
                targetBlip  = target.AttachBlip();

                officerBlip.Friendly = true;

                targetBlip.Icon        = BlipIcon.Misc_CopHeli;
                targetBlip.Scale       = 0.5f;
                targetBlip.Color       = BlipColor.Red;
                targetBlip.RouteActive = true;
                targetBlip.Name        = "Suspect";

                officer.Task.AimAt(target, -1);
                Functions.PrintText("Get to the ~crime scene~w~.", 7000);
                break;
            }

            Functions.AddToScriptDeletionList(target, this);
            Functions.SetPedIsOwnedByScript(target, this, true);

            Functions.AddToScriptDeletionList(target, this);
            Functions.SetPedIsOwnedByScript(target, this, true);

            return(base.OnCalloutAccepted());
        }