Foreach
Posted: Mon Oct 24, 2011 6:00 am
[center]Foreach[/center]
[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 :
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
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.
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.
---------------------------------------------------------------------------------------------------------------------------------------------------
[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.
---------------------------------------------------------------------------------------------------------------------------------------------------