Я только начал разбираться в сурспавне, поэтому я думаю будет легче в нем обработать кол-во игроков и подключить конфиг и сделать рестарты.Декомпельни WarMod Manager, там очень хорошо видно проверку кол-ва игроков
Я только начал разбираться в сурспавне, поэтому я думаю будет легче в нем обработать кол-во игроков и подключить конфиг и сделать рестарты.
Так вот, как подключить конфиг, в сурспавне есть команда или что-то вроде того?
#define MINPLAYERS 10
public OnPluginStart()
{
CreateTimer(3.0, PlayerChecker, _, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);
}
public Action:PlayerChecker(Handle:timer)
{
new alive_players = GetClientsCount(3, true);
new InTeams = GetClientsCount(1, true);
if (InTeams == alive_players && alive_players >= MINPLAYERS)
{
ServerCommand("fs");
return Plugin_Stop;
}
else
{
PrintCenterTextAll("Недостаточно игроков - %i\n(%i/%i)",MINPLAYERS - InTeams, InTeams, MINPLAYERS);
return Plugin_Continue;
}
}
GetClientsCount(filter, bool:inc_bots)
{
new connected;
new inteams;
new ingame;
new alive;
for(new i = 1; i <= MaxClients; i++)
{
if (IsClientConnected(i) && !IsClientSourceTV(i) && !IsClientReplay(i))
{
if (!(!inc_bots && IsFakeClient(i)))
{
connected++;
if (IsClientInGame(i))
{
ingame++;
if (GetClientTeam(i) > 1)
{
inteams++;
if (IsPlayerAlive(i)) alive++;
}
}
}
i++;
}
i++;
}
/*
switch (filter)
{
case 1: return inteams;
case 2: return ingame;
case 3: return alive;
default: return connected;
}
*/
if (filter == 1) return inteams;
else if (filter == 2) return ingame;
else if (filter == 3) return alive;
else return ingame;
}
ServerCommand("fs");
ServerCommand("exec config_5x5.cfg");
Что бы в hint-e было постоянно написано количество игроков нужно обновлять его чаще 5 секунд. После выполнения команды таймер завершает свою работу, и больше не ест ресурсов.@Danyas, каждые 3 секунды проверяешь количество игроков? мм
Слышал, можно было бы и через player_team сделать, записывая количество игроков в переменную.@Danyas, про ивенты на подобие 'player_team' не слышал?