public BritishPersona(Ped _ped, LicenceTypes _LicenceType, LicenceStatuses _LicenceStatus, int _PenaltyPoints, bool _CarryingLicence) : this(_ped) { if (!_ped.Exists()) { AllBritishPersona.Remove(this); return; } foreach (BritishPersona pers in AllBritishPersona.ToArray()) { if (pers.ped == _ped && pers != this) { AllBritishPersona.Remove(pers); } } ped = _ped; if (ped.Exists()) { _LSPDFRPersona = Functions.GetPersonaForPed(ped); if (ped.IsInAnyVehicle(false)) { VehicleRecords.VerifyVehicleRecordsExist(ped.CurrentVehicle); } foreach (BritishPersona pers in AllBritishPersona.ToArray()) { if (pers.ped == ped && pers != this) { AllBritishPersona.Remove(pers); } } } LicenceType = _LicenceType; LicenceStatus = _LicenceStatus; PenaltyPoints = _PenaltyPoints; CarryingLicence = _CarryingLicence; }
/// <summary> /// Constructor that sets values based off the LSPDFR API /// </summary> /// <param name="_ped"></param> public BritishPersona(Ped _ped) : this(Functions.GetPersonaForPed(_ped)) { if (!_ped.Exists()) { Game.LogTrivial("PED DOESNT EXIST"); AllBritishPersona.Remove(this); return; } foreach (BritishPersona pers in AllBritishPersona.ToArray()) { if (pers.ped == _ped && pers != this) { AllBritishPersona.Remove(pers); } } ped = _ped; if (ped.Exists()) { _LSPDFRPersona = Functions.GetPersonaForPed(ped); if (ped.IsInAnyVehicle(false)) { VehicleRecords.VerifyVehicleRecordsExist(ped.CurrentVehicle); } foreach (BritishPersona pers in AllBritishPersona.ToArray()) { if (pers.ped == ped && pers != this) { AllBritishPersona.Remove(pers); } } } int roll = EntryPoint.rnd.Next(10); if (roll < 6) { LicenceType = LicenceTypes.Full; } else { //If ped is driving a vehicle with a passenger if (_ped.IsInAnyVehicle(false)) { if (_ped.CurrentVehicle.Driver == _ped) { if (!_ped.CurrentVehicle.IsSeatFree(0)) { if (EntryPoint.rnd.Next(4) < 3) { LicenceType = LicenceTypes.Provisional; } else { LicenceType = LicenceTypes.None; } } } } else { roll = EntryPoint.rnd.Next(4); if (roll < 2) { LicenceType = LicenceTypes.Provisional; } else { LicenceType = LicenceTypes.None; } } } FullyCompInsured = EntryPoint.rnd.Next(8) == 0; int Citations = LSPDFRPersona.Citations; PenaltyPoints = Citations * 3; if (LSPDFRPersona.ELicenseState == ELicenseState.Valid) { LicenceStatus = LicenceStatuses.Valid; } else if (LSPDFRPersona.ELicenseState == ELicenseState.Suspended) { if (EntryPoint.rnd.Next(6) < 4) { LicenceStatus = LicenceStatuses.Disqualified; } else { LicenceStatus = LicenceStatuses.Revoked; } } else if (LSPDFRPersona.ELicenseState == ELicenseState.Expired) { LicenceStatus = LicenceStatuses.Expired; } else { LicenceStatus = LicenceStatuses.Valid; } if (LicenceStatus == LicenceStatuses.Disqualified || LicenceStatus == LicenceStatuses.Revoked || LicenceType == LicenceTypes.None) { CarryingLicence = false; } else { CarryingLicence = EntryPoint.rnd.Next(6) < 4; } }