oleg_nelasy
Участник
- Сообщения
- 664
- Реакции
- 46
В общем есть интовый массив по игрокам
int g_iStatusSwapTeams[MAXPLAYERS+1];
В момент когда игрок меняет команду ему присваивается положительное значение, и идет проверка если положительное тогда блокируем смену команды и выводим сообщение. По событиям начало новой карты и дисконект обнуляю донное значение чтобы новому игроку автоматически заблокировало возможность смены команды.
В данный момент если игрок переподключится то счетчик сбрасывается. Нужно как то запомнить игрока и если вышел с сервера то сохранить для него значение g_bCheckFirstConnection и g_iStatusSwapTeams. Сохранённый g_iStatusSwapTeams должен в конце раунда делать --. Как только сохранённые данные игрока g_iStatusSwapTeams == 0 то удалить сохранённые g_bCheckFirstConnection и g_iStatusSwapTeams и считать его подключение за нового игрока.
int g_iStatusSwapTeams[MAXPLAYERS+1];
В момент когда игрок меняет команду ему присваивается положительное значение, и идет проверка если положительное тогда блокируем смену команды и выводим сообщение. По событиям начало новой карты и дисконект обнуляю донное значение чтобы новому игроку автоматически заблокировало возможность смены команды.
C-подобный:
public void OnClientDisconnect(int iClient)
{
g_iStatusSwapTeams[iClient] = 0;
g_bCheckFirstConnection[iClient] = false;
}
public void OnMapStart()
{
LoopClients(i)
{
g_bCheckFirstConnection[i] = false;
g_iStatusSwapTeams[i] = 0;
}
}
public Action Event_OnRoundEnd(Handle event, const char[] name, bool dontBroadcast)
{
LoopIngameClients(i)
{
if(g_iStatusSwapTeams[i] != 0)
{
g_iStatusSwapTeams[i] --;
if(g_iStatusSwapTeams[i] == 0)
CGOPrintToChat(i, "%t", "Open Swap Team", g_sTag);
}
}
}
В данный момент если игрок переподключится то счетчик сбрасывается. Нужно как то запомнить игрока и если вышел с сервера то сохранить для него значение g_bCheckFirstConnection и g_iStatusSwapTeams. Сохранённый g_iStatusSwapTeams должен в конце раунда делать --. Как только сохранённые данные игрока g_iStatusSwapTeams == 0 то удалить сохранённые g_bCheckFirstConnection и g_iStatusSwapTeams и считать его подключение за нового игрока.