コード例 #1
0
        public static void OpenHotelManageMenu(Client player)
        {
            Menu menu = new Menu("hotelmanage", false, false);

            menu.Callback += callback_hotelmanage;

            Menu.Item menuItem = new Menu.Item("header", Menu.MenuItem.Header);
            menuItem.Text = $"Отель";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("info", Menu.MenuItem.Card);
            menuItem.Text = $"Аренда оплачена на {Main.Players[player].HotelLeft}ч";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("extend", Menu.MenuItem.Button);
            menuItem.Text = "Продлить аренду";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("moveout", Menu.MenuItem.Button);
            menuItem.Text = "Выселиться";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("close", Menu.MenuItem.Button);
            menuItem.Text = "Закрыть";
            menu.Add(menuItem);

            menu.Open(player);
        }
コード例 #2
0
ファイル: WorkManager.cs プロジェクト: alexenin/romantic
        public static void openGoPostalStart(Client player)
        {
            Menu menu = new Menu("gopostal", false, false);

            menu.Callback = callback_gpStartMenu;

            Menu.Item menuItem = new Menu.Item("header", Menu.MenuItem.Header);
            menuItem.Text = "Склад";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("start", Menu.MenuItem.Button);
            menuItem.Text = "Начать работу";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("get", Menu.MenuItem.Button);
            menuItem.Text = "Взять посылки";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("finish", Menu.MenuItem.Button);
            menuItem.Text = "Закончить работу";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("close", Menu.MenuItem.Button);
            menuItem.Text = "Закрыть";
            menu.Add(menuItem);

            menu.Open(player);
        }
コード例 #3
0
        public static void OpenHospitalStockMenu(Client player)
        {
            Menu menu = new Menu("hospitalstock", false, false);

            menu.Callback = callback_hospitalstock;

            Menu.Item menuItem = new Menu.Item("header", Menu.MenuItem.Header);
            menuItem.Text = $"Склад ({Stocks.fracStocks[8].Medkits}шт)";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("takemed", Menu.MenuItem.Button);
            menuItem.Text = "Взять аптечку";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("putmed", Menu.MenuItem.Button);
            menuItem.Text = "Положить аптечку";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("tazer", Menu.MenuItem.Button);
            menuItem.Text = "Взять электрошокер";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("close", Menu.MenuItem.Button);
            menuItem.Text = "Закрыть";
            menu.Add(menuItem);

            menu.Open(player);
        }
コード例 #4
0
        private static void callback_tattoodelete(Client client, Menu menu, Menu.Item item, string eventName, dynamic data)
        {
            if (item.ID == "close")
            {
                MenuManager.Close(client);
                return;
            }
            var zone = Enum.Parse <TattooZones>(item.ID);

            if (Customization.CustomPlayerData[Main.Players[client].UUID].Tattoos[Convert.ToInt32(zone)].Count == 0)
            {
                Notify.Send(client, NotifyType.Error, NotifyPosition.BottomCenter, "У Вас нет татуировок в этой зоне", 3000);
                return;
            }
            if (!MoneySystem.Wallet.Change(client, -600))
            {
                Notify.Send(client, NotifyType.Error, NotifyPosition.BottomCenter, "Недостаточно средств", 3000);
                return;
            }
            GameLog.Money($"player({Main.Players[client].UUID})", $"server", 600, $"tattooRemove");
            Fractions.Stocks.fracStocks[6].Money += 600;

            foreach (var tattoo in Customization.CustomPlayerData[Main.Players[client].UUID].Tattoos[Convert.ToInt32(zone)])
            {
                var decoration = new Decoration();
                decoration.Collection = NAPI.Util.GetHashKey(tattoo.Dictionary);
                decoration.Overlay    = NAPI.Util.GetHashKey(tattoo.Hash);
                client.RemoveDecoration(decoration);
            }
            Customization.CustomPlayerData[Main.Players[client].UUID].Tattoos[Convert.ToInt32(zone)] = new List <Tattoo>();
            client.SetSharedData("TATTOOS", Newtonsoft.Json.JsonConvert.SerializeObject(Customization.CustomPlayerData[Main.Players[client].UUID].Tattoos));

            Notify.Send(client, NotifyType.Success, NotifyPosition.BottomCenter, "Вы свели татуировки с " + TattooZonesNames[Convert.ToInt32(zone)], 3000);
        }
コード例 #5
0
        private static void callback_hotelbuy(Client player, Menu menu, Menu.Item item, string eventName, dynamic data)
        {
            switch (item.ID)
            {
            case "rent":
                if (Houses.HouseManager.GetHouse(player) != null)
                {
                    Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, "Вы проживаете в доме и не можете арендовать комнату в отеле", 3000);
                    return;
                }

                if (!MoneySystem.Wallet.Change(player, -HotelRent))
                {
                    Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, "Недостаточно средств", 3000);
                    return;
                }
                GameLog.Money($"player({Main.Players[player].UUID})", $"server", HotelRent, $"hotelRent");
                Main.Players[player].HotelID   = player.GetData("HOTEL_ID");
                Main.Players[player].HotelLeft = 1;

                Notify.Send(player, NotifyType.Info, NotifyPosition.BottomCenter, $"Вы арендовали комнату в отеле на 1ч. Продлить аренду можно в телефоне (M)", 3000);
                SendToRoom(player);
                MenuManager.Close(player);
                return;

            case "close":
                MenuManager.Close(player);
                return;
            }
        }
