Team Select Menu проверка кода

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
1,032
Реакции
828
Помог
10 раз(а)
Да, да, сотый раз уже, на боевом сервере не тестил, но возможно какие то нюансы, баги я пропустил?
C++:
#include < amxmodx >
#include < reapi >

#pragma semicolon 1

const MENU_KEYS        =    MENU_KEY_0 | MENU_KEY_1 | MENU_KEY_2 | MENU_KEY_5 | MENU_KEY_6;
const TIME_MENU        =    -1;

new const MENU_IDENT__TEAM_SELECT_MENU[ ]    =    "TEAM SELECT MENU";

enum
{
    KEY_1, KEY_2, KEY_3, KEY_4, KEY_5, KEY_6, KEY_7, KEY_8, KEY_9, KEY_0
}

new const MENU_CONTENT[ ] =
{
    "^t^t^t^t\yМеню выбора команды^n^n\
    ^t^t^t^t\y1. \wТеррористы^n\
    ^t^t^t^t\y2. \wКонтр-террористы^n^n\
    ^t^t^t^t\y5. \wСлучайный выбор^n\
    ^t^t^t^t\y6. \wНаблюдатели^n^n\
    ^t^t^t^t\y0. \wВыход"
};

public plugin_init( )
{
    RegisterHookChain( RG_ShowVGUIMenu, "hook_ShowVGUIMenu", .post = false );
   
    register_menucmd( register_menuid( MENU_IDENT__TEAM_SELECT_MENU ), MENU_KEYS, "handler_TeamSelectMenu" );
}

public hook_ShowVGUIMenu( const id, VGUIMenu: menuType, const bitsSlots, const szOldMenu[ ] )
{
    if( menuType != VGUI_Menu_Team )
    {
        return HC_CONTINUE;
    }
   
    RequestFrame( "func_OpenTeamSelectMenu", id );
   
    return HC_SUPERCEDE;
}

public func_OpenTeamSelectMenu( const id )
{
    if( !is_user_connected( id ) )
    {
        return PLUGIN_CONTINUE;
    }
   
    set_member( id, m_iMenu, Menu_OFF );
   
    show_menu( id, MENU_KEYS, MENU_CONTENT, TIME_MENU, MENU_IDENT__TEAM_SELECT_MENU );
   
    return PLUGIN_CONTINUE;
}

public handler_TeamSelectMenu( const id, const iKey )
{
    switch( iKey )
    {
        case KEY_1:
        {
            rg_join_team( id, TEAM_TERRORIST );
        }
       
        case KEY_2:
        {
            rg_join_team( id, TEAM_CT );
        }
       
        case KEY_5:
        {
            rg_join_team( id, TeamName: random_num( _:TEAM_TERRORIST, _:TEAM_CT ) );
        }
       
        case KEY_6:
        {
            user_silentkill( id );
           
            rg_join_team( id, TEAM_SPECTATOR );
        }
       
        case KEY_0:
        {
            return PLUGIN_HANDLED;
        }
    }
   
    set_member( id, m_bTeamChanged, false );
   
    return PLUGIN_HANDLED;
}
 
Сообщения
1,420
Реакции
2,511
Помог
58 раз(а)
rg_join_team в client_putinserver должен использоваться, как пример есть плагин Team Select от fantom.
 
Сообщения
2,491
Реакции
2,794
Помог
61 раз(а)
Сообщения
3,584
Реакции
1,572
Помог
138 раз(а)
Зачем ждать 1 фрейм?
Помнится, у меня падал сервер на моменте входе игрока в игру, каждые 3 дня (+- пару часов). путем отключения плагинов с 90% вероятностью было выявлено, что дело в Team select от вактинчи. BlackSignature посоветовал сделать как выше, открытие меню в новом кадре. После этого, падения с данной частотой прекратились.
 
Сообщения
1,032
Реакции
828
Помог
10 раз(а)
Nordic Warrior, да, он тоже объяснял когда-то о багах, я просто запомнил, что так надо было :DD
 
Сообщения
2,491
Реакции
2,794
Помог
61 раз(а)
Nordic Warrior, подменяйте иеню, а не блокируйте, и ничего падать не будет.
 
  • Нравится
Реакции: Ayk
Сообщения
486
Реакции
89
Помог
5 раз(а)
В team select замечены баги при переходи из Spec в команду и наоборот, тоже учти
 
Сообщения
486
Реакции
89
Помог
5 раз(а)
Javekson, если будет не сложно, посмотрел бы на готовый код :ok:
6 Апр 2020
Javekson, ты превращаешься в живого SPECTATOR'а. Можешь ходить по карте, но при этом ты в Spec
 
Сообщения
486
Реакции
89
Помог
5 раз(а)
fantom'a, ранее такого не наблюдал, вот недавно заметил только
 
Сообщения
486
Реакции
89
Помог
5 раз(а)
Javekson, да, сам в шоке, ранее не наблюдал такого
 
Сообщения
1,032
Реакции
828
Помог
10 раз(а)
WILL_BE, я сегодня его тестировал, не заметил такого, было бы не плохо более подробно узнать последовательность действий для воспроизведения такого события
 
Сообщения
486
Реакции
89
Помог
5 раз(а)
Игрок рассказал: изначально при входе в игру заходим в SPEC, далее заходим за команду и остаемся в SPEC'ах, или же наоборот: играем и уходим в SPEC и получаем Ghost режим :sorry: Демо к сожалению нет, постараюсь сделать в ближайшее время
 
Сообщения
1,032
Реакции
828
Помог
10 раз(а)
WILL_BE, может старая версия у тебя? Не удалось воспроизвести пока что
 
Сообщения
486
Реакции
89
Помог
5 раз(а)
Хм, даже не посмотрел, вполне возможно
 
Сообщения
2,491
Реакции
2,794
Помог
61 раз(а)
WILL_BE, https://dev-cs.ru/threads/4838/post-54932. Прошел год с последнего баг репорта (если это так можно назвать). До сих пор кроме слов "есть багы" ничего нет. Ни темы, ни конфигов, ни шагов для воспроизведения. Можете и дальше ждать фикса багов в плагине, автор которого знать не знает о них.
 
Статус
В этой теме нельзя размещать новые ответы.

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

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