Главная | Комментарии | О проекте
Чтение RSS
Суперсайт
Главная Контакты Карта сайта Добавить в избранное
  • Кто OnLine

    Всего на сайте: 2
    Гостей: 1
    Пользователи: - отсутствуют
    Роботы: crawl Bot

    Опрос пользователей

    Для какого мода Вы пишите плагины?

    • Популярное

    Рекомендуем

    • AMX Mod X
    • up.org.ua

    Наши друзья


  • Автор: Admin Дата: 15-12-2011, 01:03 Просмотров: 6104

    menu_create Функция создания нового меню

    Новая система меню немного сложнее старой, но зато имеет ряд преимуществ и больший функционал.
    Так как в Новой системе меню еще больше различных функций, то рабочие примеры меню, пойдут чуть позже, дабы не вводить вас в заблуждение.
    А пока что давайте начнем с изучения функции которая создает меню - menu_create

    Инфо из newmenu.inc:
    /**
    * @brief Creates a new menu object.
    *
    * The handler function should be prototyped as:
    *
    * public <function>(menu, id, item)
    *  menu   - Menu resource identifier.
    *  id     - Client the menu is being acted upon.
    *  item   - Item the client selected.  If less than 0, the menu was
    *           cancelled and the item is a status code.  menu_display
    *             should never be called immediately if the item is a status
    *             code, for re-entrancy reasons.
    *
    * The handler function should always return PLUGIN_HANDLED to block
    * any old menu handlers from potentially feeding on the menu, unless
    * that is the desired functionality.
    *
    * @param title         Title the menu should use.
    * @param handler        Name of the handler function.  The function will be invoked
    *                once and only once to every menu_display() call.
    * @param ml        Unused (should be 0).
    * @return        Menu resource identifier which must be destroyed via
    *                menu_destroy().  All menus are destroyed when the plugin
    *                unloads.
    * @error            Function name not found.
    */
    native menu_create(const title[], const handler[], ml=0);


    Синтаксис:
    menu_create ( title[], handler[], ml=0 )

    • title[] - Заголовок меню
    • handler[] - Функция обработчик ( какая функция будет вызвана при выборе какого то пункта меню.)
    • ml=0 - Должно быть ноль. (скудная информация с офф сайта)


    Тип функции:
    Native

    Пример:


    /* Plugin generated by AMXX-Studio */

    #include <amxmodx>
    #include <amxmisc>

    #define PLUGIN "[newmenu.inc] menu_create"
    #define VERSION "1.0"
    #define AUTHOR "Admin"
    new mTEST // Menu

    public plugin_init() {
        mTEST = menu_create("TEST", "mh_TEST")
        register_plugin(PLUGIN, VERSION, AUTHOR)
    }


    Описание:
    Обратите внимание, что данная функция создает меню, а не показывает его игроку.
    То есть меню надо сначала создать, внести туда все необходимые данные и только потом его показывать игроку.
    Если меню не будет изменяться динамически, лучше его создавать в plugin_init, что немного оптимизирует плагин.
    Если же у вас будет меню со списком игроков ( что в течении карты многократно изменяется) то создавать меню придется каждый раз при вызове функции и заново добавлять в него пункты ( список игроков) меню.

    Так же функция возвращает идентификатор меню, по которому в дальнейшем это меню можно уничтожить.
    Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
    Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Наверх

Реклама