Sta je to Iterator? Prostije objasnjeno, iterator je array(niz ponaski) koji u svojim praznim mestima sadrzi vrednost -1, dok mi ne dodamo svoju neku vrednost koju cemo kasnije moci koristiti. Sta to sve znaci? Ne morate brinuti o tome sada, bice jasnije na primeru!
Ajmo poceti, pre svega, morate include :
#include Nakon toga moramo deklarisati novi iterator i za to koristimo tag Iterator:
new Iterator:ImeNasegIteratora; Sada mozemo da koristimo nas iterator i pokazacu jedan klasican primer za ovo, dok je upotreba naravno mnogo sira, u iterator cemo ubacivati administratore koji se konektaju na server..
new Iterator:Administratori; //Deklarisemo novi iterator, naziva Administratori i za velicinu stavimo MAX_PLAYERS public OnPlayerConnect(playerid) {
if(PlayerInfo >= 1) Iter_Add(Administratori, playerid); //Znaci, ovde vidimo proveru ako je igrac admin > ili = broju 1, doda ga u iterator
//Ako se jedan igrac konektuje sa id-em 25, pritom je taj igrac admin, u iterator ce se dodati vrednost 25, itd itd
}Sada kada smo dodali ID naseg admina u iterator, i dodace svaki sledeci, mozemo krenuti da koristimo foreach da bi loop-ovali kroz sve admine, ovo moze imati siroku primenu kao sto je slanje poruka svim online adminima i umesto da loopujemo kroz svakog online igraca, mozemo samo loop-ovati kroz admine koji se nalaze u iteratoru Administratori :
foreach(Administratori, i) { //Ovo ce loopovati kroz svakog igraca koji se nalazi u iteratoru Administratori
SendClientMessage(i, 0xC34848FF, "Poruka svakom online adminu!");
}
foreach(Player, i) { //Ovo ce loopovati kroz svakog igraca na serveru, vi procenite sta je brze :)
SendClientMessage(i, 0xC34848FF, "Poruka svakom online adminu!");
}Ovo je samo jedan od primera primene iteratora.. Naravno, obavezno je i da admina uklonimo iz iteratora i za to koristimo Iter_Remove :
public OnPlayerDisconnect(playerid, reason) {
Iter_Remove(Administratori, playerid); //Kada se diskonektuje igrac sa servera, brisemo njegov ID iz iteratora
}Jako korisna stvar za nesto drugo moze biti i Iter_Clear koji ce izbrisati svaku vrednost iz iteratora :
Iter_Clear(Administratori); //Sada ovaj iterator nece imati nijednu vrednost u sebi, ili u nasem slucaju nijedan ID adminaOvo je jedna klasicna primena za iteratore, jako prosta, i nadam se jasna. Pokusao sam objasniti sto bolje mogu, a nesto slozenije mozete videti na tutorialu koji sam ostavio u prvoj recenici tutoriala. Ako sam nesto pogresio, slobodno ispravite. Da napomenem da je ovo tutorial za pocetnike, tako da sam se trudio da koristim malo prostiju terminologiju radi lakseg shvatanja o cemu se ovde radi.. Hvala na paznji i zelim vam toplu vodu <3
P.S. jebes urednost bitna je poruka 😄

