Инфо из newmenus.inc:
/**
* Sets a menu property.
*
* @param menu Menu resource identifier.
* @param prop MPROP_ constant.
* @param ... Property parameters.
* @return 1 on success, 0 on failure.
* @error Invalid menu resource or property.
*/
native menu_setprop(menu, prop, ...);
Синтаксис:
menu_setprop ( menu, prop, ... )
- menu - Идентификатор меню
- prop - Константа свойства
-
// Число пунктов на странице. 0 - без нумерации страниц.
#define MPROP_PERPAGE 1
// Название кнопки "Назад". Параметр - строка.
#define MPROP_BACKNAME 2
// Название кнопки "Дальше". Параметр - строка.
#define MPROP_NEXTNAME 3
// Название кнопки "Выход". Параметр - строка.
#define MPROP_EXITNAME 4
// Текст заголовка меню. Параметр - строка.
#define MPROP_TITLE 5
// Возможность выхода. Параметр - число, смотрите константы MEXIT.
#define MPROP_EXIT 6
// Цвет чисел. Параметр - строка. (По умолчанию "\r")
#define MPROP_NUMBER_COLOR 10
-
- ... - Значение для свойства:
- Для MPROP_EXIT
#define MEXIT_ALL 1 // В меню будет кнопка выхода (по умолчанию)
#define MEXIT_NEVER -1 // В меню не будет кнопки выхода - Для остальных см. выше.
- Для MPROP_EXIT
Тип функции:
Native
Пример:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#define PLUGIN "[newmenu.inc] menu_setprop"
#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_additem(mTEST, "M test 2", "ma_TEST", ADMIN_ALL, mcbTEST)
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_setprop(mTEST,MEXIT_ALL, 0)
/* 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) {
// Тут код для активации/де активации пунктов меню
}
Описание:
В данном примере я не буду рассматривать все свойства, они описаны в синтаксисе, я приведу лишь один пример, как убрать пункт "выход" из меню.
Что бы не пояснять весь код, повторю функцию:
menu_setprop(mTEST,MEXIT_ALL, 0)mTEST это идентификатор созданного меню, далее идет свойство описанное в синтаксисе и третий аргумент указывает что это свойство будет выключено.
На картинке результат работы примера:
