Esempio n. 1
0
 public void Questioning()
 {
     pCar = LPlayer.LocalPlayer.Ped.IsInVehicle() ? LPlayer.LocalPlayer.Ped.CurrentVehicle : LPlayer.LocalPlayer.LastVehicle;
     //sCar = m.pulloverCar;//LVehicle.FromGTAVehicle(World.GetClosestVehicle(LPlayer.LocalPlayer.LastVehicle.GetOffsetPosition(new Vector3(0, pCar.Model.GetDimensions().Y / 2 + 4, 0)), 5f));
     //sCar.AttachBlip();
     suspect = LPlayer.LocalPlayer.LastVehicle.GetPedOnSeat(LPlayer.LocalPlayer.LastVehicle.IsSeatFree(VehicleSeat.LeftRear) ? VehicleSeat.RightRear : VehicleSeat.LeftRear);
     if (suspect.Exists())                  // If the suspect does exist we can go ahead and question them
     {
         if (sCar != null && sCar.Exists()) // Check for the suspect's vehicle, if it doesn't exist then this isn't a traffic stop.
         {
             IsTrafficStop = true;
             Functions.PrintHelp("~KEY_DIALOG_1~ Conduct Breathtest~n~~KEY_DIALOG_2~ Seize Car~n~~KEY_DIALOG_3~ Release Ped~n~~KEY_DIALOG_4~ Cancel");
             qTimer = new GTA.Timer(10);
             qTimer.Start();
             qTimer.Tick += qTimer_Tick;
         }
         else
         {
             IsTrafficStop = false;
             Functions.PrintHelp("You can only question a suspect from a pullover at this time.");
             m.HasQuestioningFired = false;
             //Functions.PrintHelp("~KEY_DIALOG_1~ Option 2~n~~KEY_DIALOG_2~ Option 2~n~~KEY_DIALOG_3~ Release Ped~n~~KEY_DIALOG_4~ Cancel");
         }
     }
     else
     {
         m.HasQuestioningFired = false;
     }
 }
Esempio n. 2
0
        public CGrenade(Vector3 startPos, Vector3 startDirection, EBombType bombType, EExplosionType exType, int bombTickInterval, int grenadeTickInterval)
        {
            this.startDir = startDirection;

            this.bomb = new CBomb(
                                  startPos,
                                  "CJ_PROP_GRENADE",
                                  EBombType.payload,
                                  exType,
                                  bombTickInterval);

            this.timer = new GTA.Timer();
            this.timer.Interval = grenadeTickInterval;
            this.timer.Start();
            this.timer.Tick += new EventHandler(timer_Tick);

            this.bomb.Obj.Collision = true;
            this.bomb.Obj.SetRecordCollisions(true);

            this.ptfxHandle = GTA.Native.Function.Call<int>("START_PTFX_ON_OBJ", "weap_molotov_smoke", this.bomb.Obj, 0.125, -0.02, 0.01, 0.0, 0.0, 0.0, 1.1);

            this.bomb.Obj.FreezePosition = false;
            this.bomb.Obj.Rotation = GTA.Helper.DirectionToRotation(startDirection, 0f);
        }