コード例 #6
0
        protected IList <TestableEditorElements.MenuOption> ConvertFromConfigurationOptionsToGenericMenuOptions(IList <Menu.Option <T> > options, object currentValue, Action <object> changeValueCallback)
        {
            return(options.Select <Menu.Option <T>, TestableEditorElements.MenuOption>(menuOption =>
            {
                Menu.Separator <T> separator = menuOption as Menu.Separator <T>;
                Menu.DisabledItem <T> disabled = menuOption as Menu.DisabledItem <T>;
                Menu.Item <T> item = menuOption as Menu.Item <T>;

                if (separator != null)
                {
                    return new TestableEditorElements.MenuSeparator(separator.PathToSubmenu);
                }

                if (disabled != null)
                {
                    return new TestableEditorElements.DisabledMenuItem(disabled.Label);
                }

                if (item != null)
                {
                    return new TestableEditorElements.MenuItem(item.DisplayedName, false, () => ChangeValue(() => item.GetNewItem(), () => currentValue, changeValueCallback));
                }

                throw new InvalidCastException("There is a closed list of implementations of AddItemMenuOption.");
            }).ToList());
        }
コード例 #7
0
        public void Test_GetItemByMealNumber()
        {
            var menurepo   = new MenuRepo();
            var item       = new Menu.Item();
            int mealnumber = item.MealNumber;

            menurepo.GetMealByNumber(mealnumber);
            Assert.IsNotNull(item);
        }
コード例 #8
0
        public void Test_RemoveItem()
        {
            var initialcount = _listofItems.Count;
            var menurepo     = new MenuRepo();
            var item         = new Menu.Item();

            menurepo.RemoveItem(item.MealNumber);
            Assert.AreNotEqual(initialcount, _listofItems.Count);
        }
コード例 #9
0
        private static void callback_driveschool(Client client, Menu menu, Menu.Item item, string eventName, dynamic data)
        {
            MenuManager.Close(client);
            if (item.ID == "close")
            {
                return;
            }
            var id = item.ID.Split('_')[1];

            startDrivingCourse(client, Convert.ToInt32(id));
            return;
        }
コード例 #10
0
        public static void OpenArmyCombatMenu(Client player)
        {
            Menu menu = new Menu("armycombat", false, false);

            menu.Callback = callback_armycombat;

            Menu.Item menuItem = new Menu.Item("header", Menu.MenuItem.Header);
            menuItem.Text = "Боевая форма";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("cam1", Menu.MenuItem.Button);
            menuItem.Text = "Песочный камуфляж";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("cam2", Menu.MenuItem.Button);
            menuItem.Text = "Городской камуфляж";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("cam3", Menu.MenuItem.Button);
            menuItem.Text = "Зеленый камуфляж";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("cam4", Menu.MenuItem.Button);
            menuItem.Text = "Черно-зеленый камфуляж";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("cam5", Menu.MenuItem.Button);
            menuItem.Text = "Какой-то камфуляж";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("cam6", Menu.MenuItem.Button);
            menuItem.Text = "И ещё один камфуляж";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("cam7", Menu.MenuItem.Button);
            menuItem.Text = "Форма Лётчиков";
            menu.Add(menuItem);


            menuItem      = new Menu.Item("cam8", Menu.MenuItem.Button);
            menuItem.Text = "Форма №15";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("takeoff", Menu.MenuItem.Button);
            menuItem.Text = "Снять форму";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("back", Menu.MenuItem.Button);
            menuItem.Text = "Назад";
            menu.Add(menuItem);

            menu.Open(player);
        }
コード例 #11
0
        public void Test_AddItem()
        {
            var menurepo = new MenuRepo();

            Menu.Item item = new Menu.Item();
            menurepo.AddItem(item);
            var addList   = menurepo.GetItemList();
            var addcount  = addList.Count;
            var listcount = _listofItems.Count;

            Assert.AreNotEqual(listcount, addList);
        }
コード例 #12
0
ファイル: Robbery.cs プロジェクト: shtudent/PlatinumWay
        private static void callback_safedoor(Client player, Menu menu, Menu.Item item, string eventName, dynamic data)
        {
            switch (item.ID)
            {
            case "change":
                MenuManager.Close(player);
                if (Main.Players[player].FractionID == 6 && Main.Players[player].FractionLVL >= 14)
                {
                    if (isCracking)
                    {
                        Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Невозможно сделать это сейчас", 3000);
                        return;
                    }
                    if (!canBeClosed)
                    {
                        Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Невозможно сделать это сейчас", 3000);
                        return;
                    }
                    if (isOpen)
                    {
                        isOpen = false;
                        Doormanager.SetDoorLocked(2, true, 0);
                    }
                    else
                    {
                        isOpen = true;
                        Doormanager.SetDoorLocked(2, true, 45f);
                    }
                    string msg = "Вы закрыли дверь";
                    if (isOpen)
                    {
                        msg = "Вы открыли дверь";
                    }
                    Notify.Send(player, NotifyType.Success, NotifyPosition.BottomCenter, msg, 3000);
                }
                else
                {
                    Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы не можете сделать это", 3000);
                }
                return;

            case "crack":
                MenuManager.Close(player);
                startSafeDoorCracking(player);
                return;

            case "close":
                MenuManager.Close(player);
                return;
            }
        }
コード例 #13
0
ファイル: Program.cs プロジェクト: Scopola/Console.Menu
        static void Generate()
        {
            if (Menu.Selected.Items.Count > 0)
            {
                return;
            }


            for (var i = 0; i < 50; ++i)
            {
                var sub = new Menu.Item("Dynamic - " + i, Print);


                Menu.Selected.Add(sub);
            }
        }
