//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(); } }
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); }
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()); }