Esempio n. 3
0
        /// <summary>
        /// Initializes a new instance of the <see cref="CRocket"/> class.
        /// </summary>
        /// <param name="startPos">The start position.</param>
        /// <param name="startDirection">The start direction.</param>
        /// <param name="bombType">Type of payload.</param>
        /// <param name="exType">Type of explosion.</param>
        /// <param name="bombTickInterval">The bomb tick interval.</param>
        /// <param name="rocketTickInterval">The rocket tick interval.</param>
        public CRocket(Vector3 startPos, Vector3 startDirection, EBombType bombType, EExplosionType exType, int bombTickInterval, int rocketTickInterval)
        {
            this.bomb = new CBomb(
                                  startPos,
                                  "cj_rpg_rocket",
                                  EBombType.payload,
                                  exType,
                                  bombTickInterval);

            this.timer = new GTA.Timer();
            this.timer.Interval = rocketTickInterval;
            this.timer.Start();
            this.timer.Tick += new EventHandler(this.timer_Tick);

            this.vel = GParams.RocketVel;

            // Example...
            //START_PTFX_ON_OBJ("ambient_cig_smoke", c.a, 0.125, -0.02, 0.01, 0.0, 0.0, 0.0, 1.1) --+z-y+x
            this.ptfxHandle = GTA.Native.Function.Call<int>("START_PTFX_ON_OBJ", "weap_rocket_player", this.bomb.Obj, 0.125, -0.02, 0.01, 0.0, 0.0, 0.0, 1.1);

            this.light = new GTA.Light(System.Drawing.Color.Orange, 15.0f, 80f);
            this.light.Position = this.bomb.Obj.GetOffsetPosition(new Vector3(0f, -2f, 0f));
            this.light.Enabled = true;
        }
Esempio n. 4
0
        /// <summary>
        /// Initializes a new instance of the <see cref="CBomb"/> class.
        /// </summary>
        /// <param name="position">The spawn position.</param>
        /// <param name="model">The model.</param>
        /// <param name="bombType">The bomb type.</param>
        /// <param name="explosionType">The explosion type.</param>
        /// <param name="tickInterval">The tick interval.</param>
        public CBomb(Vector3 position, Model model, EBombType bombType, EExplosionType explosionType, int tickInterval)
        {
            this.model = model;
            this.bombType = bombType;

            this.obj = World.CreateObject(model, position);
            this.timer = new GTA.Timer(tickInterval, true);
            this.timer.Tick += new EventHandler(this.timer_Tick);

            this.creationTime = System.DateTime.Now.Ticks;
            this.state = EBombState.Armed;
            this.exType = explosionType;

            // We wait until the object has been created
            while (this.obj == null)
            {
            }

            GTA.Native.Function.Call("SET_OBJECT_AS_STEALABLE", this.obj, 1);
            //START_PTFX_ON_OBJ("ambient_cig_smoke", c.a, 0.125, -0.02, 0.01, 0.0, 0.0, 0.0, 1.1) --+z-y+x
            //ptfxHandle = GTA.Native.Function.Call<int>("START_PTFX_ON_OBJ", "shot_directed_flame", this.obj, 0, 0, 0.3, 45.0, -90.0, 45.0, 0.0);
            //
            // START_PTFX_ON_OBJ(string ptfxName, int objId, float xOffset, float yOffset, float zOffset, float yaw, float pitch, float roll, float scale)
        }
