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

    Всего на сайте: 8
    Гостей: 5
    Пользователи: - отсутствуют
    Роботы: Yandex Bot, crawl Bot, robot Bot

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

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

    • Популярное

    Рекомендуем

    • AMX Mod X
    • up.org.ua

    Наши друзья


  • Автор: Admin Дата: 7-03-2012, 11:56 Просмотров: 2615

    menu_find_id Функция находит id пункта из меню по указанию страницы и номера.

    Откровенно говоря, я сам не смог найти пример использования этой функции, найти пример мне помог DJ_WEST, так как я сам искал ка кэту функцию применять немного не в том месте, но теперь я понял, что эта функция получает id пункта из меню, где надо указать страницу где этот пункт меню и его номер. Использование данной функции скорее пригодится опытным скриптерам, чем новичкам.

    Инфо из newmenu.inc:
    /**
    * Given a page on a menu and a keypress on that page, returns the item id selected.
    * If the item is less than 0, a special option was chosen (such as MENU_EXIT).
    *
    * @param menu            Menu resource identifier.
    * @param page            Page on the menu.
    * @param key            Key pressed (from 1 to 10).
    * @return                Item identifier, or <0 for a special selection code.
    * @error                Invalid menu resource.
    */
    native menu_find_id(menu, page, key);


    Синтаксис:
    menu_find_id(menu, page, key)

    • menu - id меню
    • page - Страница на которой находится нужный итем
    • key - Номер нужного итема
    Функция вернет id интересующего имтема

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

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

    #include <amxmodx>
    #include <amxmisc>

    #define PLUGIN "[newmenu.inc] menu_items"
    #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")
        
        mTEST = menu_create("TEST", "mh_TEST")
        mcbTEST = menu_makecallback("mcb_TEST")
        
        new szItem[64]
        for (new i=1; i < 25; i++){
            format(szItem,63,"Item %i",i)
            menu_additem(mTEST,szItem, "ma_TEST", ADMIN_ALL, mcbTEST)
        }
        menu_setprop(mTEST,MPROP_EXIT, 1)
        
        new iItems
        iItems = menu_items(mTEST)
        server_print("[NewMenus] Number items:%d",iItems)
    }
    public func_menu(id){

        
        new menu_item_id = menu_find_id(mTEST,1,2)

        menu_item_setname(mTEST,menu_item_id,"New Menu Item Name")
        
        menu_display(id, mTEST, 0)
    }
    public mh_TEST(id, menu, item) {
        item++
        client_print(id,print_chat,"You select %d",item)
    }
    public mcb_TEST(id, menu, item){
        //callback
    }


    Описание:
    Для наглядности работы функции, мы получим айди итема и изменим его название.

    Использовать ее можно где угодно и когда угодно, тут же она используется перед открытием меню, для наглядности.
    Вы допустим можете после первого открытия меню, изменить пункт меню на другой.
    Например если у вас есть АВП, то пункт меню изменится на АК и на оброт. Тут уже все зависит от вашей задачи.

    Вернемся к нашим баранам...
    А так у нас есть меню состоящее из более чем двадцати пунктов, а нам допустим необходимо изменить пункт 2 на второй же странице.
    Для этого получаем его айди:
    new menu_item_id = menu_find_id(mTEST,1,2)

    Обратите внимание, нумерация страниц начинается с нуля, асамих итемов с 1.

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

Реклама