示例#1
0
        public override bool OnCalloutAccepted()
        {
            /* Archival
             * 2020/6/30 09:23 - Add logging to flags
             * 2020/6/30 09:28 - Add line number logging to locate error
             */
            Game.LogTrivial("[Dangerous Driver/HotCallouts] Accepted Instance > Dangerous Driver");
            Game.LogTrivialDebug("LINE NUMBER: 52 / Used with source repository if pushed.");
            suspectCar = new Vehicle(spawn);
            suspectCar.IsPersistent = true;

            Game.LogTrivial("[Dangerous Driver/HotCallouts] Spawned suspectCar (" + suspectCar.Model.Name + ") and set to Persistent");
            Game.LogTrivialDebug("LINE NUMBER: 56 / Used with source repository if pushed.");

            suspect = suspectCar.CreateRandomDriver();
            suspect.IsPersistent         = true;
            suspect.BlockPermanentEvents = true;
            Game.LogTrivial($"[Dangerous Driver/HotCallouts] Spawned suspect ({suspect.Model.Name}) and set to Persistent & Block Events");
            Game.LogTrivialDebug("LINE NUMBER: 63 / Used with source repository if pushed.");

            blip                = suspect.AttachBlip();
            blip.IsFriendly     = false;
            blip.IsRouteEnabled = true;
            blip.Name           = "Reckless Driver";
            Game.LogTrivial("[Dangerous Driver/HotCallouts] Spawned blip and renamed to Reckless Driver");
            Game.LogTrivialDebug("LINE NUMBER: 70 / Used with source repository if pushed.");

            situations = MathHelper.GetRandomInteger(0, 3);
            string message;
            string audioMessage;

            switch (situations)
            {
            default:
            case 0:
                Game.LogTrivial("[Dangerous Driver/HotCallouts] Flag 0: Emergency with 15f speed");
                suspect.Tasks.CruiseWithVehicle(15f, VehicleDrivingFlags.Emergency);
                message      = "driving all over the road, but with normal speed";
                audioMessage = "CRIME_RECKLESS_DRIVER";
                break;

            case 1:
                Game.LogTrivial("[Dangerous Driver/HotCallouts] Flag 1: Emergency with 30f speed");
                suspect.Tasks.CruiseWithVehicle(30f, VehicleDrivingFlags.Emergency);
                message      = "driving all over the road and overspeed";
                audioMessage = "CRIME_SPEEDING_FELONY";
                break;

            case 2:
                Game.LogTrivial("[Dangerous Driver/HotCallouts] Flag 2: Normal with 45f speed");
                suspect.Tasks.CruiseWithVehicle(45f, VehicleDrivingFlags.Normal);
                message      = "overspeeding";
                audioMessage = "CRIME_SPEEDING_FELONY";
                break;

            case 3:
                Game.LogTrivial("[Dangerous Driver/HotCallouts] Flag 3: Alcohol intoxication");
                if (Integreate.TrafficPolicer)
                {
                    Game.LogTrivial("[Dangerous Driver/HotCallouts] Flag 3 Created: Traffic Policer Exists");
                    suspect.Tasks.CruiseWithVehicle(50f, VehicleDrivingFlags.Emergency);
                    Traffic_Policer.API.Functions.SetPedAlcoholLevel(suspect, Traffic_Policer.Impairment_Tests.AlcoholLevels.OverLimit);
                    audioMessage = "CRIME_RECKLESS_DRIVER";
                    message      = "driving under the influence of alcohol";
                    break;
                }
                else
                {
                    Game.LogTrivial("[Dangerous Driver/HotCallouts] Flag 3 Aborted: Traffic Policer does not exists");
                    Game.LogTrivial("[Dangerous Driver/HotCallouts] Creating Flag 2");
                    goto case 2;
                }
            }
            ScannerHelper.ReportEvent(audioMessage);
            ScannerHelper.DisplayDispatchNote("We received a 911 report of a vehicle " + message + ". Respond with Code 3.");
            Game.LogTrivial("[Dangerous Driver/HotCallouts] Done > Dangerous Driver");
            return(base.OnCalloutAccepted());
        }