polki
Пользователь
- Регистрация
- 22 Сен 2017
- Сообщения
- 21
- Симпатии
- 0
Мне нужно перекинуть игроков в противоположные команды.
Я это пытаюсь сделать так:
Для игры игрок переходит в другую команду, но он не меняет свое значение в таблице и не умирает.
Подскажите какая логика для таких действий?
Может есть плагин на Reapi где это хорошо реализовано?
Я это пытаюсь сделать так:
Код:
// Функция: поменять команды всех игроков местами
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 где это хорошо реализовано?