Инфо из amxmodx.inc:
/* Gets what menu the player is watching and what keys for menu he have.
* When there is no menu the index is 0. If the id is negative then the menu
* is VGUI in other case the id is from register_menuid() function. */
native get_user_menu(index,&id,&keys);
Синтаксис:
get_user_menu ( index,&id,&keys )
- index - id игрока
- &id - вернет menuid
- &keys - (как с этим аргументом работать не разобрался, и примеров не нашел.)
Тип функции:
Native
Пример:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#define PLUGIN "[amxmodx.inc] get_user_menu"
#define VERSION "1.0"
#define AUTHOR "Admin"
new mtestmenu // Menu
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /menu","f_openmenu")
register_clcmd("say /tmenu","f_topenmenu")
/* Menu test menu */
/* Use menu_display(id, mtestmenu, 0) to show the menu to an user. */
mtestmenu = menu_create("test menu", "mh_testmenu")
menu_additem(mtestmenu, "Test item", "1")
menu_additem(mtestmenu, "Test item2", "2")
/* Menu End */
}
public f_openmenu(id){
menu_display(id, mtestmenu, 0)
}
public f_topenmenu(id){
new mid,keys
get_user_menu(id,mid,keys)
client_print(0,print_chat,"Menu id:%d",mid)
}
public mh_testmenu(id, menu, item) {
item++
client_print(id,print_chat,"item:%d",item)
}
Описание:
Когда не открыто ни какого меню, функция вернет 0. Если вернет отрицательный результат тогда меню - VGUI.
В примере выше две функции и меню для эксперимента.
Выполнив команду say /tmenu вам в чат будет выдана информация содержащая id открытого меню.
Вводите эту команду когда у вас открыты разные меню ( функция работает со всеми меню, а не только с теми которые есть в плагине)
Кто знает как работать с &keys, пишите в комментарии или мне в ЛС, обязательно дополню и укажу вас как источник.