Логика переноса игроков в противоположную команду.

polki

Пользователь
Регистрация
22 Сен 2017
Сообщения
21
Симпатии
0
Мне нужно перекинуть игроков в противоположные команды.
Я это пытаюсь сделать так:

Код:
// Функция: поменять команды всех игроков местами                                                                                                                                                                                           
stock SwapAllPlayersTeams()                                                                                                                                                                                                                 
{                                                                                                                                                                                                                                           
    // Шаг 1: Сохраняем текущие команды всех подключённых игроков                                                                                                                                                                           
    for (new id = 1; id <= MAX_PLAYERS; id++)                                                                                                                                                                                               
    {                                                                                                                                                                                                                                       
        if (!is_user_connected(id))                                                                                                                                                                                                         
        {                                                                                                                                                                                                                                   
            g_iOriginalTeam[id] = TEAM_UNASSIGNED;                                                                                                                                                                                           
            continue;                                                                                                                                                                                                                       
        }                                                                                                                                                                                                                                   
                                                                                                                                                                                                                                            
        new TeamName:team = get_member(id, m_iTeam);                                                                                                                                                                                         
        if (team == TEAM_TERRORIST || team == TEAM_CT)                                                                                                                                                                                       
        {                                                                                                                                                                                                                                   
            g_iOriginalTeam[id] = team;                                                                                                                                                                                                     
        }                                                                                                                                                                                                                                   
        else                                                                                                                                                                                                                                 
        {                                                                                                                                                                                                                                   
            g_iOriginalTeam[id] = TEAM_SPECTATOR;                                                                                                                                                                                           
        }                                                                                                                                                                                                                                   
    }                                                                                                                                                                                                                                       
                                                                                                                                                                                                                                            
    // Шаг 2: Переводим ВСЕХ в наблюдатели                                                                                                                                                                                                   
    for (new id = 1; id <= MAX_PLAYERS; id++)                                                                                                                                                                                               
    {                                                                                                                                                                                                                                       
        if (is_user_connected(id))                                                                                                                                                                                                           
        {                                                                                                                                                                                                                                   
            rg_set_user_team(id, TEAM_SPECTATOR, MODEL_UNASSIGNED, false);                                                                                                                                                                   
        }                                                                                                                                                                                                                                   
    }                                                                                                                                                                                                                                       
                                                                                                                                                                                                                                            
    // Задержка для корректной обработки движком                                                                                                                                                                                             
    set_task(0.1, "ApplySwappedTeams");                                                                                                                                                                                                     
                                                                                                                                                                                                                                            
    //Новые команды (противоположные)                                                                                                                                                                                                       
    for (new id = 1; id <= MAX_PLAYERS; id++)                                                                                                                                                                                               
    {                                                                                                                                                                                                                                       
        if (!is_user_connected(id) || g_iOriginalTeam[id] == TEAM_SPECTATOR)                                                                                                                                                                 
            continue;                                                                                                                                                                                                                       
                                                                                                                                                                                                                                            
        new TeamName:newTeam = (g_iOriginalTeam[id] == TEAM_TERRORIST) ? TEAM_CT : TEAM_TERRORIST;                                                                                                                                           
        rg_set_user_team(id, newTeam, MODEL_AUTO, true);                                                                                                                                                                                     
    }                                                                                                                                                                                                                                       
}
Для игры игрок переходит в другую команду, но он не меняет свое значение в таблице и не умирает.

Подскажите какая логика для таких действий?
Может есть плагин на Reapi где это хорошо реализовано?
 
Сверху Снизу