Samwise писал(а):А не получится так, что будут созданы "несколько типов меню"?
И show_menu можно ли заменить на menu_cancel?
Насколько я знаю, при показе одного меню поверх второго - будет вызываться обработчик первого меню, главное там уничтожить меню(menu_destroy) и проблем с утечками не должно быть, та же функция player_menu_info, как по мне, показывает что старый и новый стили меню вроде как нормальные и взаимодействовать должны.
Кстати, раз уж есть уже готовые варианты, скину на котором сам тестил(на букву фонаря любое показанное меню будет уничтожено, ибо не хотел муток с глобальными переменными):
- Код: Выделить всё
public plugin_init()
{
register_plugin("lol", "1", "me");
register_impulse(100, "menu_show");
}
public menu_show(id)
{
new menuid, old_styled_menuid;
if(player_menu_info(id, old_styled_menuid, menuid) == 1 && menuid != -1)
{
show_menu(id, 0, "^n", 1);
return PLUGIN_HANDLED;
}
new menu = menu_create("test menu", "menu_handler");
menu_additem(menu, "test item1");
menu_additem(menu, "test item2");
menu_display(id, menu);
return PLUGIN_HANDLED;
}
public menu_handler(id, menu, item)
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}