Esempio n. 5
0
 public FPSmod()
 {
     gameMode = GTA.Native.Function.Call<int>("NETWORK_GET_GAME_MODE");
     if (gameMode != -1)
     {
         Game.Console.Print("[FPSmod]: not in singleplayer, thus disabled!");
     }
     currentEpisode = Game.CurrentEpisode;
     if (currentEpisode != GameEpisode.GTAIV)
     {
         Game.Console.Print("[FPSmod]: not in standard GTA:IV!");
         Game.DisplayText("Be advised: Kill-Icons is untested for EFLC!");
     }
     multiKillTimer = new GTA.Timer(MULTIKILL_TIMELIMIT, false);
     killEventArray = new killEvent[50];
     ownageSound = new SoundPlayer();
     ownageSound.Stream = new System.IO.MemoryStream(loadFile("./scripts/sounds/ownage.wav"));
     comboWhoreSound = new SoundPlayer();
     comboWhoreSound.Stream = new System.IO.MemoryStream(loadFile("./scripts/sounds/combowhore.wav"));
     headshotSoundPlayer = new SoundPlayer();
     headshotSoundPlayer.Stream = new System.IO.MemoryStream(loadFile("./scripts/sounds/headshot.wav"));
     firstBloodSound = new SoundPlayer();
     firstBloodSound.Stream = new System.IO.MemoryStream(loadFile("./scripts/sounds/firstblood.wav"));
     multiKillSound = new SoundPlayer();
     multiKillSound.Stream = new System.IO.MemoryStream(loadFile("./scripts/sounds/multikill.wav"));
     killingSpreeSound = new SoundPlayer();
     killingSpreeSound.Stream = new System.IO.MemoryStream(loadFile("./scripts/sounds/killingspree.wav"));
     dominatingSound = new SoundPlayer();
     dominatingSound.Stream = new System.IO.MemoryStream(loadFile("./scripts/sounds/dominating.wav"));
     humiliationSound = new SoundPlayer();
     humiliationSound.Stream = new System.IO.MemoryStream(loadFile("./scripts/sounds/humiliation.wav"));
     megaKillSound = new SoundPlayer();
     megaKillSound.Stream = new System.IO.MemoryStream(loadFile("./scripts/sounds/megakill.wav"));
     unstoppableSound = new SoundPlayer();
     unstoppableSound.Stream = new System.IO.MemoryStream(loadFile("./scripts/sounds/unstoppable.wav"));
     wickedSickSound = new SoundPlayer();
     wickedSickSound.Stream = new System.IO.MemoryStream(loadFile("./scripts/sounds/wickedsick.wav"));
     holyShitSound = new SoundPlayer();
     holyShitSound.Stream = new System.IO.MemoryStream(loadFile("./scripts/sounds/holyshit.wav"));
     godlikeSound = new SoundPlayer();
     godlikeSound.Stream = new System.IO.MemoryStream(loadFile("./scripts/sounds/godlike.wav"));
     rampageSound = new SoundPlayer();
     rampageSound.Stream = new System.IO.MemoryStream(loadFile("./scripts/sounds/rampage.wav"));
     GeneralInfo = "kill announcer by thaCURSEDpie";
     Interval = 100; // Interval is the time between two Ticks (in milliseconds)
     this.Tick += new EventHandler(this.TickEvent);
     this.PerFrameDrawing += new GraphicsEventHandler(this.OnPerFrameDrawing);
     BindConsoleCommand("fpsmod_mute", new ConsoleCommandDelegate(mute_console), "- disable killsounds");
     BindConsoleCommand("fpsmod_unmute", new ConsoleCommandDelegate(unmute_console), "- disable killsounds");
     BindConsoleCommand("fpsmod_on", new ConsoleCommandDelegate(modOnConsole), "- Enable FPSmod.");
     BindConsoleCommand("fpsmod_off", new ConsoleCommandDelegate(modOffConsole), "- Disable FPSmod.");
     BindConsoleCommand("fpsmod_hidedebugtexts", new ConsoleCommandDelegate(hidedbgtexts_Console), "- Dont show debug texts.");
     BindConsoleCommand("fpsmod_showdebugtexts", new ConsoleCommandDelegate(showdbgtexts_Console), "- Do show debug texts.");
     BindConsoleCommand("fpsmod_reload", new ConsoleCommandDelegate(reloadSettingsConsole), "- Reload FPSmod settings.");
     BindConsoleCommand("fpsmod_hideicons", new ConsoleCommandDelegate(hideicons_console), "- Dont show kill icons");
     BindConsoleCommand("fpsmod_showicons", new ConsoleCommandDelegate(showicons_console), "- Do show kill icons");
     startUp();
 }
