Как правильно заблокировать мессагу меню chooseteam?

Сообщения
30
Реакции
0
Пытаюсь сделать полностью своё меню выбора команды, сделал своё меню, которое в общем-то само по себе работает (проверял через register_clcmd("chooseteam", "mymenu") ).
Но когда я вывожу это меню через отлов мессаги 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;}
    }
}
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу