Пытаюсь сделать полностью своё меню выбора команды, сделал своё меню, которое в общем-то само по себе работает (проверял через register_clcmd("chooseteam", "mymenu") ).
Но когда я вывожу это меню через отлов мессаги ShowMenu и VGUIMenu то оно вообще не работает.
Если у меня _vgui_menus 0, то при заходе на сервер меню открывается, я выбираю любую команду, меня за неё переводит но не спавнит (ExecuteHam(Ham_CS_RoundRespawn, id) ), а если сам нажимаю кнопку M (chooseteam), то меню вообще не открывается.
Если же у меня _vgui_menus 1, то меню при нажатии на M открывается, но всё так же, всё равно не спавнит.
Вот код:
Но когда я вывожу это меню через отлов мессаги ShowMenu и VGUIMenu то оно вообще не работает.
Если у меня _vgui_menus 0, то при заходе на сервер меню открывается, я выбираю любую команду, меня за неё переводит но не спавнит (ExecuteHam(Ham_CS_RoundRespawn, id) ), а если сам нажимаю кнопку M (chooseteam), то меню вообще не открывается.
Если же у меня _vgui_menus 1, то меню при нажатии на M открывается, но всё так же, всё равно не спавнит.
Вот код:
C++:
#include <amxmodx>
#include <cs_team_changer>
#include <hamsandwich>
#pragma ctrlchar '\'
#pragma semicolon 1
public plugin_init()
{
register_message(get_user_msgid("ShowMenu"), "event_textmenu");
register_message(get_user_msgid("VGUIMenu"), "event_vguimenu");
}
public event_textmenu(msgid, dest, id)
{
new menucode[9];
get_msg_arg_string(4, menucode, 8);
if (equal(menucode, "#Team", 5) || equal(menucode, "#IG_Team", 8))
{
show_teamselectmenu(id);
set_msg_block(msgid, BLOCK_ONCE);
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}
public event_vguimenu(msgid, dest, id)
{
if (get_msg_arg_int(1) == 2)
{
show_teamselectmenu(id);
set_msg_block(msgid, BLOCK_ONCE);
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}
public show_teamselectmenu(id)
{
new tsmenu_dsc = menu_create("\\yвыбери команду:", "tsmenu_handler");
menu_additem(tsmenu_dsc, "\\wтеры", "", 0, -1);
menu_additem(tsmenu_dsc, "\\wконтры", "", 0, -1);
menu_additem(tsmenu_dsc, "\\wнаблюдатели", "", 0, -1);
menu_addblank(tsmenu_dsc, 0);
menu_additem(tsmenu_dsc, "\\wзакрыть", "", 0, -1);
menu_setprop(tsmenu_dsc, MPROP_EXIT, MEXIT_NEVER);
menu_display(id, tsmenu_dsc, 0);
}
public tsmenu_handler(id, dsc, item)
{
switch (item)
{
case 0:
{
cs_set_team(id, CSTEAM_TERRORIST);
ExecuteHam(Ham_CS_RoundRespawn, id);
}
case 1:
{
cs_set_team(id, CSTEAM_CT);
ExecuteHam(Ham_CS_RoundRespawn, id);
}
case 2:
{
cs_set_team(id, CSTEAM_SPECTATOR);
ExecuteHam(Ham_CS_RoundRespawn, id);
user_silentkill(id);
}
case 3: {menu_destroy(dsc); show_menu(id, 0, "\n", 1);}
default: {return;}
}
}