Esempio n. 6
0
        //Function for requesting a tow truck
        public void RequestTowTruck()
        {
            Functions.AddTextToTextwall("Can I get a removal truck at my location please",
                                        "OFFICER " + LPlayer.LocalPlayer.Username);
            towedCar = World.GetClosestVehicle(LPlayer.LocalPlayer.Ped.Position, 3f);
            if (towedCar != null && towedCar.Exists())
            {
                if (CalloutsPlusMain.QuickSpawnMethod == true)
                // if quick spawn method is set to true, the vehicle will spawn much closer
                {
                    truck = new LVehicle(LPlayer.LocalPlayer.Ped.Position.Around(Common.GetRandomValue(30, 60)),
                                         "PACKER");
                }
                else
                {
                    truck = new LVehicle(LPlayer.LocalPlayer.Ped.Position.Around(Common.GetRandomValue(100, 150)),
                                         "PACKER");
                }

                if (truck != null && truck.Exists())
                {
                    truckDriver = new LPed(truck.Position.Around(2f), "m_y_mechanic_02");
                }

                if (towedCar.Model.isBoat)
                {
                    Functions.PrintText("[TOW TRUCK] We can't tow a boat!", 4000);
                    truck.NoLongerNeeded();
                    truckDriver.NoLongerNeeded();
                    towTruckCalledOut = false;
                }
                else if (towedCar.Model.isHelicopter)
                {
                    Functions.PrintText("[TOW TRUCK] We can't tow a helicopter!", 4000);
                    truck.NoLongerNeeded();
                    truckDriver.NoLongerNeeded();
                    towTruckCalledOut = false;
                }
                else if (towedCar.Model.Hash == 2053223216 || towedCar.Model.Hash == 850991848 ||
                         towedCar.Model.Hash == 2307837162 || towedCar.Model.Hash == 3581397346 ||
                         towedCar.Model.Hash == 1938952078 || towedCar.Model.Hash == 1353720154 ||
                         towedCar.Model.Hash == 904750859 || towedCar.Model.Hash == 569305213)
                {
                    Functions.PrintText(
                        "[TOW TRUCK] We can't tow that, it's too big. Send an impound cop instead.", 4000);
                    truck.NoLongerNeeded();
                    truckDriver.NoLongerNeeded();
                    towTruckCalledOut = false;
                }
                else
                {
                    if (truck != null && truck.Exists())
                    {
                        if (truckDriver != null && truckDriver.Exists())
                        {
                            truck.PlaceOnNextStreetProperly();
                            if (World.GetClosestVehicle(truck.Position, 5f).Exists() &&
                                World.GetClosestVehicle(truck.Position, 5f) != truck)
                            {
                                truck.Heading = World.GetClosestVehicle(truck.Position, 5f).Heading;
                            }

                            truck.Extras(1).Enabled = false;
                            truck.Extras(2).Enabled = false;
                            truck.Extras(3).Enabled = false;
                            truck.Extras(4).Enabled = false;

                            truckDriver.WarpIntoVehicle(truck, VehicleSeat.Driver);
                            truck.AttachBlip().Color = BlipColor.Yellow;
                            DelayedCaller.Call(delegate
                            {
                                Functions.AddTextToTextwall("Affirmative, a removal truck has been dispatched",
                                                            "CONTROL");
                                towTruckCanCancel = true;
                                truckDriver.Task.DriveTo(LPlayer.LocalPlayer.Ped.Position, 20f, true, false);

                                GTA.Native.Function.Call("ADD_STUCK_CAR_CHECK",
                                                         new GTA.Native.Parameter[] { (Vehicle)truck, 2f, 12000 });
                                truckDriver.MakeProofTo(false, true, true, true, false);

                                TTStatus            = State.Responding;
                                towTruckTimer       = new GTA.Timer(1000);
                                towTruckTimer.Tick += TowTruck_Tick;
                                towTruckTimer.Start();
                            }, this, 100);
                        }
                        else
                        {
                            Functions.AddTextToTextwall("Negative we have no drivers available right now.",
                                                        "CONTROL");
                            truck.Delete();
                            towTruckCalledOut = false;
                        }
                    }
                    else
                    {
                        Functions.AddTextToTextwall("Negative at this time, we have no available trucks.", "CONTROL");
                        driver.Delete();
                        towTruckCalledOut = false;
                    }
                }
            }
            else
            {
                Functions.PrintText("There is no vehicle here, tow truck will not be sent", 4000);
                towTruckCalledOut = false;
            }
        }
