Beispiel #1
0
        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();
            }
        }
Beispiel #2
0
        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
            });
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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.");
            }
        }