Wersja z możliwością rozszyfrowania kodu:
PrzeniesDoTT(index)
{
const minplayers = 1;
for(new i = 1; i <= 32; i++)
{
if(!is_user_connected(i))
continue;
new team = get_user_team(i);
if(team != get_user_team(index) || team != 2)
continue;
if(get_playersnum() < minplayers)
continue;
if(g_boolCanBuild || g_boolPrepTime)
continue;
engclient_cmd(index, "jointeam", "1");
break;
}
}
Fun fact: nie wiem po co robisz to w ten sposób.
Tworzysz pętlę, która wykonuje się (przykładowo) 32 razy, i za każdym razem, kiedy spełni się każdy z warunków, to przenosisz gracza do TT, po czym lecisz pętlę dalej.
Najlepiej opisz nam, jak ma działać ta funkcja.
Dodatkowo, pomyśl sam - jak przebiega proces tejże funkcji:
- Wywołanie (przy connect'cie, tak jak napisałeś wyżej),
- Deklaracja zmiennej,
- Pętla dla (przykładowo) 32 graczy, a w niej:
- Sprawdzenie teamu graczy, które prowadzi do niczego.
- Sprawdzenie z każdą iteracją, czy get_playersnum() >= playersnum.
- Sprawdzenie z każdą iteracją, czy zmienne g_boolCanBuild oraz g_boolPrepTime mają wartość 1.
- Wykonanie komendy na graczu, jeśli przejdzie przez wszystkie ify.
- Powtórzenie iteracji.
Możesz zrobić tak:
PrzeniesDoTT(index)
{
if(!is_user_connected(index))
return;
if(get_user_team(index) == 1)
return;
if(g_boolCanBuild || g_boolPrepTime)
return;
const minPlayers = 1;
if(get_playersnum() < minPlayers)
return;
const minBuilders = 1;
if(getBuildersCount() < minBuilders)
return;
engclient_cmd(index, "jointeam", "1");
}
getBuildersCount()
{
new counter;
for(new i = 1; i <= 32; i++)
if(is_user_connected(i) && get_user_team(i) == 2 && is_user_alive(i))
counter++;
return counter;
}