Esempio n. 7
0
        //Function for requesting an ambulance for a single ped
        public void RequestMedic()
        {
            //Functions.AddTextToTextwall("I need a paramedic ASAP", "Officer " + LPlayer.LocalPlayer.Username);
            //LPlayer.LocalPlayer.Ped.PlayWalkieTalkieAnimation("");
            if (CalloutsPlusMain.QuickSpawnMethod)
            {
                ambulance = new LVehicle(LPlayer.LocalPlayer.Ped.Position.Around(Common.GetRandomValue(30, 60)),
                                         "AMBULANCE");
            }
            else
            {
                var ambulances        = World.GetAllVehicles("AMBULANCE");
                var selectedAmbulance = ambulances.FirstOrDefault();

                if (selectedAmbulance != null && selectedAmbulance.Exists())
                {
                    ambulance = LVehicle.FromGTAVehicle(selectedAmbulance);
                    //Functions.PrintText("Found an ambulance in the game already, using", 4000);
                    para1 = ambulance.GetPedOnSeat(VehicleSeat.Driver);
                    if (para1.Exists())
                    {
                        para1.Task.ClearAllImmediately();
                        Functions.SetPedIsOwnedByScript(para1, this, true);
                        para1.IsRequiredForMission     = true;
                        ambulance.IsRequiredForMission = true;
                        para1.Task.WarpIntoVehicle(ambulance, VehicleSeat.Driver);
                        DelayedCaller.Call(delegate
                        {
                            para1.Task.DriveTo(LPlayer.LocalPlayer.Ped.Position, 20f, false, false);
                            para1.Task.AlwaysKeepTask    = true;
                            para1.BlockPermanentEvents   = true;
                            ambulance.SirenActive        = true;
                            ambulance.AttachBlip().Color = BlipColor.Green;

                            Functions.AddTextToTextwall("A paramedic has been dispatched to your location, stand-by",
                                                        "CONTROL");
                            //Functions.PlaySoundUsingPosition("INS_I_NEED_A_MEDICAL_TEAM_FOR_ERRR", LPlayer.LocalPlayer.Ped.Position);
                            GTA.Native.Function.Call("ADD_STUCK_CAR_CHECK",
                                                     new GTA.Native.Parameter[] { (Vehicle)ambulance, 2f, 12000 });
                            paramedicCanCancel = true;
                            EMSStatus          = State.Responding;

                            medic = new AnimationSet("medic");

                            paramedicTimer = new GTA.Timer(1000);
                            paramedicTimer.Start();
                            paramedicTimer.Tick += (paramedic_Tick);
                        }, this, 2000);
                    }
                    else
                    {
                        para1 = ambulance.CreatePedOnSeat(VehicleSeat.Driver, "M_Y_PMEDIC");
                        para1.Task.ClearAllImmediately();
                        Functions.SetPedIsOwnedByScript(para1, this, true);
                        para1.Task.WarpIntoVehicle(ambulance, VehicleSeat.Driver);
                        DelayedCaller.Call(delegate
                        {
                            para1.Task.DriveTo(LPlayer.LocalPlayer.Ped.Position, 20f, false, false);
                            para1.Task.AlwaysKeepTask    = true;
                            para1.BlockPermanentEvents   = true;
                            ambulance.SirenActive        = true;
                            ambulance.AttachBlip().Color = BlipColor.Green;

                            Functions.AddTextToTextwall("A paramedic has been dispatched to your location, stand-by",
                                                        "CONTROL");
                            //Functions.PlaySoundUsingPosition("INS_I_NEED_A_MEDICAL_TEAM_FOR_ERRR", LPlayer.LocalPlayer.Ped.Position);
                            GTA.Native.Function.Call("ADD_STUCK_CAR_CHECK",
                                                     new GTA.Native.Parameter[] { (Vehicle)ambulance, 2f, 12000 });
                            paramedicCanCancel = true;
                            EMSStatus          = State.Responding;

                            medic = new AnimationSet("medic");

                            paramedicTimer = new GTA.Timer(1000);
                            paramedicTimer.Start();
                            paramedicTimer.Tick += (paramedic_Tick);
                        }, this, 2000);
                    }
                    if (ambulance.GetPedOnSeat(VehicleSeat.RightFront).Exists())
                    {
                        ambulance.GetPedOnSeat(VehicleSeat.RightFront).Delete();
                    }
                }
                else
                {
                    ambulance =
                        new LVehicle(
                            World.GetNextPositionOnStreet(
                                LPlayer.LocalPlayer.Ped.Position.Around(Common.GetRandomValue(100, 150))), "AMBULANCE");
                    if (ambulance.Exists())
                    {
                        ambulance.PlaceOnNextStreetProperly();
                        if (World.GetClosestVehicle(ambulance.Position, 5f).Exists() &&
                            World.GetClosestVehicle(ambulance.Position, 5f) != ambulance)
                        {
                            ambulance.Heading = World.GetClosestVehicle(ambulance.Position, 5f).Heading;
                        }
                        if (!para1.Exists())
                        {
                            para1 = new LPed(ambulance.Position.Around(5f), "M_Y_PMEDIC");

                            para1.Task.ClearAllImmediately();
                            Functions.SetPedIsOwnedByScript(para1, this, true);
                            para1.Task.WarpIntoVehicle(ambulance, VehicleSeat.Driver);
                            DelayedCaller.Call(delegate
                            {
                                para1.Task.DriveTo(LPlayer.LocalPlayer.Ped.Position, 20f, false, false);
                                para1.Task.AlwaysKeepTask    = true;
                                para1.BlockPermanentEvents   = true;
                                ambulance.SirenActive        = true;
                                ambulance.AttachBlip().Color = BlipColor.Green;

                                Functions.AddTextToTextwall(
                                    "A paramedic has been dispatched to your location, stand-by",
                                    "CONTROL");
                                //Functions.PlaySoundUsingPosition("INS_I_NEED_A_MEDICAL_TEAM_FOR_ERRR", LPlayer.LocalPlayer.Ped.Position);
                                GTA.Native.Function.Call("ADD_STUCK_CAR_CHECK",
                                                         new GTA.Native.Parameter[] { (Vehicle)ambulance, 2f, 12000 });
                                paramedicCanCancel = true;
                                EMSStatus          = State.Responding;

                                medic = new AnimationSet("medic");

                                paramedicTimer = new GTA.Timer(1000);
                                paramedicTimer.Start();
                                paramedicTimer.Tick += (paramedic_Tick);
                            }, this, 2000);
                        }
                    }
                }
            }
        }
