Exemplo n.º 1
0
        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());
        }
Exemplo n.º 3
0
        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());
        }
Exemplo n.º 4
0
 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());
 }
Exemplo n.º 5
0
        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());
        }
Exemplo n.º 7
0
        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());
        }