Инфо из newmenus.inc:
/**
* Cancels a player's menu, effectively forcing the player to select MENU_EXIT.
* The menu will still exist on their screen but any results are invalidated,
* and the callback is invoked.
*
* @param player Client index.
* @noreturn
* @error Invalid client index.
*/
native menu_cancel(player);
Синтаксис:
menu_cancel ( player )
- player - id игрока кому надо отменить меню.
Тип функции:
Native
Пример:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#define PLUGIN "[newmenu.inc] menu_cancel"
#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_additem(mTEST, "M test 6", "ma_TEST", ADMIN_ALL, mcbTEST)
menu_additem(mTEST, "M test 7", "ma_TEST", ADMIN_ALL, mcbTEST)
menu_additem(mTEST, "M test 8", "ma_TEST", ADMIN_ALL, mcbTEST)
menu_additem(mTEST, "M test 9", "ma_TEST", ADMIN_ALL, mcbTEST)
menu_setprop(mTEST,MPROP_EXIT, 1)
/* Menu End */
}
public func_menu(id){
//Функция показывает меню,
//которое было сформировано еще в plugin_init
menu_display(id, mTEST, 0)
menu_cancel(id)
}
/* Menu TEST */
public mh_TEST(id, menu, item) {
// Функция вызывается при выборе одного из пунктов меню
item++
client_print(id,print_chat,"You select %d",item)
}
public mcb_TEST(id, menu, item) {
// Тут код для активации/де активации пунктов меню
}
Описание:
Результат работы примера:
Обратите внимание, на то, что уже перед тем как в чат вывелась команда, в меню уже отправлена команда на выход You select -2:
public func_menu(id){
//Функция показывает меню,
//которое было сформировано еще в plugin_init
menu_display(id, mTEST, 0)
menu_cancel(id)
}
Так как функция отмены меню идет сразу же за его показом.
И если вы выберите любой из пунктов меню, то уже не произойдет ничего, так как меню находится только у вас на экране и ни каких функций оно уже не исполнит.