Salut! Dacă ai accesat acest topic înseamnă că vrei să cunoşti ce este un iterator şi cum să-l foloseşti, sau ai venit doar ca să vezi dacă am scris topicul corect, sau pentru hate.
Mă rog, pentru cei care au venit cu scopul de a primi nişte informaţii, le veţi vedea mai jos.
Iteratorii sunt o versiune mai avansată a foreach-ului, care ajută la simplificarea codului şi nu numai, ajută foarte mult la optimizarea acestuia.
Pentru a putea folosi iteratorii, trebuie să aveţi librăria YSI şi să adăugaţi la începutul modului de joc:
#include " YSI\y_iterate "
Pentru a declara un iterator, adăugaţi în modul de joc:
new Iterator:nume<tip>; (tip = MAX_PLAYERS, MAX_VEHICLES, etc.)
Funcţiile iteratorului de bază sunt:
Iter_Add(nume, valoare);
public OnPlayerConnect(playerid) {
Iter_Add(Players, playerid); // daca un jucator s-a conectat acesta il adauga in bucla.
return 1;
}
Iter_Remove(nume, valoare);
exemplu:
public OnPlayerDisconnect(playerid) {
Iter_Remove(Players, playerid); // daca un jucator s-a deconectat acesta il scoate din bucla.
return 1;
}
Iter_Count(nume);
exemplu: facem o comanda sa vedem cati jucatori sunt conectati:
YCMD:players(playerid, params[], help) {
new string [ 20 ];
string[ 0 ] = '\0';
format(string, 20, "Playeri conectati: %d", Iter_Count(Players));
SendClientMessage(playerid, -1, string);
return 1;
}
afisare in joc (in caz ca sunt doar eu conectat):
Playeri conectati: 1
Am făcut acest tutorial grăbit, scuzaţi eventualele greşeli.