#include <sourcemod>
new ct = 0, t = 0, tct[MAXPLAYERS+1] = 0, ctp = 0, tp = 0, k = 0;
public OnPluginStart()
{
// Ловим событие конца раунда
HookEvent("round_end", Event_OnRoundEnd);
}
// Обрабатываем
public Event_OnRoundEnd(Handle:event, const String:name[], bool:dontBroadcast)
{
for(new i = 0; i < MaxClients; i++)
{
// Кто в игре
if(IsClientInGame(i))
{
// Кто за Т
if(GetClientTeam(i) == 2)
{
// число игроков за Т
t++;
}
// Кто за КТ
if(GetClientTeam(i) == 3)
{
// число игроков за КТ
ct++;
}
//tct[i] = i;
}
}
//PrintToChatAll("Игроки перемешаны случайным образом");
//когда есть массив tct с userid всех игроков и переменные ct, t в которых содержится колличество игроков в определённой команде:
for(new i = 0; i < (ct + t); i++)
{
//случайно присваиваем переменной k 2 или 3
k = GetRandomInt(2, 3);
if (k == 2)
{
if (tp == t)
{
//если команда террористов уже заполнена (тоесть было 6 человек и уже 6 перемещено), то перемещается за кт
CS_SwitchTeam(i, 3);
//считает количество перемещённых игроков за кт
ctp++;
}
//если за теров перемещено недостаточно человек (было 6 а переместило только 3-х)
else
{
//перемещает
CS_SwitchTeam(i, 2);
//считает количество перемещённых игроков за кт
tp++;
}
}
//далее всё аналогично, только если к = 3
else
{
if (ctp == ct)
{
CS_SwitchTeam(i, 2);
tp++;
}
else
{
CS_SwitchTeam(i, 3);
ctp++;
}
}
}
}