Esempio n. 8
0
        //Function for requesting a removal cop team
        public void RequestRemoval()
        {
            Functions.AddTextToTextwall("Control, I need a unit to remove a vehicle for me.",
                                        "Officer " + LPlayer.LocalPlayer.Username);
            LPlayer.LocalPlayer.Ped.PlayWalkieTalkieAnimation("");
            removalCar = World.GetClosestVehicle(LPlayer.LocalPlayer.Ped.Position, 3.0f);
            if (removalCar != null && removalCar.Exists())
            {
                if (CalloutsPlusMain.QuickSpawnMethod)
                {
                    copCar = new LVehicle(LPlayer.LocalPlayer.Ped.Position.Around(Common.GetRandomValue(30, 60)),
                                          "POLICE");
                }
                else
                {
                    var copcars     = World.GetAllVehicles("POLICE");
                    var selectedCop = copcars.FirstOrDefault();
                    if (selectedCop != null && selectedCop.Exists())
                    {
                        dropOffDriver = LPed.FromGTAPed(selectedCop.GetPedOnSeat(VehicleSeat.Driver));
                        if (dropOffDriver.Exists())
                        {
                            if (!Functions.DoesPedHaveAnOwner(dropOffDriver))
                            {
                                Functions.SetPedIsOwnedByScript(dropOffDriver, this, true);
                                driver = LPed.FromGTAPed(selectedCop.GetPedOnSeat(VehicleSeat.RightFront));
                                if (!driver.Exists())
                                {
                                    driver =
                                        LPed.FromGTAPed(selectedCop.CreatePedOnSeat(VehicleSeat.RightFront, "M_Y_COP"));
                                }
                                Functions.SetPedIsOwnedByScript(driver, this, true);
                                copCar = LVehicle.FromGTAVehicle(selectedCop);
                                copCar.AttachBlip().Color = BlipColor.Green;
                                //Functions.PrintHelp("Selected a cop car already in existance~n~Distance: " + copCar.Position.DistanceTo2D(LPlayer.LocalPlayer.Ped.Position));
                            }
                            dropOffDriver.Task.DriveTo(LPlayer.LocalPlayer.Ped.Position, 20f, true, true);
                            removalTimer = new GTA.Timer(1000);
                            removalTimer.Start();
                            removalTimer.Tick += (removal_Tick);
                            RTStatus           = State.Responding;

                            GTA.Native.Function.Call("ADD_STUCK_CAR_CHECK",
                                                     new GTA.Native.Parameter[] { (Vehicle)copCar, 2f, 12000 });
                            Functions.AddTextToTextwall("Affirmative, a unit is on it's way stand by.", "CONTROL");
                            removalCanCancel = true;
                        }
                        else
                        {
                            Functions.AddTextToTextwall("We were unable to locate a unit available, please try again later.", "CONTROL");
                            removalCalledOut = false;
                            removalCanCancel = false;
                        }
                    }
                    else
                    {
                        copCar =
                            new LVehicle(
                                World.GetNextPositionOnStreet(
                                    LPlayer.LocalPlayer.Ped.Position.Around(Common.GetRandomValue(100, 150))), "POLICE");
                        copCar.PlaceOnNextStreetProperly();
                        if (World.GetClosestVehicle(copCar.Position, 5f).Exists() &&
                            World.GetClosestVehicle(copCar.Position, 5f) != copCar)
                        {
                            copCar.Heading = World.GetClosestVehicle(copCar.Position, 5f).Heading;
                        }

                        dropOffDriver = new LPed(copCar.Position.Around(5f), "M_Y_COP");
                        driver        = new LPed(copCar.Position.Around(5f), "M_Y_COP");
                        if (dropOffDriver.Exists() && driver.Exists())
                        {
                            dropOffDriver.WarpIntoVehicle(copCar, VehicleSeat.Driver);
                            driver.WarpIntoVehicle(copCar, VehicleSeat.RightFront);
                            copCar.AttachBlip().Color = BlipColor.Green;

                            dropOffDriver.Task.DriveTo(LPlayer.LocalPlayer.Ped.Position, 20f, true, true);
                            removalTimer = new GTA.Timer(1000);
                            removalTimer.Start();
                            removalTimer.Tick += (removal_Tick);
                            RTStatus           = State.Responding;

                            GTA.Native.Function.Call("ADD_STUCK_CAR_CHECK",
                                                     new GTA.Native.Parameter[] { (Vehicle)copCar, 2f, 12000 });
                            Functions.AddTextToTextwall("Affirmative, a unit is on it's way stand by.", "CONTROL");
                            removalCanCancel = true;
                        }
                        else
                        {
                            Functions.AddTextToTextwall("We lost contact with the unit, sorry", "CONTROL");
                            if (copCar.Exists())
                            {
                                copCar.AttachBlip().Delete();
                                copCar.Delete();
                            }

                            removalCalledOut = false;
                        }
                    }
                }
            }
            else
            {
                Functions.PrintText("There is no vehicle here!", 4000);
                removalCalledOut = false;
            }
        }