public static void SaveAccount(Client player) { if (!Character.ContainsKey(player)) { return; } using (var ctx = new ContextFactory().Create()) { int characterId = Character[player].Id; Character character = ctx.Characters.First(x => x.Id == characterId); character.Name = player.name; character.Gender = Character[player].Gender; character.Job = Character[player].Job; character.Money = Character[player].Money; character.Bank = Character[player].Bank; character.Level = Character[player].Level; character.Experience = Character[player].Experience; character.PositionX = player.position.X; character.PositionY = player.position.Y; character.PositionZ = player.position.Z; character.RotationZ = player.rotation.Z; character.PlayedTime += (DateTime.Now - Character[player].LastLogin).TotalSeconds; character.LastLogin = DateTime.Now; foreach (var vehicle in Character[player].Vehicles.ToList()) { // Getting vehicle data float fuel = API.shared.getVehicleFuelLevel(vehicle.Vehicle); var position = API.shared.getEntityPosition(vehicle.Vehicle); var rotation = API.shared.getEntityRotation(vehicle.Vehicle); int vehicleId = vehicle.Id; CharacterVehicle characterVehicle = ctx.CharacterVehicle.FirstOrDefault(x => x.Id == vehicleId); if (characterVehicle == null) { characterVehicle = new CharacterVehicle { Model = vehicle.Model, PositionX = vehicle.PositionX, PositionY = vehicle.PositionY, PositionZ = vehicle.PositionZ, RotationX = vehicle.RotationX, RotationY = vehicle.RotationY, RotationZ = vehicle.RotationZ, Color1 = vehicle.Color1, Color2 = vehicle.Color2, Price = vehicle.Price, Fuel = vehicle.Fuel, CreatedAt = DateTime.Now }; character.Vehicles.Add(characterVehicle); } characterVehicle.PositionX = position.X; characterVehicle.PositionY = position.Y; characterVehicle.PositionZ = position.Z; characterVehicle.RotationX = rotation.X; characterVehicle.RotationY = rotation.Y; characterVehicle.RotationZ = rotation.Z; characterVehicle.Fuel = (int)fuel; if (API.shared.doesEntityExist(vehicle.Vehicle)) { API.shared.deleteEntity(vehicle.Vehicle); } } ctx.SaveChangesAsync(); } }
public void Dealership_ClientEvent(Client player, string event_name, params object[] args) { switch (event_name) { case "RequestDealershipBuyMenu": { if (!player.hasData("DealershipVehicle_ID")) { return; } DealershipVehicle vehicle = player.getData("DealershipVehicle_ID"); player.triggerEvent("Dealership_PurchaseMenu", API.toJson(new { vehicle.Price })); break; } case "VehiclePurchase": { if (!player.hasData("DealershipVehicle_ID")) { return; } int color1 = (int)args[0]; int color2 = (int)args[1]; Dealership dealership = player.getData("Dealership_ID"); DealershipVehicle vehicle = player.getData("DealershipVehicle_ID"); if (Player.Data.Character[player].Vehicles.Count >= 3) { API.sendChatMessageToPlayer(player, $"~r~ERRO: ~s~Você pode ter apenas 3 veículos."); return; } else if (vehicle.Price > Player.Data.Character[player].Money) { API.sendChatMessageToPlayer(player, $"~r~ERRO: ~s~Você não tem dinheiro suficiente."); return; } var veh = API.shared.createVehicle(vehicle.Model, new Vector3(dealership.VehicleSpawn.X, dealership.VehicleSpawn.Y, dealership.VehicleSpawn.Z), new Vector3(0.0, 0.0, 0.0), color1, color2); veh.engineStatus = false; API.shared.setPlayerIntoVehicle(player, veh, -1); player.resetData("Dealership_ID"); player.resetData("DealershipVehicle_ID"); player.triggerEvent("OnExitDealershipVehicle"); player.giveMoney(-vehicle.Price); player.sendNotification("", $"Você comprou um ~g~{veh.displayName}~s~."); CharacterVehicle characterVehicle = new CharacterVehicle { Character = Player.Data.Character[player], Vehicle = veh, Price = vehicle.Price, Model = vehicle.Model, Color1 = color1, Color2 = color2, Fuel = 100, PositionX = veh.position.X, PositionY = veh.position.Y, PositionZ = veh.position.Z, RotationX = 0.0f, RotationY = 0.0f, RotationZ = 0.0f, CreatedAt = DateTime.Now }; Player.Data.Character[player].Vehicles.Add(characterVehicle); break; } } }
private void Awake() { _characterVehicle = GetComponent <CharacterVehicle>(); }
protected virtual void Awake() { _characterVehicle = GetComponent <CharacterVehicle>(); }