for (int client = 1; client <= MaxClients; client++)
А пост-инкремент никак изменить на до-инкремент?
for (int client = 1; client <= MaxClients; ++client)
И тут же сразу:
Кто-то запрещает использовать уже созданную переменную и дальше, вместо того, чтобы плодить новые?
char[] szFlags = new char[32];
Количество всех админ-флагов составляет
21. Так почему размерность массива аж
32? Сразу бы на 50-100 загнать, чего уж там - пусть время тратится на создание больших массивов, да ещё на новом синтаксисе (нет
decl)!
Да и вообще:
char[] szFlags = new char[32];
g_Cvar_AdminFlags.GetString(szFlags, 32);
int flags = ReadFlagString(szFlags);
Зачем заранее делать столько действий, когда по условиям далее, они могут так и не пригодиться? Сокращение кода? Едва ли оно оправдано.
for (j = rand; j < total; j++)
clients[j] = clients[j + 1];
От этого "оригинального" "перетягивания" переменных из-за свободной (использованной) ячейки я вообще "балдею". :mosking:
Во всех попытках баланса насчитывается аж
4 цикла! Кто больше? :biggrin:
else
{
CS_SwitchTeam(clients[rand], CS_TEAM_T);
to_move--;
}
total--;
for (j = rand; j < total; j++)
clients[j] = clients[j + 1];
to_move уже может быть нулевым, но нет, мы продолжаем цикл и проверим это аж после выполнения второго цикла.