/// <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)); }
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(); } }); }
/// <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(); } } }); }