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

    Всего на сайте: 7
    Гостей: 1
    Пользователи: - отсутствуют
    Роботы: Google Bot, Google Bot, Mail Ru, crawl Bot, Google Bot, robot Bot

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

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

    • Популярное

    Рекомендуем

    • AMX Mod X
    • up.org.ua

    Наши друзья


  • Автор: Admin Дата: 21-12-2011, 02:07 Просмотров: 4296

    menu_addtext Функция добавляет текст между пунктами меню

    Иногда есть необходимость сделать небольшое объяснение к пункту меню, что бы это пояснение выглядело красиво используйте функцию menu_addtext, которая добавляет текст между пунктами меню.

    Инфо из newmenu.inc:
    /**
    * Adds a text line to a menu.  Only available in amxmodx 1.8.1 and above.
    *
    * @param menu            Menu resource identifier.
    * @param text            Text to add.
    * @param slot            1 (default) if the line should shift the numbering down.
    *                         0 if the line should be a visual shift only.
    * @noreturn
    * @error                Invalid menu resource.
    */
    native menu_addtext(menu, const text[], slot=1);


    Синтаксис:
    menu_addtext(menu, const text[], slot=1);

    • menu - Идентификатор меню
    • const text[] - Массив с добавляемым текстом или текст заключенный в двойные кавычки
    • slot=1 - Занимает ли текст слот меню или нет.


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

    Пример:
    /* Plugin generated by AMXX-Studio */

    #include <amxmodx>
    #include <amxmisc>

    #define PLUGIN "[newmenu.inc] menu_addtext"
    #define VERSION "1.0"
    #define AUTHOR "Admin"

    new mTEST // Menu
    new mcbTEST // Menu Callback

    public plugin_init() {
        
        register_plugin(PLUGIN, VERSION, AUTHOR)
        
        register_clcmd("say /menu","func_menu")

        /* Menu TEST */
        mTEST = menu_create("TEST", "mh_TEST")
        mcbTEST = menu_makecallback("mcb_TEST")
        menu_additem(mTEST, "M test 1", "ma_TEST", ADMIN_ALL, mcbTEST)
        menu_addblank(mTEST, 0)
        menu_additem(mTEST, "M test 2", "ma_TEST", ADMIN_ALL, mcbTEST)
        menu_addtext(mTEST,"\rMy \wMega \dSuperPuper \yText ",0)
        menu_additem(mTEST, "M test 3", "ma_TEST", ADMIN_ALL, mcbTEST)
        menu_additem(mTEST, "M test 4", "ma_TEST", ADMIN_ALL, mcbTEST)
        menu_additem(mTEST, "M test 5", "ma_TEST", ADMIN_ALL, mcbTEST)
        /* Menu End */


    }
    public func_menu(id){
        //Функция показывает меню,
        //которое было сформировано еще в plugin_init
        menu_display(id, mTEST, 0)
    }
    /* Menu TEST */
    public mh_TEST(id, menu, item) {
        // Функция вызывается при выборе одного из пунктов меню
    }
    public mcb_TEST(id, menu, item) {
        // Тут код для активации/де активации пунктов меню
    }


    Описание:
    Как видно на картинке, результатом работы данного примера является меню и между пунктами 2 и 3 добавлена строка с текстом.А между первыми вторым просто пустое место.
    menu_addtext Функция добавляет текст между пунктами меню








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

    --
    ICQ: --
    Публикаций: 0
    Комментариев: 0
    Репутация: -  0  +

    Поддерживается только новыми версиями amxx. Мне ближе перенос строки.
    MrJunior

    9.11.2017
    ICQ: --
    Публикаций: 0
    Комментариев: 1
    Репутация: -  0  +

    Перенос строки - быстрее и лучше будет в плане выполнения кода, зачем вызывать целую функцию если можно использовать 2 ячейки массива?
    Radius

    7.05.2013
    ICQ: 357188115
    Публикаций: 1
    Комментариев: 44
    Репутация: -  4  +

    Цитата: MrJunior
    Перенос строки - быстрее и лучше будет в плане выполнения кода, зачем вызывать целую функцию если можно использовать 2 ячейки массива?

    В данном случае меню статичное (создается 1 раз), поэтому остается вопрос читабельности кода.

    Информация

    Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Наверх

Реклама