public void ShowReg(Player player, string target) { var targetPlayer = PlayerManager.ParseClient(target); if (targetPlayer == null) { NAPI.Chat.SendChatMessageToPlayer(player, "That player is not online."); return; } var c = player.GetCharacter(); if (!c.OwnedVehicles.Any(x => x.IsRegistered)) { NAPI.Chat.SendChatMessageToPlayer(player, "You don't have any registered vehicles."); return; } if (targetPlayer.Position.DistanceTo(player.Position) > 3.0) { NAPI.Chat.SendChatMessageToPlayer(player, "The player must be near you."); return; } NAPI.Chat.SendChatMessageToPlayer(targetPlayer, $" [************** Vehicles Of {c.rp_name()} **************]"); foreach (var veh in c.OwnedVehicles.Where(x => x.IsRegistered)) { NAPI.Chat.SendChatMessageToPlayer(targetPlayer, $"* Model: {VehicleOwnership.returnCorrDisplayName(veh.VehModel)} | Registration: {veh.LicensePlate}"); } NAPI.Chat.SendChatMessageToPlayer(targetPlayer, " [**********************************************************]"); ChatManager.RoleplayMessage(player, "shows his vehicle registrations to " + targetPlayer.GetCharacter().rp_name(), ChatManager.RoleplayMe); }
private void BindVehicleOwnership() { DropDownListVehicleOwnership.ClearSelection(); DropDownListVehicleOwnership.DataSource = VehicleOwnership.GetVehicleOwnershipList(); DropDownListVehicleOwnership.DataTextField = "Description"; DropDownListVehicleOwnership.DataValueField = "VehicleOwnershipId"; DropDownListVehicleOwnership.DataBind(); DropDownListVehicleOwnership.Items.Insert(0, new ListItem("Please select", "0")); }
private float GetPlayerToCarDistance(PlayerSession owner, VehicleOwnership VO) { if (owner?.WorldPlayerEntity?.transform?.position == null) { return(float.MaxValue); } Vector3 playerPos = owner.WorldPlayerEntity.transform.position; if (VO?.StatManager?.transform?.position == null) { return(float.MaxValue); } Vector3 vehiclePos = VO.StatManager.transform.position; return(Vector3.Distance(playerPos, vehiclePos)); }
public void MDCSearchForVehicle(Client player, params object[] arguments) { var lic = (string)arguments[0]; vehicle_manager.GameVehicle veh = VehicleManager.Vehicles.FirstOrDefault(x => x.LicensePlate == lic) ?? DatabaseManager.VehicleTable.Find(x => x.LicensePlate == lic) .FirstOrDefault(); if (veh == null) { NAPI.ClientEvent.TriggerClientEvent(player, "MDC_SHOW_VEHICLE_INFO", "", ""); return; } NAPI.ClientEvent.TriggerClientEvent(player, "MDC_SHOW_VEHICLE_INFO", VehicleOwnership.returnCorrDisplayName(veh.VehModel), veh.OwnerName, API.GetVehicleClassName(API.GetVehicleClass(veh.VehModel))); }
public void DMVRegisterVehicle(Player player, params object[] arguments) { var prop = PropertyManager.IsAtPropertyInteraction(player); if (prop?.Type != PropertyManager.PropertyTypes.DMV) { NAPI.Chat.SendChatMessageToPlayer(player, "You need to be at a DMV."); return; } var c = player.GetCharacter(); if (InventoryManager.DoesInventoryHaveItem <IdentificationItem>(c).Length == 0) { NAPI.Chat.SendChatMessageToPlayer(player, "You must have a valid identification."); return; } if (InventoryManager.DoesInventoryHaveItem <DrivingLicenseItem>(c).Length == 0) { NAPI.Chat.SendChatMessageToPlayer(player, "You must have a valid driving license."); return; } int vehid = Convert.ToInt32(arguments[0]); if (!c.OwnedVehicles.Exists(x => x.Id == vehid)) { NAPI.Chat.SendChatMessageToPlayer(player, "You don't own that vehicle!!!"); return; } var veh = VehicleManager.Vehicles.FirstOrDefault(x => x.Id == vehid); if (veh == null || veh.OwnerId != c.Id) { NAPI.Chat.SendChatMessageToPlayer(player, "You don't own that vehicle!!!"); return; } if (veh.IsRegistered) { NAPI.Chat.SendChatMessageToPlayer(player, "Vehicle is already registered!!!"); return; } if (Money.GetCharacterMoney(c) < 100) { NAPI.Chat.SendChatMessageToPlayer(player, "You need $100 to register your vehicle."); return; } //Set License Plate. veh.LicensePlate = GetValidLicensePlate(); veh.IsRegistered = true; if (veh.IsSpawned) { API.SetVehicleNumberPlate(veh.Entity, veh.LicensePlate); } //Remove money. InventoryManager.DeleteInventoryItem <Money>(c, 100); NAPI.Chat.SendChatMessageToPlayer(player, $"You've successfully registered your {VehicleOwnership.returnCorrDisplayName(veh.VehModel)}. License: {veh.LicensePlate}"); veh.Save(); }
public void RegisterVehicle(Player player) { var prop = PropertyManager.IsAtPropertyInteraction(player); if (prop?.Type != PropertyManager.PropertyTypes.DMV) { NAPI.Chat.SendChatMessageToPlayer(player, "You need to be at a DMV."); return; } var c = player.GetCharacter(); if (InventoryManager.DoesInventoryHaveItem <IdentificationItem>(c).Length == 0) { NAPI.Chat.SendChatMessageToPlayer(player, "You must have a valid identification."); return; } if (InventoryManager.DoesInventoryHaveItem <DrivingLicenseItem>(c).Length == 0) { NAPI.Chat.SendChatMessageToPlayer(player, "You must have a valid driving license."); return; } string[][] vehList = c.OwnedVehicles.Where(x => x.IsRegistered == false).Select(x => new[] { VehicleOwnership.returnCorrDisplayName(x.VehModel), x.Id.ToString() }).ToArray(); NAPI.ClientEvent.TriggerClientEvent(player, "DMV_SELECTVEHICLE", NAPI.Util.ToJson(vehList)); }
public void MDCSearchForCitizen(Client player, params object[] arguments) { var name = (string)arguments[0]; var phone = (string)arguments[1]; //First if online. Character foundPlayer = null; foreach (var playerfound in PlayerManager.Players) { if (playerfound == null) { continue; } if (playerfound.CharacterName == name) { foundPlayer = playerfound; break; } } if (foundPlayer == null) { foundPlayer = PhoneManager.GetPlayerWithNumber(phone); } if (foundPlayer == null) { var filter = Builders <Character> .Filter.Eq(x => x.CharacterName, name) | (Builders <Character> .Filter.Eq("Inventory.PhoneNumber", phone)); //Not online.. check DB. var found = DatabaseManager.CharacterTable.Find(filter); if (found.Any()) { foundPlayer = found.First(); } } //If still NULL if (foundPlayer == null) { NAPI.ClientEvent.TriggerClientEvent(player, "MDC_SHOW_CITIZEN_INFO", "", "", "", "", ""); return; } //GET VEHICLES. var vehicles = DatabaseManager.VehicleTable.Find(x => x.OwnerId == foundPlayer.Id).ToList(); var vehiclesList = vehicles.Where(x => x.IsRegistered).Select(x => new[] { VehicleOwnership.returnCorrDisplayName(x.VehModel), x.LicensePlate }).ToArray(); //Get amount of crimes. var amountOfPages = Math.Floor((foundPlayer.GetCrimesNumber() + 9d) / 10d); var crimes = GetCrimeArray(foundPlayer); //Store character. player.SetData("MDC_LAST_CHECKED", foundPlayer); //Send Event NAPI.ClientEvent.TriggerClientEvent(player, "MDC_SHOW_CITIZEN_INFO", foundPlayer.rp_name(), foundPlayer.Birthday, NAPI.Util.ToJson(vehiclesList), NAPI.Util.ToJson(crimes), amountOfPages); }
void VehicleManagerCommand(PlayerSession session, string command, string[] args) { string steamId = session.SteamId.ToString(); //Check for permission to use the plugin if (!permission.UserHasPermission(steamId, UsePermission)) { Player.Message(session, GetMsg("NoPermission", steamId).Replace("{permission}", UsePermission)); return; } //Get all claimed vehicles from player if (args.Length == 0) { if (!showDistanceCommand) { Player.Message(session, GetMsg("VehicleDistanceDisabled", steamId)); } else { DoVehicleDistance(session); } return; } //Display help command string cmd = args[0].ToLower(); if (args.Length == 1 && cmd == "help" || cmd == "h") { DoHelpMessage(session); return; } // /car install/remove commands if (args.Length == 2 && (cmd == "install" || cmd == "remove")) { VehicleOwnership vehicleOwnership = GetClosesVehicle(session); if (vehicleOwnership == null) { Player.Message(session, "Something weird happend..."); return; } if (vehicleOwnership?.StatManager?.GetComponent <VehicleBase>() == null) { Player.Message(session, GetMsg("NotInsideVehicle", steamId)); return; } VehicleBase vehicleBase = vehicleOwnership.StatManager.GetComponent <VehicleBase>(); VehiclePassenger[] vehiclePassengers = vehicleBase.GetPassengers(); if (vehiclePassengers.Count() < 0 || vehiclePassengers == null || !PlayerInsideVehicle(vehiclePassengers, session)) { Player.Message(session, GetMsg("NotInsideVehicle", steamId)); return; } VehicleInventory vehicleInventory = vehicleBase.GetComponent <VehicleInventory>(); if (vehicleInventory == null) { Player.Message(session, "Something weird happened, try again!"); return; } if (vehicleOwnership.GetOwner() != null && vehicleOwnership.GetOwner() != session.Identity) { Player.Message(session, GetMsg("NotVehicleOwner", steamId)); return; } string vehicleType = vehicleOwnership.VehicleType; vehicleType = vehicleType?.Split('/')?[1]?.ToLower(); if (vehicleType == null) { vehicleType = "unknown"; } if (cmd == "install") { DoInstall(session, args, vehicleType, vehicleInventory); return; } if (cmd == "remove") { DoRemove(session, args, vehicleType, vehicleInventory, vehiclePassengers); return; } return; } Player.Message(session, GetMsg("HelpCommand", steamId)); }
private void MDC_onClientEventTrigger(Client player, string eventName, params object[] arguments) { switch (eventName) { case "server_updateMdcAnnouncement": { break; } case "server_removeBolo": { ActiveBolos.RemoveAt((int)arguments[0]); API.SendChatMessageToPlayer(player, "You removed Bolo # " + (int)arguments[0]); break; } case "server_createBolo": { Character character = player.GetCharacter(); var newBolo = new Bolo(character.CharacterName, Convert.ToInt32(arguments[1]), Convert.ToString(arguments[0])); ActiveBolos.Add(newBolo); newBolo.Id = ActiveBolos.IndexOf(newBolo); foreach (var c in PlayerManager.Players) { if (c.IsViewingMdc) { SendBoloToClient(c.Client, newBolo); } } API.SendChatMessageToPlayer(player, "Successfully submitted Bolo #" + newBolo.Id); break; } case "requestMdcInformation": { SendAll911ToClient(player); SendAllBoloToClient(player); break; } case "server_mdc_close": { var character = player.GetCharacter(); ChatManager.RoleplayMessage(character, "logs off of the MDC.", ChatManager.RoleplayMe); character.IsViewingMdc = false; break; } case "MDC_SearchForCitizen": { var name = (string)arguments[0]; var phone = (string)arguments[1]; //First if online. Character foundPlayer = null; foreach (var playerfound in PlayerManager.Players) { if (playerfound == null) { continue; } if (playerfound.CharacterName == name) { foundPlayer = playerfound; break; } } if (foundPlayer == null) { foundPlayer = PhoneManager.GetPlayerWithNumber(phone); } if (foundPlayer == null) { var filter = Builders <Character> .Filter.Eq(x => x.CharacterName, name) | (Builders <Character> .Filter.Eq("Inventory.PhoneNumber", phone)); //Not online.. check DB. var found = DatabaseManager.CharacterTable.Find(filter); if (found.Any()) { foundPlayer = found.First(); } } //If still NULL if (foundPlayer == null) { API.TriggerClientEvent(player, "MDC_SHOW_CITIZEN_INFO", "", "", "", "", ""); return; } //GET VEHICLES. var vehicles = DatabaseManager.VehicleTable.Find(x => x.OwnerId == foundPlayer.Id).ToList(); var vehiclesList = vehicles.Where(x => x.IsRegistered).Select(x => new[] { VehicleOwnership.returnCorrDisplayName(x.VehModel), x.LicensePlate }).ToArray(); //Get amount of crimes. var amountOfPages = Math.Floor((foundPlayer.GetCrimesNumber() + 9d) / 10d); var crimes = GetCrimeArray(foundPlayer); //Store character. player.setData("MDC_LAST_CHECKED", foundPlayer); //Send Event API.TriggerClientEvent(player, "MDC_SHOW_CITIZEN_INFO", foundPlayer.rp_name(), foundPlayer.Birthday, API.ToJson(vehiclesList), API.ToJson(crimes), amountOfPages); break; } case "MDC_SearchForVehicle": { var lic = (string)arguments[0]; vehicle_manager.Vehicle veh = VehicleManager.Vehicles.FirstOrDefault(x => x.LicensePlate == lic) ?? DatabaseManager.VehicleTable.Find(x => x.LicensePlate == lic) .FirstOrDefault(); if (veh == null) { API.TriggerClientEvent(player, "MDC_SHOW_VEHICLE_INFO", "", ""); return; } API.TriggerClientEvent(player, "MDC_SHOW_VEHICLE_INFO", VehicleOwnership.returnCorrDisplayName(veh.VehModel), veh.OwnerName, API.GetVehicleClassName(API.GetVehicleClass(veh.VehModel))); break; } case "MDC_RequestNextCrimesPage": { Character p = player.getData("MDC_LAST_CHECKED"); if (p == null) { return; } var next = Convert.ToInt32(arguments[0]); var crimes = GetCrimeArray(p, next); API.TriggerClientEvent(player, "MDC_UPDATE_CRIMES", API.ToJson(crimes)); break; } } }
private void API_onClientEventTrigger(Client player, string eventName, params object[] arguments) { if (eventName == "DMV_REGISTER_VEHICLE") { var prop = PropertyManager.IsAtPropertyInteraction(player); if (prop?.Type != PropertyManager.PropertyTypes.DMV) { API.SendChatMessageToPlayer(player, "You need to be at a DMV."); return; } var c = player.GetCharacter(); if (InventoryManager.DoesInventoryHaveItem <IdentificationItem>(c).Length == 0) { API.SendChatMessageToPlayer(player, "You must have a valid identification."); return; } if (InventoryManager.DoesInventoryHaveItem <DrivingLicenseItem>(c).Length == 0) { API.SendChatMessageToPlayer(player, "You must have a valid driving license."); return; } int vehid = Convert.ToInt32(arguments[0]); if (!c.OwnedVehicles.Exists(x => x.Id == vehid)) { API.SendChatMessageToPlayer(player, "You don't own that vehicle!!!"); return; } var veh = VehicleManager.Vehicles.FirstOrDefault(x => x.Id == vehid); if (veh == null || veh.OwnerId != c.Id) { API.SendChatMessageToPlayer(player, "You don't own that vehicle!!!"); return; } if (veh.IsRegistered) { API.SendChatMessageToPlayer(player, "Vehicle is already registered!!!"); return; } if (Money.GetCharacterMoney(c) < 100) { API.SendChatMessageToPlayer(player, "You need $100 to register your vehicle."); return; } //Set License Plate. veh.LicensePlate = GetValidLicensePlate(); veh.IsRegistered = true; if (veh.IsSpawned) { API.SetVehicleNumberPlate(veh.NetHandle, veh.LicensePlate); } //Remove money. InventoryManager.DeleteInventoryItem <Money>(c, 100); API.SendChatMessageToPlayer(player, $"You've successfully registered your {VehicleOwnership.returnCorrDisplayName(veh.VehModel)}. License: {veh.LicensePlate}"); veh.Save(); } else if (eventName == "DMV_TEST_FINISH") { var c = player.GetCharacter(); var isOnTime = DateTime.Now.Subtract(c.TimeStartedDmvTest) <= TimeSpan.FromMinutes(5); var isOnHealth = player.vehicle.health >= 999; if (isOnTime && isOnHealth) { InventoryManager.GiveInventoryItem(c, new DrivingLicenseItem(), 1, true); API.SendChatMessageToPlayer(player, "You have ~g~COMPLETED~w~ your test."); LogManager.Log(LogManager.LogTypes.Stats, $"[DMV] {c.CharacterName}[{player.GetAccount().AccountName}] has got his driving license in {DateTime.Now.Subtract(c.TimeStartedDmvTest).Minutes:D2}:{DateTime.Now.Subtract(c.TimeStartedDmvTest).Seconds:D2}"); } else { API.SendChatMessageToPlayer(player, "You have ~r~FAILED~w~ your test."); } API.SendChatMessageToPlayer(player, isOnTime ? $"* Time: ~g~ {DateTime.Now.Subtract(c.TimeStartedDmvTest).Minutes:D2}:{DateTime.Now.Subtract(c.TimeStartedDmvTest).Seconds:D2} / 05:00" : $"* Time: ~r~ {DateTime.Now.Subtract(c.TimeStartedDmvTest).Minutes:D2}:{DateTime.Now.Subtract(c.TimeStartedDmvTest).Seconds:D2} / 05:00"); API.SendChatMessageToPlayer(player, isOnHealth ? $"* Vehicle Health: ~g~ {player.vehicle.health} / 999" : $"* Vehicle Health: ~r~ {player.vehicle.health} / 999"); VehicleManager.respawn_vehicle(player.vehicle.handle.GetVehicle()); API.Delay(1000, true, () => API.WarpPlayerOutOfVehicle(player));; c.IsInDmvTest = false; } }