[center]Tutorial[/center]
Introducere :
Foreach a fost create de Y_Less , acesta are functia de a inlocuii loop-urile ( loops ) intrun mod nou , foarte rapid si eficient.
Exemplu :
[font=courier]for ( new i = 0; i != MAX_PLAYERS; ++i )
{
if ( IsPlayerConnected( i ) )
{
printf("Player %d is connected", i );
}
}[/font]
devine simplu
[font=courier]foreach (Player, i)
{
printf("Player %d is connected", i );
}[/font]
Edit: Nu faceti [font=courier]foreach ( Player, i )[/font] cu spatii pentru ca va da eroare .
Multumesc lui Zh3r0 pentru ca ma atentionat .
Includere :
Acest include foloseste acest sistem deci ce tu trebuie sa
folosesti
[font=courier]#include <foreach>[/font]
Dupa aceea poti inlocui loop-urile cu codul de mai sus.
Pentru a folosi acest sistem intrun filescript foloseste
[font=courier]#define FILTERSCRIPT
#include <foreach>[/font]
Daca deja ai macroul FILTERSCRIPT ai grija sa fie deasupra include-ului foreach.
Declaratie :
Pentru a declara un singur iterator ( inca un lucru la care poti folosi foreach ) foloseste :
[font=courier]new[/font] Iterator:MyIterator<10>;
Acest lucru va declara iteratorul cu 10 sloturi.
Folosire :
Pentru a folosi propriu iterator foloseste :
[font=courier]foreach (MyIterator, var)
{
printf("var %d is active", var );
}[/font]
Pentru a adauga iteme foloseste :
[font=courier]Iter_Add(MyIterator, 7);[/font]
Pentru a sterge iteme foloseste :
[font=courier]Iter_Remove(MyIterator, 7);[/font]
Pentru a lua un item rapid dintr-un iterator ( este foarte bun pentru a lua random players ) foloseste :
[font=courier]Iter_Random(MyIterator);[/font]
Pentru playeri ar trebui sa fie :
[font=courier]new randomplayer = Iter_Random(Player);[/font]
Functii :
- [li][font=courier]Iterator:nume<marime>[/font][/li]
Player - Toti playerii conectati
Bot (0.3) - Toti botii conectati
NPC (0.3) - Toti botii conectati ( lafel ca la Bot )
Character (0.3) - Toti playeri si botii conectati
- [li][font=courier]Iter_Add(name, value)[/font][/li]
- [li][font=courier]Iter_Remove(name, value)[/font][/li]
- [li][font=courier]Iter_Clear(name)[/font][/li]
- [li][font=courier]Iter_Random(name)[/font][/li]
- [li][font=courier]Iter_Count(name)[/font][/li]
- [li][font=courier]IteratorArray:name[num]<size>[/font][/li]
- [li][font=courier]Iter_Init(name)[/font][/li]
- [li][font=courier]Iter_Func2(name, index, pars)[/font][/li]
Daca adaugi "2" dupa oricare functie de mai sus si daca adaugi un index dupa nume si dupa toti cei lalti parametri vei creea un iterator multidimensional .
Un exemplu :
[font=courier]new IteratorArray:My2d[ 3 ]<5>;
Iter_Init2( My2d );
Iter_Add2( My2d, 1, 4 );[/font]
Acesta va creea 3 5 elemente si adauga elementul 4 la al doilea.
Optiuni de compilare :
Defineste astea inainte de a include foreach pentru a functiona.
- [li]FOREACH_NO_BOTS[/li]
- [li]FOREACH_NO_PLAYERS[/li]
Multiple Dimensions :
Versiunea anterioara a avut "Iter_Func2" - acestea au fost scoase in favoarea unor sintaxe.
Acum poti avea iteratori multidimensionali. Pentru exemplu poti avea un array de iterators de la vehiculele playerilor :
[font=courier]foreach (PlayerVehicles[ playerid ], veh)
{
// Fa ceva cu vehiculul playerului
}[/font]
Pentru array multidimensional trebuie sa folosesti :
[font=courier]Iter_Init(iterator);[/font]
---------------------------------------------------------------------------------------------------------------------------------------------------
Sper ca am tradus acest tutorial destul de clar si sa facut inteles.
In caz ca am gresit ceva rog moderatorii / administratorii sa dea EDIT si sa corecteze.
Postul original de catre Y_Less .
Edit: Aceasta a fost postul cu numarul 200 pentru mine.
---------------------------------------------------------------------------------------------------------------------------------------------------