public override void Process() { if (!dead && officer.IsDead) { dead = true; ScannerHelper.DisplayDispatchDialogue("Dispatch", "Officer down. ~r~Respond with code 99~s~."); Functions.PlayScannerAudioUsingPosition("ATTENTION_ALL_UNITS WE_HAVE CRIME_OFFICER_DOWN IN_OR_ON_POSITION", officer.Position); } if (!suspect.Exists() || suspect.IsDeadOrDetained()) { End(); } }
public override void Process() { /* Archival * 2020/6/29 20:48 - Fix "InvalidHandleableException" causing whole LSPDFR to crash. * Add crash prevention system. */ base.Process(); try { if (!suspect.Exists() && !suspectCar.Exists()) { Game.LogTrivial("[Dangerous Driver/HotCallouts] Forced ending Dangerous Driver because suspect or suspect's car does not exist."); ScannerHelper.ReportNormalCode4("Dangerous Driving"); End(); return; } if (!pursuited && Functions.IsPedInPursuit(suspect)) { pursuited = true; Game.LogTrivial("[Dangerous Driver/HotCallouts] Fleeing > suspect"); ScannerHelper.DisplayDispatchDialogue("Dispatch", "suspect fleeing."); currentPursuit = Functions.GetActivePursuit(); } if (!(!pursuited || currentPursuit == null || !Functions.IsPursuitStillRunning(currentPursuit))) { pursuited = false; ScannerHelper.DisplayDispatchDialogue("Dispatch", "The pursuit has ~g~concluded~s~."); } if (Game.IsKeyDown(Keys.End)) { Game.LogTrivial("[Dangerous Driver/HotCallouts] End > Dangerous Driving"); ScannerHelper.ReportNormalCode4("Dangerous Driving"); End(); } } catch (Exception ex) { End(); Game.DisplayNotification("The callout <b>Dangerous Driver</b> was encountered error and must exit."); Game.DisplayNotification("Check log file for more details."); Game.LogTrivial("HotCallouts: exception: " + ex.GetType().Name); Game.LogTrivial("HotCallouts: message: " + ex.Message); Game.LogTrivial("HotCallouts: trace: \r\n" + ex.StackTrace); } }
public override void Process() { if (!approach && Game.LocalPlayer.Character.Position.DistanceTo2D(suspect.Position) <= 10f) { approach = true; Game.LogTrivialDebug("HotCallout Debug: DistanceTo2D cycle has <= 10f"); Game.DisplaySubtitle("Pull the ~r~suspect~s~ over."); ScannerHelper.DisplayDispatchDialogue("You", "I have the suspect in sight."); ScannerHelper.DisplayDispatchDialogue("Dispatch", "10-4. Perform traffic stop."); } if (approach && Game.IsKeyDown(Keys.End)) { Game.LogTrivialDebug("HotCallout Debug: User End"); End(); } base.Process(); }
public override void Process() { base.Process(); if (!approach && Game.LocalPlayer.Character.Position.DistanceTo(suspect) < 30f) { approach = true; Game.DisplayHelp("Perform a traffic stop to target " + suspectVehicle.Model.Name + "."); } /* * if(!pursuited && Game.LocalPlayer.Character.Position.DistanceTo(suspect) < 30f) * { * pursuit = Functions.CreatePursuit(); * Functions.AddPedToPursuit(pursuit, suspect); * Functions.SetPursuitIsActiveForPlayer(pursuit, true); * pursuited = true; * ScannerHelper.DisplayDispatchDialogue("You", "To dispatch, suspect fleeing."); * ScannerHelper.DisplayDispatchDialogue("Dispatch", "Affirmtive, suspect plate " + suspectVehicle.LicensePlate.ToUpper() + ", vehicle " + suspectVehicle.Model.Name); * Functions.RequestBackup(suspect.Position, LSPD_First_Response.EBackupResponseType.Pursuit, LSPD_First_Response.EBackupUnitType.LocalUnit); * } * * if(pursuited && !Functions.IsPursuitStillRunning(pursuit)) * { * PedHelper.DeclareSubjectStatus(suspect); * End(); * } */ if (!inPursuit && Functions.IsPedInPursuit(suspect)) { inPursuit = true; ScannerHelper.DisplayDispatchDialogue("You", "To dispatch, suspect fleeing."); } if (!suspect.Exists() || suspect.IsDead || Functions.IsPedArrested(suspect)) { PedHelper.DeclareSubjectStatus(suspect); End(); } }
public override void Process() { base.Process(); if (!pursuited && Game.LocalPlayer.Character.Position.DistanceTo2D(suspect) <= 10f) { pursuited = true; blip.Delete(); pursuit = Functions.CreatePursuit(); Functions.AddPedToPursuit(pursuit, suspect); Functions.AddPedToPursuit(pursuit, prisoner); Functions.SetPursuitIsActiveForPlayer(pursuit, true); Functions.RequestBackup(suspect.Position, LSPD_First_Response.EBackupResponseType.Pursuit, LSPD_First_Response.EBackupUnitType.AirUnit); Functions.RequestBackup(suspect.Position, LSPD_First_Response.EBackupResponseType.Pursuit, LSPD_First_Response.EBackupUnitType.LocalUnit); ScannerHelper.DisplayDispatchDialogue("Dispatch", "Suspect fleeing. Sending backup and air unit."); } if (pursuited && pursuit != null && !Functions.IsPursuitStillRunning(pursuit)) { ScannerHelper.DisplayDispatchDialogue("Dispatch", "We are code 4 on Escaping Prisoner."); End(); } }
public override void End() { if (!approach && start) { Game.LogTrivial("HotCallout Warning: The End does not seems like user has opreated because user dident even approach the suspect."); Game.LogTrivial("HotCallout Warning: This normally triggered by LSPDFR becuase error on methods or ended by external plugin."); CommonHelper.DeclareUnexceptedEnd(CalloutMessage); } else if (start) { ScannerHelper.DisplayDispatchDialogue("Dispatch", $"Officer reporting, we're code 4 on <b>{CalloutMessage}</b>."); } if (suspect.Exists()) { suspect.Dismiss(); } if (suspectCar.Exists()) { suspectCar.Dismiss(); } base.End(); }