public void Save() { DbModel.Health = GameVehicle.Health; DbModel.Door1Damage = GameVehicle.IsDoorBroken(1); DbModel.Door2Damage = GameVehicle.IsDoorBroken(2); DbModel.Door3Damage = GameVehicle.IsDoorBroken(3); DbModel.Door4Damage = GameVehicle.IsDoorBroken(4); DbModel.Window1Damage = GameVehicle.IsWindowBroken(1); DbModel.Window2Damage = GameVehicle.IsWindowBroken(2); DbModel.Window3Damage = GameVehicle.IsWindowBroken(3); DbModel.Window4Damage = GameVehicle.IsWindowBroken(4); DbModel.PrimaryColor = GameVehicle.CustomPrimaryColor.ToHex(); DbModel.SecondaryColor = GameVehicle.CustomSecondaryColor.ToHex(); DbModel.EnginePowerMultiplier = GameVehicle.EnginePowerMultiplier; DbModel.NumberPlateStyle = GameVehicle.NumberPlateStyle; DbModel.NumberPlate = GameVehicle.NumberPlate; DbModel.Fuel = GameVehicle.GetSharedData("fuel"); DbModel.FuelConsumption = GameVehicle.GetSharedData("fuelConsumption"); DbModel.Milage = GameVehicle.GetSharedData("milage"); if (_nonDbVehicle) { return; } RoleplayContext ctx = Singletons.RoleplayContextFactory.Create(); using (VehiclesRepository repository = new VehiclesRepository(ctx)) { repository.Update(DbModel); repository.Save(); } }
public static VehicleEntity Create(FullPosition spawnPosition, VehicleHash hash, string numberPlate, int numberPlateStyle, int?creatorId, Color primaryColor, Color secondaryColor, float enginePowerMultiplier = 0f, float engineTorqueMultiplier = 0f, CharacterModel character = null, GroupModel groupModel = null) { VehicleModel vehicleModel = new VehicleModel { VehicleHash = hash.ToString(), NumberPlate = numberPlate, NumberPlateStyle = numberPlateStyle, Character = character, Group = groupModel, CreatorId = creatorId, SpawnPositionX = spawnPosition.Position.X, SpawnPositionY = spawnPosition.Position.Y, SpawnPositionZ = spawnPosition.Position.Z, SpawnRotationX = spawnPosition.Rotation.X, SpawnRotationY = spawnPosition.Rotation.Y, SpawnRotationZ = spawnPosition.Rotation.Z, PrimaryColor = primaryColor.ToHex(), SecondaryColor = secondaryColor.ToHex(), EnginePowerMultiplier = enginePowerMultiplier, EngineTorqueMultiplier = engineTorqueMultiplier, ItemsInVehicle = new List <ItemModel>(), Milage = 0.0f, }; vehicleModel.FuelTank = GetFuelTankSize((VehicleClass)NAPI.Vehicle.GetVehicleClass(NAPI.Util.VehicleNameToModel(vehicleModel.VehicleHash))); vehicleModel.Fuel = vehicleModel.FuelTank * 0.2f; vehicleModel.FuelConsumption = NAPI.Vehicle.GetVehicleMaxAcceleration(NAPI.Util.VehicleNameToModel(vehicleModel.VehicleHash)) / 0.2f; bool nonDbVehicle = character == null && groupModel == null; if (!nonDbVehicle) { RoleplayContext ctx = Singletons.RoleplayContextFactory.Create(); using (VehiclesRepository repository = new VehiclesRepository(ctx)) { repository.Insert(vehicleModel); repository.Save(); } } return(new VehicleEntity(vehicleModel) { _nonDbVehicle = nonDbVehicle }); }
public bool AddVehicle(Vehicle vehicle) { if (_repositoryVehicle.GetVehicleFromId(vehicle.Id) != null) { return(false); } if (vehicle.LicensePlate != null) { vehicle.LicensePlate = vehicle.LicensePlate.ToUpper(); } try { _repositoryVehicle.Save(vehicle); } catch { return(false); } return((_repositoryVehicle.GetVehicleFromId(vehicle.Id) != null) ? true : false); }
public void Trade(bool bank) { if (Getter.HasMoney(Money, bank)) { if (_moneyToGroup && Sender.OnDutyGroup == null) { Sender.SendInfo("Musisz znajdować się na służbie grupy."); return; } if (ItemModel != null) { ChatScript.SendMessageToNearbyPlayers(Sender, $"{Sender.FormatName} podaje przedmiot {Getter.FormatName}", ChatMessageType.ServerMe); ItemModel.Character = Getter.DbModel; RoleplayContext ctx = Singletons.RoleplayContextFactory.Create(); using (ItemsRepository repository = new ItemsRepository(ctx)) { repository.Update(ItemModel); repository.Save(); } } else if (Vehicle != null) { ChatScript.SendMessageToNearbyPlayers(Sender, $"{Sender.FormatName} podaje klucze {Getter.FormatName}", ChatMessageType.ServerMe); Vehicle.Character = Getter.DbModel; RoleplayContext ctx = Singletons.RoleplayContextFactory.Create(); using (VehiclesRepository repository = new VehiclesRepository(ctx)) { repository.Update(Vehicle); repository.Save(); } } else if (Building != null) { ChatScript.SendMessageToNearbyPlayers(Sender, $"{Sender.FormatName} podaje klucze {Getter.FormatName}", ChatMessageType.ServerMe); Building.Character = Getter.DbModel; RoleplayContext ctx = Singletons.RoleplayContextFactory.Create(); using (BuildingsRepository repository = new BuildingsRepository(ctx)) { repository.Update(Building); repository.Save(); } } if (_moneyToGroup) { Sender.OnDutyGroup.AddMoney(Money); } else { Sender.AddMoney(Money, bank); } Getter.RemoveMoney(Money, bank); _action?.Invoke(Getter); } else { Getter.SendWarning(bank ? "Nie posiadasz wystarczającej ilości środków na karcie" : "Nie posiadasz wystarczającej ilości gotówki."); Sender.SendError("Wymiana zakończona niepowodzeniem."); } }