Раз скомпилировалось, значит есть.
Другие автобалансы и "не глушит". Это надо что-то отдельно писать, но лучше просто вырезать ненужное.
Я УЖЕ ЧТО ТОЛЬКО НЕ ВЫРЕЗАЛ В advcommands.sp И скомпилировал В smx
Вырезал все что с Balans связано,не какого результата!
Только вот этот код не удаляется,если его удалить,то потом скомпилировать не получается,пишет ошибку!Я уже неделю мудохаюсь с этим балансом(
Balance(bool:dead)
{
new n1 = 0, n2 = 0, nf1 = 0, nf2 = 0, nd1 = 0, nd2 = 0;
for (new i = 1; i <= MaxClients; i++)
if (IsClientInGame(i)) switch (GetClientTeam(i))
{
case TEAM1 : {
n1++;
nf1 += GetClientFrags(i);
nd1 += GetClientDeaths(i);
}
case TEAM2 : {
n2++;
nf2 += GetClientFrags(i);
nd2 += GetClientDeaths(i);
}
}
new st = TEAM2,mt = TEAM1,dn = abs(n1-n2),df = 0,dd = 0;
if (n1 > n2)
{
st = TEAM1;
mt = TEAM2;
}
while (dn-- > g_iLTM)
{
df = abs(nf1-nf2)/2;
dd = abs(nd1-nd2)/2;
new mi = 0, mf = 2047, md = 2047;
for (new i = 1; i <= MaxClients; i++)
if (IsClientInGame(i) && (GetClientTeam(i) == st) && (!dead || (dead && !IsPlayerAlive(i))))
{
new AdminId:admid = GetUserAdmin(i);
if ((admid != INVALID_ADMIN_ID) && g_iAdmImm && (GetAdminImmunityLevel(admid) > g_iAdmImm)) continue;
new cdf = abs(GetClientFrags(i)-df);
new cdd = abs(GetClientDeaths(i)-dd);
if ((cdf < mf) || ((cdf == mf) && (cdd < md)))
{
mi = i;
mf = cdf;
md = cdd;
}
}
if (mi && IsClientInGame(mi))
{
ChangeClientTeamEx(mi,mt);
if (g_iNotify & 1)
(g_iNotify & 16)?PrintHintText(mi,"%t","Moved Notify"):PrintToChat(mi,"%t","Moved Notify");
}
}
}