Быстрая регистрация


Последние темы с зомби форума

Популярная тема Биография Хилари Дафф
Автор fascinatedelati , 13 мая 2025 - 14:51 В: Counter-Strike: Source » Уязвимости
    0 Ответов
    381 Просмотров
    Аватар fascinatedelati fascinatedelati
    13 мая 2025 - 14:51
    Популярная тема RevEmu
    Автор sossisuka , 11 мая 2025 - 02:40 В: Counter-Strike: Global Offensive » Создание и настройка сервера
      0 Ответов
      331 Просмотров
      Аватар sossisuka sossisuka
      11 мая 2025 - 02:40
      Популярная тема DHC витамины – здоровье в каждой таблетке
      Автор onytaxoh , 9 мая 2025 - 13:55 В: Half-Life » Создание и настройка сервера
        0 Ответов
        320 Просмотров
        Аватар onytaxoh onytaxoh
        9 мая 2025 - 13:55
        Популярная тема [CS:GO] Создание NoSteam сервера
        Автор sossisuka , 27 апреля 2025 - 22:28 В: Counter-Strike: Global Offensive » Создание и настройка сервера
          0 Ответов
          297 Просмотров
          Аватар sossisuka sossisuka
          27 апреля 2025 - 22:28
          Популярная тема Открытие форума. Всерьез и надолго
          Автор sossisuka , 10 апреля 2025 - 15:06 В: Новости сообщества » Новости сайта
            0 Ответов
            1587 Просмотров
            Аватар alawz alawz
            10 апреля 2025 - 15:06


            
            06
            май
            2025

            [TUT] Делаем базовое меню    

            Категория: CS 1.6: Статьи, Автор: alawz, Просмотров: 154


            Доброго времени суток,хочу рассказать вам о том как сделать базовое меню на своем зомби сервере Zombie Plague (ZP).

            Начнем 1 делом прописываем инклюды которые будут нужны в написание плагина в нашем случае :
            #include <amxmodx>

            далее мы делаем Инициализацию плагина:
            public plugin_init()
            {
                //вставьте ваш код

                register_clcmd( "my_awesome_menu","AwesomeMenu");
               //регистрируем команду что бы добраться до меню
            }

            Далее регистрируем функцию что бы дальше можно было сделать меню:
            }
            public AwesomeMenu(id)
            {

            далее делаем переменную которая позже будет "держать меню":
            new menu = menu_create("\rLook at this awesome Menu!:", "menu_handler");

            Первый Параметр - То как будет названа "шапка" меню
            Второй параметр - Функция которая будет обращаться с меню (какая пункт был нажат и что он делает)

            Далее Добавляем что-либо в меню:
               menu_additem(menu, "\wI'm Selection #1", "1", 0);
               menu_additem(menu, "\wI'm Selection #2", "2", 0);
               menu_additem(menu, "\wI'm Secret Selection #3", "3", ADMIN_ADMIN);

              //Первый параметр - к какому меню мы будем относить добавление этой вещи
              //Второй параметр - то как будет назван этот предмет
              //Третий параметр - данные которые мы хотим послать с этим пунктом
              //Четвертый параметр - какой флаг мы хотим установить что бы можно было выбрать данную функцию

            Далее мы устанавливаем собственность на меню:
            menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);

            menu_display(id, menu, 0);

              //Первый параметр - какому индексу показать это (Вы не можете показать это всем сразу)
              //Второй параметр - какое меню показать им (в этом случае, то что мы сделали)

            После того как мы показали им меню мы должны использовать функцию которая была раньше в menu_create:
            public menu_handler(id, menu, item)
            {
                //Мы не будем иметь дело если вышли из меню
                if( item == MENU_EXIT )
                {
                    menu_destroy(menu);
                    //позволяет разрушить меню когда они что-либо выбрали
                    return PLUGIN_HANDLED;
                }

                //Теперь создаем некоторые переменные которые дают нам информацию о выбранном пункте
                new data[6], szName[64];
                new access, callback;
                //Эта функция даст нам информацию
                menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);

                //Далее мы посылаем данные с каждым пунктом к menu_additem
                new key = str_to_num(data);

                //Теперь Позволяет находить какой пункт был нажат
                switch(key)
                {
                    case 1:
                    {
                        //то что будет прописываться в чат
                        client_print(id, print_chat, "Вы выбрали 1 пункт");
                        // если мы хотим что бы меню закрылось после выбора
                        menu_destroy(menu);
                        return PLUGIN_HANDLED;
                    }
                    case 2:
                    {
                        client_print(id, print_chat, "Вы выбрали пункт 2");
                    }
                    case 3:
                    {
                        client_print(id, print_chat, "Вы Выбрали пункт для Администрации");
                    }
                }

                menu_destroy(menu);
                return PLUGIN_HANDLED;
            }

            Вот полностью код плагина:
            #include <amxmodx>

            public plugin_init()
            {
                register_clcmd( "my_awesome_menu","AwesomeMenu");
            }
            public AwesomeMenu(id)
            {
                new menu = menu_create("\rLook at this awesome Menu!:", "menu_handler");

                menu_additem(menu, "\wI'm Selection #1", "1", 0);
                menu_additem(menu, "\wI'm Selection #2", "2", 0);
                menu_additem(menu, "\wI'm Secret Selection #3", "3", ADMIN_ADMIN);

                menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);

                menu_display(id, menu, 0);
            }
            public menu_handler(id, menu, item)
            {
                if( item == MENU_EXIT )
                {
                    menu_destroy(menu);
                    return PLUGIN_HANDLED;
                }

                new data[6], szName[64];
                new access, callback;
                menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);

                new key = str_to_num(data);

                switch(key)
                {
                    case 1:
                    {
                        client_print(id, print_chat, "Вы Выбрали пункт 1");
                        menu_destroy(menu);
                        return PLUGIN_HANDLED;
                    }
                    case 2:
                    {
                        client_print(id, print_chat, "Вы Выбрали пункт 2");
                    }
                    case 3:
                    {
                        client_print(id, print_chat, "Вы Выбрали пункт для Администрации");
                    }
                }

                menu_destroy(menu);
                return PLUGIN_HANDLED;
            }

            Вроде все
            P.S. Добавить еще статью как сделать под меню меню для голосования и т.д...



            0

            Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

            Комментарии


            Добавление комментария