1. kupidon Пользователь

    Регистрация:
    17.11.15
    Сообщения:
    312
    Симпатии:
    27
    Пол:
    Мужской
    Плагин change team с vgui меню

    Вот код моей версии этого плагина от неугомона.
    У меня вопрос: Не забанят ли за этот плагин на gs-monitor и других очень строгих мониторингах, за то что используется vgui menu для входа в игру или смены команды?

    /*
    Часть кода с обходом лимита предоставил Freedo.m, за что ему спасибо
    */

    #include <amxmodx>
    #include <cstrike>
    #include <fakemeta>

    #pragma semicolon 1

    new g_MapName[32], bool:g_VIPMap = false;

    public plugin_init()
    {
    register_plugin("Change Team", "1.0", "neygomon");
    register_clcmd("chooseteam", "ShowMenu");
    register_menucmd(register_menuid("Team Menu"), MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_5|MENU_KEY_6|MENU_KEY_0, "HandleMenu");
    register_message(96, "MessageShowMenu");
    register_message(114, "MessageVGUIMenu");
    get_mapname(g_MapName, charsmax(g_MapName));
    if(containi(g_MapName, "as_") != -1) g_VIPMap = true;
    }

    public ShowMenu(id)
    {
    new szMenu[512], iLen = formatex(szMenu, charsmax(szMenu), "\y[\rSERVER\y] \wВыбор команды:^n^n"), iKeys = MENU_KEY_0;
    new iNumTe = get_teamplayersnum(1), iNumCt = get_teamplayersnum(2), CsTeams:iTeam = cs_get_user_team(id);
    if(iNumTe > iNumCt) iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y1. \dТеррористы^n");
    else
    {
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r1. \wТеррористы^n");
    iKeys |= MENU_KEY_1;
    }
    if(iNumCt > iNumTe) iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y2. \dКонтр-Террористы^n^n");
    else
    {
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r2. \wКонтр-Террористы^n^n");
    iKeys |= MENU_KEY_2;
    }
    if(g_VIPMap)
    {
    if(iTeam != CS_TEAM_CT) iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y3. \dСтать VIP^n^n");
    else
    {
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r3. \wСтать VIP^n^n");
    iKeys |= MENU_KEY_3;
    }
    }
    if(CS_TEAM_UNASSIGNED < iTeam < CS_TEAM_SPECTATOR) iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y5. \dСлучайный выбор^n");
    else
    {
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r5. \wСлучайный выбор^n");
    iKeys |= MENU_KEY_5;
    }
    if(iTeam == CS_TEAM_SPECTATOR) iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y6. \dНаблюдение^n^n^n");
    else
    {
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r6. \wНаблюдение^n^n^n");
    iKeys |= MENU_KEY_6;
    }
    formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r0. \wВыход");
    return show_menu(id, iKeys, szMenu, -1, "Team Menu");
    }

    public HandleMenu(id, iKey)
    {
    switch(iKey)
    {
    case 0:
    {
    set_pdata_int(id, 125, get_pdata_int(id, 125) & ~(1<<8));
    engclient_cmd(id, "jointeam", "1");
    }
    case 1:
    {
    set_pdata_int(id, 125, get_pdata_int(id, 125) & ~(1<<8));
    engclient_cmd(id, "jointeam", "2");
    }
    case 2:
    {
    set_pdata_int(id, 125, get_pdata_int(id, 125) & ~(1<<8));
    engclient_cmd(id, "jointeam", "3");
    }
    case 4:
    {
    set_pdata_int(id, 125, get_pdata_int(id, 125) & ~(1<<8));
    engclient_cmd(id, "jointeam", "5");
    }
    case 5:
    {
    user_kill(id, 1);
    engclient_cmd(id, "jointeam", "6");
    }
    }
    return PLUGIN_HANDLED;
    }

    public MessageShowMenu(iMsgId, iMsgDest, iReceiver)
    {
    static szArg4[20]; get_msg_arg_string(4, szArg4, charsmax(szArg4));
    if(equal(szArg4, "#Team_Select", 12) || equal(szArg4, "#IG_Team_Select", 15) || equal(szArg4, "#IG_VIP_Team_Select", 19))
    {
    set_pdata_int(iReceiver, 205, 0);
    return ShowMenu(iReceiver);
    }
    return PLUGIN_CONTINUE;
    }

    public MessageVGUIMenu(iMsgId, iMsgDest, iReceiver)
    {
    if(get_msg_arg_int(1) == 2)
    {
    set_pdata_int(iReceiver, 205, 0);
    return ShowMenu(iReceiver);
    }
    return PLUGIN_CONTINUE;
    }

    get_teamplayersnum(sw)
    {
    static players[32], iNum;
    switch(sw)
    {
    case 1: get_players(players, iNum, "che", "TERRORIST");
    case 2: get_players(players, iNum, "che", "CT");
    }
    return iNum;
    }
     
  2. neygomon Его Темнейшество :j Команда форума

    Регистрация:
    26.02.15
    Сообщения:
    7.589
    Симпатии:
    4.160
    Пол:
    Мужской
    kupidon, и где тут vgui? кек
     
  3. kupidon Пользователь

    Регистрация:
    17.11.15
    Сообщения:
    312
    Симпатии:
    27
    Пол:
    Мужской
    Я имею ввиду, что меню сделано через vgui, это будет нарушением или нет?
    Не могу понять их правило:
    г. --отключение радара(hideradar), изменение VGUI меню на меню старого типа(setinfo _vgui_menus 0) и вмешательство в игровые настройки клиента,


    Понимаешь, там какое то гавно начнет машнить на сервер, админы не разбираясь просто забанят, как обычно на многих мониторингах делают.
    Просто хочу быть уверен что данное меню ни капли не противоречит их вредным правилам.
     
  4. neygomon Его Темнейшество :j Команда форума

    Регистрация:
    26.02.15
    Сообщения:
    7.589
    Симпатии:
    4.160
    Пол:
    Мужской
    kupidon, не будет ничего
     
  5. kupidon Пользователь

    Регистрация:
    17.11.15
    Сообщения:
    312
    Симпатии:
    27
    Пол:
    Мужской
    Просто там бывает замашнит какое-то хуйло на сервер и все, считай что бан.