public override bool OnBeforeCalloutDisplayed() { Game.LogTrivial("Creating AssortedCallouts.StoreRobbery"); List <Store> ValidStores = (from x in Store.Stores where (Game.LocalPlayer.Character.DistanceTo(x.ShopKeeperSpawnData[0].Item1) < 900f && Game.LocalPlayer.Character.DistanceTo(x.ShopKeeperSpawnData[0].Item1) > 300f)orderby(Game.LocalPlayer.Character.DistanceTo(x.ShopKeeperSpawnData[0].Item1)) select x).ToList <Store>(); if (ValidStores.Count == 0) { Game.LogTrivial("No valid store found."); return(false); } RobberyStore = ValidStores[AssortedCalloutsHandler.rnd.Next(ValidStores.Count)]; SpawnPoint = RobberyStore.ShopKeeperSpawnData[0].Item1; ShowCalloutAreaBlipBeforeAccepting(SpawnPoint, 40f); CalloutMessage = "~b~" + RobberyStore.Name + " ~r~robbery."; CalloutPosition = SpawnPoint; ComputerPlusRunning = AssortedCalloutsHandler.IsLSPDFRPluginRunning("ComputerPlus", new Version("1.3.0.0")); if (ComputerPlusRunning) { CalloutID = API.ComputerPlusFuncs.CreateCallout(RobberyStore.Name + " robbery", "Store Robbery", SpawnPoint, 1, "Reports of a robbery in progress. Weapons are involved. No units currently on scene.", 1, null, null); } Functions.PlayScannerAudioUsingPosition("DISP_ATTENTION_UNIT " + AssortedCalloutsHandler.DivisionUnitBeatAudioString + " WE_HAVE CRIME_ROBBERY IN_OR_ON_POSITION", SpawnPoint); return(base.OnBeforeCalloutDisplayed()); }
public override bool OnBeforeCalloutDisplayed() { Game.LogTrivial("Creating AssortedCallouts.IllegalImmigrantsInTruck"); int WaitCount = 0; while (!World.GetNextPositionOnStreet(Game.LocalPlayer.Character.Position.Around(350f, 500f)).GetClosestVehicleNodeWithHeading(out SpawnPoint, out SpawnHeading)) { GameFiber.Yield(); WaitCount++; if (WaitCount > 10) { return(false); } } uint zoneHash = Rage.Native.NativeFunction.CallByHash <uint>(0x7ee64d51e8498728, SpawnPoint.X, SpawnPoint.Y, SpawnPoint.Z); if (Game.GetHashKey("city") == zoneHash) { Game.LogTrivial("Aborting due to location"); return(false); } SearchAreaLocation = SpawnPoint.Around(40f, 90f); ShowCalloutAreaBlipBeforeAccepting(SearchAreaLocation, 280f); CalloutMessage = "Illegal Immigrants in Truck"; CalloutPosition = SpawnPoint; ComputerPlusRunning = AssortedCalloutsHandler.IsLSPDFRPluginRunning("ComputerPlus", new Version("1.3.0.0")); if (ComputerPlusRunning) { CalloutID = API.ComputerPlusFuncs.CreateCallout("Illegal Immigrants in Truck", "Immigrants in Truck", SpawnPoint, 0, "Reports of suspicious activity coming from the back of a truck. Please investigate.", 1, null, null); } Functions.PlayScannerAudioUsingPosition("DISP_ATTENTION_UNIT " + AssortedCalloutsHandler.DivisionUnitBeatAudioString + " CITIZENS_REPORT CRIME_SUSPICIOUSVEHICLE IN_OR_ON_POSITION", SpawnPoint); return(base.OnBeforeCalloutDisplayed()); }
public override bool OnBeforeCalloutDisplayed() { Game.LogTrivial("AssortedCallouts.PrisonerTransportRequired"); foreach (Tuple <Vector3, float> tuple in Albo1125.Common.CommonLibrary.CommonVariables.TrafficStopSpawnPointsWithHeadings) { //tuple.Item1 = PedInTuple //tuple.Item2 = Vector3 in tuple //tuple.Item3 = FloatinTuple //Game.LogTrivial(tuple.Item1.ToString()); //Game.LogTrivial(tuple.Item2.ToString()); if ((Vector3.Distance(tuple.Item1, Game.LocalPlayer.Character.Position) < 750f) && (Vector3.Distance(tuple.Item1, Game.LocalPlayer.Character.Position) > 280f)) { ValidTrafficStopSpawnPointsWithHeadings.Add(tuple); } } if (ValidTrafficStopSpawnPointsWithHeadings.Count == 0) { return(false); } ChosenSpawnData = ValidTrafficStopSpawnPointsWithHeadings[AssortedCalloutsHandler.rnd.Next(ValidTrafficStopSpawnPointsWithHeadings.Count)]; SpawnPoint = ChosenSpawnData.Item1; SpawnHeading = ChosenSpawnData.Item2; uint zoneHash = Rage.Native.NativeFunction.CallByHash <uint>(0x7ee64d51e8498728, SpawnPoint.X, SpawnPoint.Y, SpawnPoint.Z); if (Game.GetHashKey("city") == zoneHash) { CopCarModel = new Model(CityCarModels[AssortedCalloutsHandler.rnd.Next(CityCarModels.Length)]); } else { CopCarModel = new Model(CountrysideCarModels[AssortedCalloutsHandler.rnd.Next(CountrysideCarModels.Length)]); } CopCarModel.LoadAndWait(); ShowCalloutAreaBlipBeforeAccepting(SpawnPoint, 10f); CalloutMessage = "Prisoner Transport Required"; CalloutPosition = SpawnPoint; ComputerPlusRunning = AssortedCalloutsHandler.IsLSPDFRPluginRunning("ComputerPlus", new Version("1.3.0.0")); if (ComputerPlusRunning) { CalloutID = API.ComputerPlusFuncs.CreateCallout("Prisoner Transport Required", "Prisoner Transport", SpawnPoint, 0, "Officer is requesting transport for a prisoner. Situation currently under control. Please respond code 2.", 1, null, null); } Functions.PlayScannerAudioUsingPosition("DISP_ATTENTION_UNIT " + AssortedCalloutsHandler.DivisionUnitBeatAudioString + " WE_HAVE CRIME_OFFICER_IN_NEED_OF_ASSISTANCE IN_OR_ON_POSITION", SpawnPoint); return(base.OnBeforeCalloutDisplayed()); }
public override bool OnBeforeCalloutDisplayed() { Game.LogTrivial("Creating AssortedCallouts.PetrolTheft"); SpawnPoint = new Vector3(0, 0, 3000); foreach (Vector3 pos in PetrolStations) { if (Vector3.Distance(Game.LocalPlayer.Character.Position, pos) < Vector3.Distance(Game.LocalPlayer.Character.Position, SpawnPoint)) { if (Vector3.Distance(Game.LocalPlayer.Character.Position, pos) > 90f) { SpawnPoint = pos; } } } if (SpawnPoint == new Vector3(0, 0, 3000)) { Game.LogTrivial("Nullable vector"); return(false); } if (Vector3.Distance(Game.LocalPlayer.Character.Position, SpawnPoint) > 2000f) { Game.LogTrivial("Petrol station too far away."); return(false); } if (AssortedCalloutsHandler.English == AssortedCalloutsHandler.EnglishTypes.BritishEnglish) { PetrolGas = "Petrol"; } else { PetrolGas = "Gas"; } ShowCalloutAreaBlipBeforeAccepting(SpawnPoint, 15f); CalloutMessage = PetrolGas + " Theft"; CalloutPosition = SpawnPoint; ComputerPlusRunning = AssortedCalloutsHandler.IsLSPDFRPluginRunning("ComputerPlus", new Version("1.3.0.0")); if (ComputerPlusRunning) { CalloutID = API.ComputerPlusFuncs.CreateCallout(CalloutMessage, CalloutMessage, SpawnPoint, 0, "Reports of a " + CalloutMessage + ". Please investigate with the shopkeeper.", 1, null, null); } Functions.PlayScannerAudioUsingPosition("DISP_ATTENTION_UNIT " + AssortedCalloutsHandler.DivisionUnitBeatAudioString + " CITIZENS_REPORT CRIME_484 IN_OR_ON_POSITION", SpawnPoint); return(base.OnBeforeCalloutDisplayed()); }
public override bool OnBeforeCalloutDisplayed() { Game.LogTrivial("AssortedCallouts.OrganisedStreetRace"); int WaitCount = 0; while (!World.GetNextPositionOnStreet(Game.LocalPlayer.Character.Position.Around(350f, 400f)).GetClosestVehicleNodeWithHeading(out SpawnPoint, out SpawnHeading)) { GameFiber.Yield(); WaitCount++; if (WaitCount > 10) { return(false); } } ShowCalloutAreaBlipBeforeAccepting(SpawnPoint, 70f); NumberOfVehicles = AssortedCalloutsHandler.rnd.Next(2, 5); RaceModels = RaceModels.Shuffle(); for (int i = 0; i < NumberOfVehicles; i++) { Model modeltoadd = new Model(RaceModels[AssortedCalloutsHandler.rnd.Next(RaceModels.Count)]); VehicleModels.Add(modeltoadd); modeltoadd.LoadAndWait(); } CalloutMessage = "Organised Street Race"; CalloutPosition = SpawnPoint; ComputerPlusRunning = AssortedCalloutsHandler.IsLSPDFRPluginRunning("ComputerPlus", new Version("1.3.0.0")); if (ComputerPlusRunning) { CalloutID = API.ComputerPlusFuncs.CreateCallout("Organised Street Race", "Street Race", SpawnPoint, 1, "Reports of an organised street race taking place. Please investigate.", 1, null, null); } Functions.PlayScannerAudioUsingPosition("DISP_ATTENTION_UNIT " + AssortedCalloutsHandler.DivisionUnitBeatAudioString + " WE_HAVE_01 CRIME_VEHICLES_RACING IN_OR_ON_POSITION", SpawnPoint); return(base.OnBeforeCalloutDisplayed()); }
public override bool OnBeforeCalloutDisplayed() { SpawnPoint = World.GetNextPositionOnStreet(Game.LocalPlayer.Character.Position.Around(220f)); while (Vector3.Distance(Game.LocalPlayer.Character.Position, SpawnPoint) < 180f) { GameFiber.Yield(); SpawnPoint = World.GetNextPositionOnStreet(Game.LocalPlayer.Character.Position.Around(220f)); } uint zoneHash = Rage.Native.NativeFunction.CallByHash <uint>(0x7ee64d51e8498728, SpawnPoint.X, SpawnPoint.Y, SpawnPoint.Z); if (Game.GetHashKey("city") == zoneHash) { CopCarModel = new Model(CityCarModels[AssortedCalloutsHandler.rnd.Next(CityCarModels.Length)]); } else { CopCarModel = new Model(CountrysideCarModels[AssortedCalloutsHandler.rnd.Next(CountrysideCarModels.Length)]); } CopCarModel.LoadAndWait(); ShowCalloutAreaBlipBeforeAccepting(SpawnPoint, 10f); CalloutMessage = "Stolen Police Vehicle"; CalloutPosition = SpawnPoint; ComputerPlusRunning = AssortedCalloutsHandler.IsLSPDFRPluginRunning("ComputerPlus", new Version("1.3.0.0")); if (ComputerPlusRunning) { CalloutID = API.ComputerPlusFuncs.CreateCallout("Stolen Police Vehicle", "Stolen Police Vehicle", SpawnPoint, 1, "Reports of a stolen police vehicle. Tracking with GPS tracker. Please respond.", 1, null, null); } Functions.PlayScannerAudioUsingPosition("DISP_ATTENTION_UNIT " + AssortedCalloutsHandler.DivisionUnitBeatAudioString + " WE_HAVE CRIME_STOLEN_POLICE_VEHICLE IN_OR_ON_POSITION", SpawnPoint); return(base.OnBeforeCalloutDisplayed()); }
public override bool OnBeforeCalloutDisplayed() { Game.LogTrivial("Creating AssortedCallouts.PersonWithKnife"); int WaitCount = 0; while (!World.GetNextPositionOnStreet(Game.LocalPlayer.Character.Position.Around(260f)).GetSafeVector3ForPed(out SpawnPoint)) { GameFiber.Yield(); WaitCount++; if (WaitCount > 10) { return(false); } } uint zoneHash = Rage.Native.NativeFunction.CallByHash <uint>(0x7ee64d51e8498728, SpawnPoint.X, SpawnPoint.Y, SpawnPoint.Z); if (Game.GetHashKey("city") != zoneHash && !AllowedCountrySideZones.Contains(Albo1125.Common.CommonLibrary.Zones.GetZone(SpawnPoint))) { //Game.LogTrivial("Invalid zone: " + Zones.GetLowerZoneName(SpawnPoint)); return(false); } SearchAreaLocation = SpawnPoint.Around(10f, 30f); ShowCalloutAreaBlipBeforeAccepting(SearchAreaLocation, 40f); CalloutMessage = "Person with a knife"; CalloutPosition = SpawnPoint; ComputerPlusRunning = AssortedCalloutsHandler.IsLSPDFRPluginRunning("ComputerPlus", new Version("1.3.0.0")); if (ComputerPlusRunning) { CalloutID = API.ComputerPlusFuncs.CreateCallout("Person with a knife", "Knifeman", SpawnPoint, 1, "Reports of a person with a knife. Respond as fast as possible and locate the suspect to prevent escalation.", 1, null, null); } Functions.PlayScannerAudioUsingPosition("DISP_ATTENTION_UNIT " + AssortedCalloutsHandler.DivisionUnitBeatAudioString + " WE_HAVE CRIME_PERSONCARRYINGKNIFE IN_OR_ON_POSITION", SpawnPoint); return(base.OnBeforeCalloutDisplayed()); }