public static Money From(decimal quantity)
        {
            var money     = new Money(quantity);
            var validator = new MoneyValidator();

            money.SetValidationResult(validator.Validate(money));

            return(money);
        }
        public void AddVehicleToCarshop(Client sender, VehicleHash hash, VehicleClass vehicleClass, decimal cost, string type, string type2 = "Empty")
        {
            if (!sender.HasRank(ServerRank.AdministratorRozgrywki2))
            {
                sender.SendWarning("Nie posiadasz uprawnień do tworzenia pojazdu w salonie.");
                return;
            }

            if (Vehicles.Any(v => v.Hash == hash))
            {
                sender.SendError("Podany pojazd jest już dodany.");
                return;
            }

            MoneyValidator validator = new MoneyValidator();

            if (!validator.IsValid(cost))
            {
                sender.SendError("Wprowadzona kwota gotówki jest nieprawidłowa.");
                return;
            }

            CarshopType endType      = CarshopType.Empty;
            CarshopType endType2     = CarshopType.Empty;
            var         carshopTypes = ((CarshopType[])Enum.GetValues(typeof(CarshopType))).ToList();

            if (carshopTypes.All(carshopType => carshopType.GetDescription() != type && carshopType.GetDescription() != type2))
            {
                sender.SendError("Wprowadzony typ salonu jest nieprawidłowy.");
            }

            foreach (CarshopType item in carshopTypes)
            {
                if (item.GetDescription() == type)
                {
                    endType = item;
                }
                if (item.GetDescription() == type2)
                {
                    endType2 = item;
                }
            }

            if (endType2 != CarshopType.Empty)
            {
                endType = endType | endType2;
            }

            CarshopVehicleModel vehicle =
                new CarshopVehicleModel(hash.ToString(), hash, vehicleClass, cost, endType)
            {
                CreatorForumName = sender.GetAccountEntity().DbModel.Name
            };

            XmlHelper.AddXmlObject(vehicle, Path.Combine(Utils.XmlDirectory, "CarshopVehicles"), vehicle.Name);
        }
Пример #3
0
        public void CreateAtm(Client sender, decimal cost, string number)
        {
            sender.SendInfo("Ustaw się w wybranej pozycji, a następnie wpisz \"tu.\" użyj ctrl + alt + shift + d aby poznać swoją obecną pozycję.");

            MoneyValidator           moneyValidator           = new MoneyValidator();
            CellphoneNumberValidator cellphoneNumberValidator = new CellphoneNumberValidator();

            if (!moneyValidator.IsValid(cost) || !cellphoneNumberValidator.IsValid(number))
            {
                sender.SendError("Wprowadzono dane w nieprawidłowym formacie.");
                return;
            }

            void Handler(Client o, string message)
            {
                if (o == sender && message == "/tu")
                {
                    TelephoneBoothModel data = new TelephoneBoothModel
                    {
                        CreatorForumName = o.GetAccountEntity().DbModel.Name,
                        Position         = new FullPosition
                        {
                            Position = new Vector3
                            {
                                X = sender.Position.X,
                                Y = sender.Position.Y,
                                Z = sender.Position.Z
                            },

                            Rotation = new Vector3
                            {
                                X = sender.Rotation.X,
                                Y = sender.Rotation.Y,
                                Z = sender.Rotation.Z
                            }
                        },
                        Cost   = cost,
                        Number = int.Parse(number)
                    };

                    XmlHelper.AddXmlObject(data, Path.Combine(Utils.XmlDirectory, nameof(TelephoneBoothModel)));
                    TelephoneBoothEntity booth = new TelephoneBoothEntity(data);
                    booth.Spawn();
                    Booths.Add(booth);
                    sender.SendInfo("Dodawanie budki zakończyło się pomyślnie.");
                }
            }
        }
Пример #4
0
        public void TransferWalletMoney(Client sender, int id, decimal safeMoneyCount)
        {
            MoneyValidator validator = new MoneyValidator();

            if (!validator.IsValid(safeMoneyCount))
            {
                sender.SendError("Podano kwotę gotówki w nieprawidłowym formacie.");
            }

            CharacterEntity sendingCharacter = sender.GetAccountEntity().CharacterEntity;

            if (!sendingCharacter.CanPay)
            {
                return;
            }

            if (!sendingCharacter.HasMoney(safeMoneyCount))
            {
                sender.SendWarning("Nie posiadasz wystarczającej ilości gotówki.");
                return;
            }

            if (sender.GetAccountEntity().ServerId == id)
            {
                sender.SendError("Nie możesz podać gotówki samemu sobie.");
                return;
            }

            CharacterEntity gettingPlayer = NAPI.Player.GetPlayersInRadiusOfPlayer(6f, sender).Find(
                x => x.GetAccountEntity().ServerId == id).GetAccountEntity().CharacterEntity;

            if (gettingPlayer == null)
            {
                sender.SendWarning("Nie znaleziono gracza o podanym Id");
                return;
            }

            //temu zabieramy
            sendingCharacter.RemoveMoney(safeMoneyCount);

            //temu dodajemy gotówke
            gettingPlayer.AddMoney(safeMoneyCount);

            sender.SendChatMessage($"~g~Osoba {gettingPlayer.FormatName} otrzymała od ciebie ${safeMoneyCount}.");
            gettingPlayer.AccountEntity.Client.SendChatMessage($"~g~Osoba {sender.Name} przekazała ci ${safeMoneyCount}.");
        }