private API.ALPRScanResult CreateLicExpiredResult(Vehicle veh) { API.ALPRScanResult r = new API.ALPRScanResult(veh, EAlertType.Owner_License_Expired); string mRegisteredOwner = ""; r.Persona = CreatePersona(veh, ELicenseState.Expired, false, out mRegisteredOwner, true); r.RegisteredOwner = mRegisteredOwner; return(r); }
private API.ALPRScanResult CreateWantedResult(Vehicle veh) { API.ALPRScanResult r = new API.ALPRScanResult(veh, EAlertType.Owner_Wanted); string mRegisteredOwner = ""; r.Persona = CreatePersona(veh, ELicenseState.Valid, true, out mRegisteredOwner); r.RegisteredOwner = mRegisteredOwner; return(r); }
private API.ALPRScanResult CreateStolenVehResult(Vehicle veh) { API.ALPRScanResult r = new API.ALPRScanResult(veh, EAlertType.Stolen_Vehicle); string mRegisteredOwner = ""; r.Persona = CreatePersona(veh, ELicenseState.Suspended, true, out mRegisteredOwner, false, false); r.RegisteredOwner = mRegisteredOwner; veh.IsStolen = true; return(r); }
private API.ALPRScanResult CreateInsExpiredResult(Vehicle veh) { API.ALPRScanResult r = new API.ALPRScanResult(veh, EAlertType.Insurance_Expired); string mRegisteredOwner = ""; r.Persona = CreatePersona(veh, ELicenseState.Valid, false, out mRegisteredOwner); r.RegisteredOwner = mRegisteredOwner; if (Funcs.IsTrafficPolicerRunning()) { TrafficPolicer.SetVehicleRegistrationStatus(veh, EVehicleStatus.Valid); TrafficPolicer.SetVehicleInsuranceStatus(veh, EVehicleStatus.Expired); } return(r); }
private API.ALPRScanResult CreateRegNotValidResult(Vehicle veh) { API.ALPRScanResult r = new API.ALPRScanResult(veh, EAlertType.Unregistered_Vehicle); string mRegisteredOwner = ""; r.Persona = CreatePersona(veh, ELicenseState.Valid, false, out mRegisteredOwner); r.RegisteredOwner = "UNREGISTERED"; Functions.SetVehicleOwnerName(veh, "UNREGISTERED"); if (Funcs.IsTrafficPolicerRunning()) { TrafficPolicer.SetVehicleRegistrationStatus(veh, EVehicleStatus.None); TrafficPolicer.SetVehicleInsuranceStatus(veh, EVehicleStatus.None); } return(r); }
private API.ALPRScanResult CreateScanResult(Vehicle veh, EAlertType alert, ECamera cam) { API.ALPRScanResult r = null; switch (alert) { case EAlertType.Stolen_Vehicle: r = CreateStolenVehResult(veh); break; case EAlertType.Owner_Wanted: r = CreateWantedResult(veh); break; case EAlertType.Owner_License_Suspended: r = CreateLicSuspendedResult(veh); break; case EAlertType.Owner_License_Expired: r = CreateLicExpiredResult(veh); break; case EAlertType.Registration_Expired: r = CreateRegExpiredResult(veh); break; case EAlertType.Unregistered_Vehicle: r = CreateRegNotValidResult(veh); break; case EAlertType.No_Insurance: r = CreateInsNotValidResult(veh); break; case EAlertType.Insurance_Expired: r = CreateInsExpiredResult(veh); break; } API.Functions.RaiseALPRFlagGenerated(veh, new ALPREventArgs(r, cam)); return(r); }
private bool RunVehiclePlates(Vehicle veh, ECamera cam) { if (veh.Exists() && !IsVehicleBlacklisted(veh)) { if (!mRecentlyScanned.ContainsKey(veh)) { mRecentlyScanned.Add(veh, Game.GameTime); if (Config.PlayScanSound) { Audio.PlaySound(Audio.ESounds.PinButton); //GameFiber.Sleep(500); } if (Globals.ScanResults.Keys.Contains(veh)) { TimeSpan ts = DateTime.Now - Globals.ScanResults[veh].LastDisplayed; if (ts.TotalSeconds < Config.VehicleRescanBuffer) { return(false); } EAlertType mPrevAlert = Globals.ScanResults[veh].AlertType; if (mPrevAlert != EAlertType.Null) { DisplayAlert(veh, cam, Globals.ScanResults[veh]); return(true); } else { if (Globals.ScanResults[veh].IsCustomFlag == true && Globals.ScanResults[veh].Result != "") { DisplayAlert(veh, cam, Globals.ScanResults[veh]); return(true); } } return(false); } else { int mAlertFactor = mRand.Next(0, 100); if (mAlertFactor < Config.ProbabilityOfAlerts) { EAlertType mGeneratedFlag = GenerateFlag(veh); if (mGeneratedFlag != EAlertType.Null) { API.ALPRScanResult r = CreateScanResult(veh, mGeneratedFlag, cam); DisplayAlert(veh, cam, r); return(true); } else { if (!Globals.ScanResults.ContainsKey(veh)) { API.ALPRScanResult r = new API.ALPRScanResult(veh, EAlertType.Null); Globals.ScanResults.Add(veh, r); return(false); } } } else { if (!Globals.ScanResults.ContainsKey(veh)) { API.ALPRScanResult r = new API.ALPRScanResult(veh, EAlertType.Null); Globals.ScanResults.Add(veh, r); return(false); } } return(false); } } } return(false); }
private void DisplayAlert(Vehicle veh, ECamera cam, API.ALPRScanResult r) { if (veh.Exists()) { if (r.AlertType == EAlertType.Null) { return; } r.LastDisplayed = DateTime.Now; if (!Globals.ScanResults.ContainsKey(veh)) { Globals.ScanResults.Add(veh, r); } else { Globals.ScanResults[veh].LastDisplayed = DateTime.Now; } if (r.Persona != null) { if (veh.HasDriver && veh.Driver.Exists()) { Logger.LogTrivialDebug(String.Format("DisplayAlert() -- Setting Persona for driver (lic: {0}), (name: {1})", veh.LicensePlate, r.Persona.FullName)); Functions.SetPersonaForPed(veh.Driver, r.Persona); } } if (r.RegisteredOwner != "") { Functions.SetVehicleOwnerName(veh, r.RegisteredOwner); } string subtitle = ""; switch (r.AlertType) { case EAlertType.Stolen_Vehicle: subtitle = "~r~Stolen Vehicle"; break; case EAlertType.Owner_Wanted: subtitle = "~r~Outstanding Warrant"; break; case EAlertType.Owner_License_Suspended: subtitle = "~r~License Suspended"; break; case EAlertType.Owner_License_Expired: subtitle = "~y~License Expired"; break; case EAlertType.Registration_Expired: subtitle = "~y~Registration Expired"; break; case EAlertType.Unregistered_Vehicle: subtitle = "~r~Unregistered Vehicle"; break; case EAlertType.No_Insurance: subtitle = "~r~No Insurance"; break; case EAlertType.Insurance_Expired: subtitle = "~y~Insurance Expired"; break; } if (r.IsCustomFlag) { subtitle = r.Result; } string mColorName = ""; try { VehicleColor mColor = Stealth.Common.Natives.Vehicles.GetVehicleColors(veh); mColorName = mColor.PrimaryColorName; } catch { mColorName = ""; } if (mColorName != "") { mColorName = mColorName + " "; } string mTitle = String.Format("ALPR+ [{0}]", GetCameraName(cam)); string mVehModel = String.Format("{0}{1}", veh.Model.Name.Substring(0, 1).ToUpper(), veh.Model.Name.Substring(1).ToLower()); string mText = String.Format("Plate: ~b~{0} ~n~~w~{1}{2}", veh.LicensePlate, mColorName, mVehModel); Funcs.DisplayNotification(mTitle, subtitle, mText); if (Config.PlayAlertSound) { Audio.PlaySound(Audio.ESounds.TimerStop); } API.Functions.RaiseALPRResultDisplayed(veh, new ALPREventArgs(r, cam)); } }