Ejemplo n.º 1
0
 /// <summary>
 /// Returns true if ped has cocaine or cannabis in their system.
 /// </summary>
 /// <param name="ped"></param>
 /// <returns></returns>
 public static bool DoesPedHaveDrugsInSystem(Ped ped)
 {
     return(DrugTestKit.DoesPedHaveDrugsInSystem(ped));
 }
Ejemplo n.º 2
0
        protected override void MainLogic()
        {
            eventRunning = true;

            int randomNumber = TrafficPolicerHandler.rnd.Next(3);

            switch (randomNumber)
            {
            case 0:
                DrugTestKit.SetPedDrugsLevels(driver, DrugsLevels.POSITIVE, DrugsLevels.POSITIVE);
                break;

            case 1:
                DrugTestKit.SetPedDrugsLevels(driver, DrugsLevels.NEGATIVE, DrugsLevels.POSITIVE);
                break;

            case 2:
                DrugTestKit.SetPedDrugsLevels(driver, DrugsLevels.POSITIVE, DrugsLevels.NEGATIVE);
                break;
            }



            AmbientEventMainFiber = GameFiber.StartNew(delegate
            {
                try
                {
                    //timeOut = timeOut * 1000;
                    AnimationSet drunkAnimset = new AnimationSet("move_m@drunk@verydrunk");
                    drunkAnimset.LoadAndWait();
                    driver.MovementAnimationSet = drunkAnimset;


                    Rage.Native.NativeFunction.Natives.SET_PED_IS_DRUNK(driver, true);

                    speed = car.Speed;
                    speed = speed - 1f;
                    if (speed <= 12f)
                    {
                        speed = 12.1f;
                    }

                    driver.Tasks.CruiseWithVehicle(car, speed, (VehicleDrivingFlags.FollowTraffic | VehicleDrivingFlags.YieldToCrossingPedestrians));
                    DrivingStyleFiber = GameFiber.StartNew(delegate
                    {
                        while (eventRunning)
                        {
                            Rage.Native.NativeFunction.Natives.SET_DRIVE_TASK_DRIVING_STYLE(driver, 786603);
                            GameFiber.Yield();
                        }
                    });
                    while (eventRunning)
                    {
                        driver.Tasks.PerformDrivingManeuver(VehicleManeuver.SwerveRight);
                        GameFiber.Sleep(250);
                        driver.Tasks.PerformDrivingManeuver(VehicleManeuver.SwerveLeft);
                        GameFiber.Sleep(500);
                        driver.Tasks.PerformDrivingManeuver(VehicleManeuver.SwerveRight);
                        GameFiber.Sleep(600);
                        driver.Tasks.CruiseWithVehicle(car, speed, (VehicleDrivingFlags.FollowTraffic | VehicleDrivingFlags.YieldToCrossingPedestrians));


                        GameFiber.Sleep(4500);
                        if (Functions.IsPlayerPerformingPullover())
                        {
                            eventRunning       = false;
                            performingPullover = true;
                            break;
                        }
                        if (Vector3.Distance(Game.LocalPlayer.Character.Position, driver.Position) > 300f)
                        {
                            eventRunning = false;

                            break;
                        }
                    }
                }
                catch (Exception e)
                {
                    eventRunning = false;
                    if (driver.Exists())
                    {
                        driver.Dismiss();
                    }
                    if (driverBlip.Exists())
                    {
                        driverBlip.Delete();
                    }
                }
                finally
                {
                    End();
                }
            });
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Sets the drug levels for the ped. Used by Traffic Policer's Drugalyzer.
 /// </summary>
 /// <param name="ped"></param>
 /// <param name="Cannabis"></param>
 /// <param name="Cocaine"></param>
 public static void SetPedDrugsLevels(Ped ped, bool Cannabis, bool Cocaine)
 {
     DrugTestKit.SetPedDrugsLevels(ped, Cannabis, Cocaine);
 }
        private void SituationDrugs()
        {
            GameFiber.StartNew(delegate
            {
                try
                {
                    int randomNumber = TrafficPolicerHandler.rnd.Next(3);

                    switch (randomNumber)
                    {
                    case 0:
                        DrugTestKit.SetPedDrugsLevels(driver, DrugsLevels.POSITIVE, DrugsLevels.POSITIVE);
                        break;

                    case 1:
                        DrugTestKit.SetPedDrugsLevels(driver, DrugsLevels.NEGATIVE, DrugsLevels.POSITIVE);
                        break;

                    case 2:
                        DrugTestKit.SetPedDrugsLevels(driver, DrugsLevels.POSITIVE, DrugsLevels.NEGATIVE);
                        break;
                    }
                    beforeTrafficStopDrive();
                    //Game.DisplayNotification("3dtextures", "mpgroundlogo_cops", "Traffic Policer", "DUI", "Test the person for illegal substances. If);

                    while (CalloutRunning)
                    {
                        GameFiber.Yield();
                        if (Vector3.Distance(Game.LocalPlayer.Character.Position, car.Position) < 4.5f && !Game.LocalPlayer.Character.IsInAnyVehicle(false))
                        {
                            if (TrafficPolicerHandler.rnd.Next(5) == 0 && Functions.GetActivePursuit() == null)
                            {
                                Pursuit = Functions.CreatePursuit();
                                Functions.AddPedToPursuit(Pursuit, driver);
                                Functions.SetPursuitIsActiveForPlayer(Pursuit, true);
                                Functions.ForceEndCurrentPullover();
                                PursuitCreated = true;
                            }

                            break;
                        }
                        if (Functions.GetActivePursuit() != null)
                        {
                            if (Functions.GetPursuitPeds(Functions.GetActivePursuit()).Contains(driver))
                            {
                                Pursuit        = Functions.GetActivePursuit();
                                PursuitCreated = true;
                                break;
                            }
                        }
                    }
                    while (CalloutRunning)
                    {
                        GameFiber.Yield();
                        if (!driver.Exists())
                        {
                            break;
                        }
                        else if (Functions.IsPedArrested(driver))
                        {
                            break;
                        }
                        else if (driver.IsDead)
                        {
                            break;
                        }
                        else if (PursuitCreated)
                        {
                            if (Functions.GetActivePursuit() == null)
                            {
                                break;
                            }
                        }
                    }
                    DisplayCodeFourMessage();
                }
                catch (System.Threading.ThreadAbortException e)
                {
                    End();
                }

                catch (Exception e)
                {
                    if (CalloutRunning)
                    {
                        Game.LogTrivial(e.ToString());
                        Game.LogTrivial("Traffic Policer handled the exception successfully.");
                        Game.DisplayNotification("~O~DUI ~s~callout crashed, sorry. Please send me your log file.");
                        Game.DisplayNotification("Full LSPDFR crash prevented ~g~successfully.");
                        End();
                    }
                }
            });
        }