コード例 #14
0
        public static void OpenTattooDeleteMenu(Client player)
        {
            Menu menu = new Menu("tattoodelete", false, false);

            menu.Callback = callback_tattoodelete;

            Menu.Item menuItem = new Menu.Item("header", Menu.MenuItem.Header);
            menuItem.Text = $"Сведение татуировок";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("header", Menu.MenuItem.Card);
            menuItem.Text = $"Выберите зону, в которой хотите свести все татуировки. Стоимость сведения в одной зоне - 3000$";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("Torso", Menu.MenuItem.Button);
            menuItem.Text = "Торс";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("Head", Menu.MenuItem.Button);
            menuItem.Text = "Голова";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("LeftArm", Menu.MenuItem.Button);
            menuItem.Text = "Левая рука";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("RightArm", Menu.MenuItem.Button);
            menuItem.Text = "Правая рука";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("LeftLeg", Menu.MenuItem.Button);
            menuItem.Text = "Левая нога";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("RightLeg", Menu.MenuItem.Button);
            menuItem.Text = "Правая нога";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("close", Menu.MenuItem.Button);
            menuItem.Text = "Закрыть";
            menu.Add(menuItem);

            menu.Open(player);
        }
コード例 #15
0
ファイル: Army.cs プロジェクト: shtudent/PlatinumWay
        private static void callback_armyclothes(Client client, Menu menu, Menu.Item item, string eventName, dynamic data)
        {
            switch (item.ID)
            {
            case "change":
                if (Main.Players[client].FractionLVL < 6)
                {
                    Notify.Send(client, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы не можете переодеться/раздеться", 3000);
                    return;
                }
                if (!client.GetData("ON_DUTY"))
                {
                    Notify.Send(client, NotifyType.Success, NotifyPosition.BottomCenter, $"Вы переоделись в служебную форму", 3000);
                    Manager.setSkin(client, 14, Main.Players[client].FractionLVL);
                    client.SetData("ON_DUTY", true);
                }
                else
                {
                    Notify.Send(client, NotifyType.Success, NotifyPosition.BottomCenter, $"Вы переоделись в повседневную одежду", 3000);
                    Customization.ApplyCharacter(client);
                    if (client.HasData("HAND_MONEY"))
                    {
                        client.SetClothes(5, 45, 0);
                    }
                    else if (client.HasData("HEIST_DRILL"))
                    {
                        client.SetClothes(5, 41, 0);
                    }
                    client.SetData("ON_DUTY", false);
                }
                return;

            case "combat":
                MenuManager.Close(client);
                OpenArmyCombatMenu(client);
                return;

            case "close":
                MenuManager.Close(client);
                return;
            }
        }
コード例 #16
0
        private static void callback_hotelmanage(Client player, Menu menu, Menu.Item item, string eventName, dynamic data)
        {
            switch (item.ID)
            {
            case "extend":
                MenuManager.Close(player);
                Trigger.ClientEvent(player, "openInput", $"Продлить аренду ({HotelRent}$/ч)", "Введите количество часов", 1, "extend_hotel_rent");
                return;

            case "moveout":
                MoveOutPlayer(player);
                Notify.Send(player, NotifyType.Info, NotifyPosition.BottomCenter, "Вы выселились из отеля", 3000);
                MenuManager.Close(player);
                return;

            case "close":
                MenuManager.Close(player);
                return;
            }
        }
コード例 #17
0
        protected override void FirstUpdate()
        {
            Menu menu = new Menu(Canvas.Palette, Selection(3, 20, 84, (_availableGovernments.Length * Resources.Instance.GetFontHeight(0))))
            {
                X            = 103,
                Y            = 84,
                Width        = 82,
                ActiveColour = 11,
                TextColour   = 5,
                FontId       = 0
            };

            Menu.Item menuItem;
            for (int i = 0; i < _availableGovernments.Length; i++)
            {
                menu.Items.Add(menuItem = new Menu.Item($"{_availableGovernments[i].NameAdjective}", i));
                menuItem.Selected      += GovernmentChoice;
            }
            AddMenu(menu);
        }
コード例 #18
0
        public static void OpenDriveSchoolMenu(Client player)
        {
            Menu menu = new Menu("driveschool", false, false);

            menu.Callback = callback_driveschool;

            Menu.Item menuItem = new Menu.Item("header", Menu.MenuItem.Header);
            menuItem.Text = "Лицензии";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("lic_0", Menu.MenuItem.Button);
            menuItem.Text = $"Мотоциклы (A) - {LicPrices[0]}$";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("lic_1", Menu.MenuItem.Button);
            menuItem.Text = $"Легковые машины (B) - {LicPrices[1]}$";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("lic_2", Menu.MenuItem.Button);
            menuItem.Text = $"Грузовые машины (C) - {LicPrices[2]}$";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("lic_3", Menu.MenuItem.Button);
            menuItem.Text = $"Водный транспорт (V) - {LicPrices[3]}$";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("lic_4", Menu.MenuItem.Button);
            menuItem.Text = $"Вертолёты (LV) - {LicPrices[4]}$";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("lic_5", Menu.MenuItem.Button);
            menuItem.Text = $"Самолёты (LS) - {LicPrices[5]}$";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("close", Menu.MenuItem.Button);
            menuItem.Text = "Закрыть";
            menu.Add(menuItem);

            menu.Open(player);
        }
コード例 #19
0
ファイル: Police.cs プロジェクト: alexenin/romantic
        public static void OpenSpecialPoliceMenu(Client player)
        {
            Menu menu = new Menu("policeSpecial", false, false);

            menu.Callback += callback_policeSpecial;

            Menu.Item menuItem = new Menu.Item("header", Menu.MenuItem.Header);
            menuItem.Text = "Оружейная";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("changeclothes", Menu.MenuItem.Button);
            menuItem.Text = "Переодеться";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("pistol50", Menu.MenuItem.Button);
            menuItem.Text = "Desert Eagle";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("carbineRifle", Menu.MenuItem.Button);
            menuItem.Text = "Штурмовая винтовка";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("riflesammo", Menu.MenuItem.Button);
            menuItem.Text = "Автоматный калибр x30";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("heavyshotgun", Menu.MenuItem.Button);
            menuItem.Text = "Тяжелый дробовик";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("stungun", Menu.MenuItem.Button);
            menuItem.Text = "Tazer";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("close", Menu.MenuItem.Button);
            menuItem.Text = "Закрыть";
            menu.Add(menuItem);

            menu.Open(player);
        }
コード例 #20
0
        private void AddItem()
        {
            System.Console.Clear();
            var newmeal = new Menu.Item();

            System.Console.WriteLine("Enter the Meal Number: ");
            string mealnumstring = (System.Console.ReadLine());



            int mealnum = Convert.ToInt32(mealnumstring);

            newmeal.MealNumber = mealnum;

            System.Console.WriteLine("Enter the Meal Name: ");
            string mealname = System.Console.ReadLine();

            newmeal.MealName = mealname;

            System.Console.WriteLine("Enter a description for the new meal item: ");
            string mealdescription = System.Console.ReadLine();

            newmeal.Description = mealdescription;

            System.Console.WriteLine("Please write a list of the meal ingredients(separated by commas): ");
            string ingredients = System.Console.ReadLine();

            newmeal.ListOfIngredients = ingredients;

            System.Console.WriteLine("Enter the new meal price(as a decimal value(i.e. '1.99')): ");
            string  mealpricestring = System.Console.ReadLine();
            decimal mealprice       = Convert.ToDecimal(mealpricestring);

            newmeal.Price = mealprice;

            _menuRepo.AddItem(newmeal);
        }
コード例 #21
0
        public static void OpenHotelBuyMenu(Client player)
        {
            Menu menu = new Menu("hotelbuy", false, false);

            menu.Callback += callback_hotelbuy;

            Menu.Item menuItem = new Menu.Item("header", Menu.MenuItem.Header);
            menuItem.Text = $"Отель";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("info", Menu.MenuItem.Card);
            menuItem.Text = $"Деньги за аренду будут сниматься каждый пейдей только когда Вы в игре.";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("rent", Menu.MenuItem.Button);
            menuItem.Text = $"Арендовать ({HotelRent}$)";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("close", Menu.MenuItem.Button);
            menuItem.Text = "Закрыть";
            menu.Add(menuItem);

            menu.Open(player);
        }
コード例 #22
0
ファイル: Robbery.cs プロジェクト: shtudent/PlatinumWay
        public static void OpenSafedoorMenu(Client player)
        {
            Menu menu = new Menu("safedoor", false, false);

            menu.Callback = callback_safedoor;

            Menu.Item menuItem = new Menu.Item("header", Menu.MenuItem.Header);
            menuItem.Text = "Дверь хранилища";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("change", Menu.MenuItem.Button);
            menuItem.Text = "Открыть/Закрыть";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("crack", Menu.MenuItem.Button);
            menuItem.Text = "Взломать";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("close", Menu.MenuItem.Button);
            menuItem.Text = "Закрыть";
            menu.Add(menuItem);

            menu.Open(player);
        }
コード例 #23
0
ファイル: Army.cs プロジェクト: shtudent/PlatinumWay
        public static void OpenArmyClothesMenu(Client player)
        {
            Menu menu = new Menu("armyclothes", false, false);

            menu.Callback = callback_armyclothes;

            Menu.Item menuItem = new Menu.Item("header", Menu.MenuItem.Header);
            menuItem.Text = "Одежда";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("change", Menu.MenuItem.Button);
            menuItem.Text = "Переодеться";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("combat", Menu.MenuItem.Button);
            menuItem.Text = "Боевая форма";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("close", Menu.MenuItem.Button);
            menuItem.Text = "Закрыть";
            menu.Add(menuItem);

            menu.Open(player);
        }
コード例 #24
0
ファイル: Army.cs プロジェクト: shtudent/PlatinumWay
        private static void callback_armycombat(Client client, Menu menu, Menu.Item item, string eventName, dynamic data)
        {
            if (item.ID == "back")
            {
                MenuManager.Close(client);
                OpenArmyClothesMenu(client);
                return;
            }
            if (Main.Players[client].FractionID != 14)
            {
                Notify.Send(client, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы не служите в армии", 3000);
                return;
            }
            if (!client.GetData("ON_DUTY"))
            {
                Notify.Send(client, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы должны начать службу", 3000);
                return;
            }
            client.SetData("IN_CP_MODE", true);
            var gender = Main.Players[client].Gender;

            Customization.ClearClothes(client, gender);
            switch (item.ID)
            {
            case "cam1":
                if (gender)
                {
                    client.SetClothes(1, 104, 5);
                    Customization.SetHat(client, 117, 13);
                    client.SetClothes(11, 221, 5);
                    client.SetClothes(4, 87, 5);
                    client.SetClothes(6, 62, 0);
                    client.SetClothes(9, 16, 0);
                    client.SetClothes(3, 49, 1);
                }
                else
                {
                    Customization.SetHat(client, 116, 13);
                    client.SetClothes(1, 104, 5);
                    client.SetClothes(4, 90, 5);
                    client.SetClothes(11, 224, 5);
                    client.SetClothes(6, 65, 0);
                    client.SetClothes(3, 46, 1);
                    client.SetClothes(9, 18, 0);
                }
                return;

            case "cam2":
                if (gender)
                {
                    client.SetClothes(1, 104, 10);
                    Customization.SetHat(client, 117, 18);
                    client.SetClothes(11, 222, 10);
                    client.SetClothes(4, 87, 10);
                    client.SetClothes(6, 62, 2);
                    client.SetClothes(9, 16, 2);
                    client.SetClothes(3, 48, 0);
                }
                else
                {
                    Customization.SetHat(client, 116, 18);
                    client.SetClothes(1, 104, 10);
                    client.SetClothes(4, 90, 10);
                    client.SetClothes(11, 224, 10);
                    client.SetClothes(6, 65, 2);
                    client.SetClothes(3, 46, 0);
                    client.SetClothes(9, 18, 2);
                }
                return;

            case "cam3":
                if (gender)
                {
                    client.SetClothes(1, 104, 15);
                    Customization.SetHat(client, 117, 22);
                    client.SetClothes(11, 220, 15);
                    client.SetClothes(4, 87, 15);
                    client.SetClothes(6, 25, 0);
                    client.SetClothes(9, 16, 2);
                    client.SetClothes(3, 49, 0);
                }
                else
                {
                    Customization.SetHat(client, 116, 22);
                    client.SetClothes(1, 104, 15);
                    client.SetClothes(4, 90, 15);
                    client.SetClothes(11, 224, 15);
                    client.SetClothes(6, 25, 0);
                    client.SetClothes(3, 46, 0);
                    client.SetClothes(9, 18, 2);
                }
                return;

            case "cam4":
                if (gender)
                {
                    client.SetClothes(1, 104, 12);
                    Customization.SetHat(client, 117, 20);
                    client.SetClothes(11, 221, 12);
                    client.SetClothes(4, 87, 12);
                    client.SetClothes(6, 25, 0);
                    client.SetClothes(9, 16, 2);
                    client.SetClothes(3, 49, 0);
                }
                else
                {
                    Customization.SetHat(client, 116, 20);
                    client.SetClothes(1, 104, 12);
                    client.SetClothes(4, 90, 12);
                    client.SetClothes(11, 224, 12);
                    client.SetClothes(6, 25, 0);
                    client.SetClothes(3, 46, 0);
                    client.SetClothes(9, 18, 2);
                }
                return;

            case "cam5":
                if (gender)
                {
                    client.SetClothes(1, 104, 16);
                    Customization.SetHat(client, 117, 23);
                    client.SetClothes(11, 220, 16);
                    client.SetClothes(4, 87, 16);
                    client.SetClothes(6, 62, 7);
                    client.SetClothes(9, 16, 0);
                    client.SetClothes(3, 48, 0);
                }
                else
                {
                    Customization.SetHat(client, 116, 23);
                    client.SetClothes(1, 104, 16);
                    client.SetClothes(4, 90, 16);
                    client.SetClothes(11, 224, 16);
                    client.SetClothes(6, 65, 7);
                    client.SetClothes(3, 46, 1);
                    client.SetClothes(9, 18, 0);
                }
                return;

            case "cam6":
                if (gender)
                {
                    client.SetClothes(1, 104, 11);
                    Customization.SetHat(client, 117, 19);
                    client.SetClothes(11, 222, 11);
                    client.SetClothes(4, 87, 11);
                    client.SetClothes(6, 25, 0);
                    client.SetClothes(9, 16, 2);
                    client.SetClothes(3, 48, 0);
                }
                else
                {
                    Customization.SetHat(client, 116, 19);
                    client.SetClothes(1, 104, 11);
                    client.SetClothes(4, 90, 11);
                    client.SetClothes(11, 224, 10);
                    client.SetClothes(6, 25, 0);
                    client.SetClothes(3, 46, 0);
                    client.SetClothes(9, 18, 2);
                }
                return;

            case "takeoff":
                Manager.setSkin(client, Main.Players[client].FractionID, Main.Players[client].FractionLVL);
                client.SetData("IN_CP_MODE", false);
                return;
            }
        }
コード例 #25
0
ファイル: Police.cs プロジェクト: alexenin/romantic
        private static void callback_policeSpecial(Client client, Menu menu, Menu.Item item, string eventName, dynamic data)
        {
            switch (item.ID)
            {
            case "changeclothes":
                if (!NAPI.Data.GetEntityData(client, "IN_CP_MODE"))
                {
                    bool gender = Main.Players[client].Gender;
                    Customization.ApplyCharacter(client);
                    Customization.ClearClothes(client, gender);
                    if (gender)
                    {
                        Customization.SetHat(client, 39, 0);
                        //client.SetClothes(1, 52, 0);
                        client.SetClothes(11, 53, 0);
                        client.SetClothes(4, 31, 0);
                        client.SetClothes(6, 25, 0);
                        client.SetClothes(9, 15, 2);
                        client.SetClothes(3, 49, 0);
                    }
                    else
                    {
                        Customization.SetHat(client, 38, 0);
                        //client.SetClothes(1, 57, 0);
                        client.SetClothes(11, 46, 0);
                        client.SetClothes(4, 30, 0);
                        client.SetClothes(6, 25, 0);
                        client.SetClothes(9, 17, 2);
                        client.SetClothes(3, 53, 0);
                    }
                    if (client.HasData("HAND_MONEY"))
                    {
                        client.SetClothes(5, 45, 0);
                    }
                    else if (client.HasData("HEIST_DRILL"))
                    {
                        client.SetClothes(5, 41, 0);
                    }
                    NAPI.Data.SetEntityData(client, "IN_CP_MODE", true);
                    return;
                }
                Fractions.Manager.setSkin(client, 7, Main.Players[client].FractionLVL);
                client.SetData("IN_CP_MODE", false);
                return;

            case "pistol50":
                Fractions.Manager.giveGun(client, Weapons.Hash.Pistol50, "pistol50");
                return;

            case "carbineRifle":
                Fractions.Manager.giveGun(client, Weapons.Hash.CarbineRifle, "carbineRifle");
                return;

            case "riflesammo":
                if (!Manager.canGetWeapon(client, "RiflesAmmo"))
                {
                    return;
                }
                Fractions.Manager.giveAmmo(client, ItemType.RiflesAmmo, 30);
                return;

            case "heavyshotgun":
                Fractions.Manager.giveGun(client, Weapons.Hash.HeavyShotgun, "heavyshotgun");
                return;

            case "stungun":
                Fractions.Manager.giveGun(client, Weapons.Hash.StunGun, "stungun");
                return;

            case "close":
                MenuManager.Close(client);
                return;
            }
        }
コード例 #26
0
        private static void callback_hospitalstock(Client client, Menu menu, Menu.Item item, string eventName, dynamic data)
        {
            switch (item.ID)
            {
            case "takemed":
                if (!Manager.canGetWeapon(client, "Medkits"))
                {
                    return;
                }
                if (Stocks.fracStocks[8].Medkits <= 0)
                {
                    Notify.Send(client, NotifyType.Error, NotifyPosition.BottomCenter, $"На складе не осталось аптечек", 3000);
                    return;
                }
                var tryAdd = nInventory.TryAdd(client, new nItem(ItemType.HealthKit));
                if (tryAdd == -1 || tryAdd > 0)
                {
                    Notify.Send(client, NotifyType.Error, NotifyPosition.BottomCenter, $"Недостаточно места в инвентаре", 3000);
                    return;
                }
                nInventory.Add(client, new nItem(ItemType.HealthKit));
                var itemInv = nInventory.Find(Main.Players[client].UUID, ItemType.HealthKit);
                Notify.Send(client, NotifyType.Info, NotifyPosition.BottomCenter, $"Вы взяли аптечку. У Вас {itemInv.Count} штук", 3000);
                Stocks.fracStocks[8].Medkits--;
                GameLog.Stock(Main.Players[client].FractionID, Main.Players[client].UUID, "medkit", 1, false);
                break;

            case "putmed":
                itemInv = nInventory.Find(Main.Players[client].UUID, ItemType.HealthKit);
                if (itemInv == null)
                {
                    Notify.Send(client, NotifyType.Error, NotifyPosition.BottomCenter, $"У Вас нет аптечек", 3000);
                    return;
                }
                nInventory.Remove(client, ItemType.HealthKit, 1);
                Notify.Send(client, NotifyType.Info, NotifyPosition.BottomCenter, $"Вы положили аптечку. У Вас осталось {itemInv.Count - 1} штук", 3000);
                Stocks.fracStocks[8].Medkits++;
                GameLog.Stock(Main.Players[client].FractionID, Main.Players[client].UUID, "medkit", 1, true);
                break;

            case "tazer":
                if (!Main.Players.ContainsKey(client))
                {
                    return;
                }

                if (Main.Players[client].FractionLVL < 3)
                {
                    Notify.Send(client, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы не имеете доступа к электрошокеру", 3000);
                    return;
                }

                Weapons.GiveWeapon(client, ItemType.StunGun, Weapons.GetSerial(true, 8));
                Trigger.ClientEvent(client, "acguns");
                return;

            case "close":
                MenuManager.Close(client);
                return;
            }

            Menu.Item menuItem = new Menu.Item("header", Menu.MenuItem.Header);
            menuItem.Text = $"Склад ({Stocks.fracStocks[8].Medkits}шт)";
            menu.Change(client, 0, menuItem);
        }
コード例 #27
0
ファイル: WorkManager.cs プロジェクト: alexenin/romantic
        private static void callback_gpStartMenu(Client client, Menu menu, Menu.Item item, string eventName, dynamic data)
        {
            if (!Main.Players.ContainsKey(client) || client.Position.DistanceTo(Gopostal.Coords[0]) > 15)
            {
                MenuManager.Close(client);
                return;
            }
            switch (item.ID)
            {
            case "start":
                if (Main.Players[client].WorkID == 2)
                {
                    if (!NAPI.Data.GetEntityData(client, "ON_WORK"))
                    {
                        if (Houses.HouseManager.Houses.Count == 0)
                        {
                            return;
                        }
                        client.SetData("PACKAGES", 10);
                        Notify.Send(client, NotifyType.Info, NotifyPosition.BottomCenter, $"Вы получили 10 посылок, развезите их по домам", 3000);
                        client.SetData("ON_WORK", true);

                        client.SetData("W_LASTPOS", client.Position);
                        client.SetData("W_LASTTIME", DateTime.Now);
                        var next = Jobs.WorkManager.rnd.Next(0, Houses.HouseManager.Houses.Count - 1);
                        while (Houses.HouseManager.Houses[next].Position.DistanceTo2D(client.Position) < 200)
                        {
                            next = Jobs.WorkManager.rnd.Next(0, Houses.HouseManager.Houses.Count - 1);
                        }

                        client.SetData("NEXTHOUSE", Houses.HouseManager.Houses[next].ID);
                        Trigger.ClientEvent(client, "createCheckpoint", 1, 1, Houses.HouseManager.Houses[next].Position, 1, 0, 255, 0, 0);
                        Trigger.ClientEvent(client, "createWaypoint", Houses.HouseManager.Houses[next].Position.X, Houses.HouseManager.Houses[next].Position.Y);
                        Trigger.ClientEvent(client, "createWorkBlip", Houses.HouseManager.Houses[next].Position);

                        var gender = Main.Players[client].Gender;
                        Customization.ClearClothes(client, gender);
                        if (gender)
                        {
                            Customization.SetHat(client, 76, 10);
                            client.SetClothes(11, 38, 3);
                            client.SetClothes(4, 17, 0);
                            client.SetClothes(6, 1, 7);
                            client.SetClothes(3, Core.Customization.CorrectTorso[gender][38], 0);
                        }
                        else
                        {
                            Customization.SetHat(client, 75, 10);
                            client.SetClothes(11, 0, 6);
                            client.SetClothes(4, 25, 2);
                            client.SetClothes(6, 1, 2);
                            client.SetClothes(3, Core.Customization.CorrectTorso[gender][0], 0);
                        }

                        int x = Jobs.WorkManager.rnd.Next(0, Gopostal.GoPostalObjects.Count);
                        BasicSync.AttachObjectToPlayer(client, Jobs.Gopostal.GoPostalObjects[x], 60309, new Vector3(0.03, 0, 0.02), new Vector3(0, 0, 50));
                    }
                    else
                    {
                        Notify.Send(client, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы уже начали рабочий день", 3000);
                    }
                }
                else
                {
                    Notify.Send(client, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы не работаете курьером. Устроиться можно в мэрии", 3000);
                }
                return;

            case "get":
            {
                if (Main.Players[client].WorkID != 2)
                {
                    Notify.Send(client, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы не работаете курьером", 3000);
                    return;
                }
                if (!client.GetData("ON_WORK"))
                {
                    Notify.Send(client, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы не начали рабочий день", 3000);
                    return;
                }
                if (client.GetData("PACKAGES") != 0)
                {
                    Notify.Send(client, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы не раздали все посылки. У Вас осталось ещё {client.GetData("PACKAGES")} штук", 3000);
                    return;
                }
                if (Houses.HouseManager.Houses.Count == 0)
                {
                    return;
                }
                client.SetData("PACKAGES", 10);
                Notify.Send(client, NotifyType.Info, NotifyPosition.BottomCenter, $"Вы получили 10 посылок. Развезите их по домам", 3000);

                client.SetData("W_LASTPOS", client.Position);
                client.SetData("W_LASTTIME", DateTime.Now);
                var next = Jobs.WorkManager.rnd.Next(0, Houses.HouseManager.Houses.Count - 1);
                while (Houses.HouseManager.Houses[next].Position.DistanceTo2D(client.Position) < 200)
                {
                    next = Jobs.WorkManager.rnd.Next(0, Houses.HouseManager.Houses.Count - 1);
                }
                client.SetData("NEXTHOUSE", Houses.HouseManager.Houses[next].ID);

                Trigger.ClientEvent(client, "createCheckpoint", 1, 1, Houses.HouseManager.Houses[next].Position, 1, 0, 255, 0, 0);
                Trigger.ClientEvent(client, "createWaypoint", Houses.HouseManager.Houses[next].Position.X, Houses.HouseManager.Houses[next].Position.Y);
                Trigger.ClientEvent(client, "createWorkBlip", Houses.HouseManager.Houses[next].Position);

                int y = Jobs.WorkManager.rnd.Next(0, Jobs.Gopostal.GoPostalObjects.Count);
                BasicSync.AttachObjectToPlayer(client, Jobs.Gopostal.GoPostalObjects[y], 60309, new Vector3(0.03, 0, 0.02), new Vector3(0, 0, 50));
                return;
            }

            case "finish":
                if (Main.Players[client].WorkID == 2)
                {
                    if (NAPI.Data.GetEntityData(client, "ON_WORK"))
                    {
                        Trigger.ClientEvent(client, "deleteCheckpoint", 1, 0);
                        BasicSync.DetachObject(client);

                        Notify.Send(client, NotifyType.Info, NotifyPosition.BottomCenter, $"Вы закончили рабочий день", 3000);
                        Trigger.ClientEvent(client, "deleteWorkBlip");

                        client.SetData("PAYMENT", 0);
                        Customization.ApplyCharacter(client);
                        if (client.HasData("HAND_MONEY"))
                        {
                            client.SetClothes(5, 45, 0);
                        }
                        else if (client.HasData("HEIST_DRILL"))
                        {
                            client.SetClothes(5, 41, 0);
                        }

                        client.SetData("PACKAGES", 0);
                        client.SetData("ON_WORK", false);

                        if (client.GetData("WORK") != null)
                        {
                            NAPI.Entity.DeleteEntity(client.GetData("WORK"));
                            client.SetData("WORK", null);
                        }
                    }
                    else
                    {
                        Notify.Send(client, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы не работаете", 3000);
                    }
                }
                else
                {
                    Notify.Send(client, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы не работаете курьером", 3000);
                }
                return;

            case "close":
                MenuManager.Close(client);
                return;
            }
        }
コード例 #28
0
ファイル: WorkManager.cs プロジェクト: alexenin/romantic
        public static void OpenTruckersOrders(Client player)
        {
            Menu menu = new Menu("truckersorders", false, false);

            menu.Callback += callback_truckersorders;

            Menu.Item menuItem = new Menu.Item("header", Menu.MenuItem.Header);
            menuItem.Text = "Заказы";
            menu.Add(menuItem);

            Order         order     = null;
            List <string> ordersIDs = new List <string>();

            foreach (var o in BusinessManager.Orders)
            {
                var biz        = BusinessManager.BizList[o.Value];
                var temp_order = biz.Orders.FirstOrDefault(or => or.UID == o.Key);
                if (temp_order == null || temp_order.Taked)
                {
                    continue;
                }
                if (order == null)
                {
                    order = temp_order;
                }
                ordersIDs.Add(o.Key.ToString());
            }

            if (ordersIDs.Count == 0)
            {
                Notify.Send(player, NotifyType.Error, NotifyPosition.BottomCenter, "Нет свободных заказов", 3000);
                return;
            }

            menuItem          = new Menu.Item("products", Menu.MenuItem.List);
            menuItem.Elements = ordersIDs;
            menu.Add(menuItem);

            menuItem      = new Menu.Item("Name", Menu.MenuItem.Card);
            menuItem.Text = $"Продукт: {order.Name}";
            menu.Add(menuItem);

            var youGet = Convert.ToInt32(order.Amount * BusinessManager.ProductsOrderPrice[order.Name] * 0.1);
            var max    = Convert.ToInt32(2000 * Group.GroupPayAdd[Main.Accounts[player].VipLvl]);
            var min    = Convert.ToInt32(500 * Group.GroupPayAdd[Main.Accounts[player].VipLvl]);

            if (youGet > max)
            {
                youGet = max;
            }
            else if (youGet < min)
            {
                youGet = min;
            }
            menuItem      = new Menu.Item("youget", Menu.MenuItem.Card);
            menuItem.Text = $"Вы получите: {youGet}$";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("take", Menu.MenuItem.Button);
            menuItem.Text = "Взять заказ";
            menu.Add(menuItem);

            menuItem      = new Menu.Item("close", Menu.MenuItem.Button);
            menuItem.Text = "Закрыть";
            menu.Add(menuItem);

            menu.Open(player);
        }
コード例 #29
0
ファイル: WorkManager.cs プロジェクト: alexenin/romantic
        private static void callback_truckersorders(Client client, Menu menu, Menu.Item item, string eventName, dynamic data)
        {
            List <Order> orders = client.GetData("TRUCKERORDERLIST");

            switch (eventName)
            {
            case "listChangeright":
            case "listChangeleft":
            {
                var uid = Convert.ToInt32(data["1"]["Value"].ToString());
                if (!BusinessManager.Orders.ContainsKey(uid))
                {
                    return;
                }

                Business biz   = BusinessManager.BizList[BusinessManager.Orders[uid]];
                var      order = biz.Orders.FirstOrDefault(o => o.UID == uid);

                menu.Items[2].Text = $"Продукт: {order.Name}";
                menu.Change(client, 2, menu.Items[2]);

                var youGet = Convert.ToInt32(order.Amount * BusinessManager.ProductsOrderPrice[order.Name] * 0.1);
                var max    = Convert.ToInt32(2000 * Group.GroupPayAdd[Main.Accounts[client].VipLvl]);
                var min    = Convert.ToInt32(500 * Group.GroupPayAdd[Main.Accounts[client].VipLvl]);
                if (youGet > max)
                {
                    youGet = max;
                }
                else if (youGet < min)
                {
                    youGet = min;
                }
                menu.Items[3].Text = $"Вы получите: {youGet}$";
                menu.Change(client, 3, menu.Items[3]);
                return;
            }

            case "button":
            {
                if (item.ID == "close")
                {
                    MenuManager.Close(client);
                }
                else
                {
                    if (client.HasData("ORDER"))
                    {
                        Notify.Send(client, NotifyType.Error, NotifyPosition.BottomCenter, $"Вы уже взяли заказ", 3000);
                        return;
                    }
                    var uid = Convert.ToInt32(data["1"]["Value"].ToString());
                    if (!BusinessManager.Orders.ContainsKey(uid))
                    {
                        Notify.Send(client, NotifyType.Error, NotifyPosition.BottomCenter, $"Такого заказа больше не существует", 3000);
                        return;
                    }
                    ;

                    Business biz   = BusinessManager.BizList[BusinessManager.Orders[uid]];
                    var      order = biz.Orders.FirstOrDefault(o => o.UID == uid);
                    if (order == null || order.Taked)
                    {
                        Notify.Send(client, NotifyType.Error, NotifyPosition.BottomCenter, $"Этот заказ уже взял кто-то другой", 3000);
                        return;
                    }

                    order.Taked = true;

                    client.SetData("ORDERDATE", DateTime.Now.AddMinutes(6));

                    Notify.Send(client, NotifyType.Info, NotifyPosition.BottomCenter, $"Вы взяли заказ по доставке {order.Name} в {BusinessManager.BusinessTypeNames[biz.Type]}. Сначала закупите товар", 3000);
                    var pos = getProduct[biz.Type];
                    Trigger.ClientEvent(client, "createWaypoint", pos.X, pos.Y);
                    client.SetData("ORDER", uid);
                    MenuManager.Close(client);
                }
                return;
            }
            }
        }