[Ajuda] foreach
#1

Boa tarde, estou trabalhando com o loop do foreach, porйm acredito estar usando errado, olhei alguns tutoriais, e nгo consegui entender devido a eles estarem em outras linguagens. Aproveito e jб peзo-lhes que, se souberem de algum tutorial sobre foreach em portugues me passem.

Enfim estou utilizando assim:

pawn Код:
#include <foreach>
#define ALL_VEHICLES 2001
new Iterator:Vehicle<ALL_VEHICLES>; //comeзo do FS

//Em OnFilterScriptInit

Iter_Add(Vehicle, ALL_VEHICLES);

//Os loops estou criando assim:

foreach(new c, Vehicle)
{

}
Atualmente nгo da nenhum erro, porйm nгo tenho certeza da ausкncia de bugs.

Obrigado des de jб.
Reply
#2

Acredito que nгo irб haver bugs.
Reply
#3

Quote:
Originally Posted by xCR7
Посмотреть сообщение
Acredito que nгo irб haver bugs.
Deu bug sim... o loop nгo estб funcionando...
Reply
#4

isto

pawn Код:
Iterator
vem da y_iterator nada a ver com a foreach isso vem da YSI e muito util isso.

Bem o loop e criado assim mesmo nao dara bugs creio, porem teste faзa um comando e teste.
Reply
#5

pawn Код:
Iter_Add(Vehicle, ALL_VEHICLES);
No lugar de ALL_VEHICLES deve se colocar o ID do veнculo.

Ex:

pawn Код:
Vehicle[0] = AddStaticVehicle(510, 1442.6521, -2297.0659, 13.5469, 33.9924, 0, 0);
Vehicle[1] = AddStaticVehicle(510, 1442.6521, -2297.0659, 13.5469, 33.9924, 0, 0);
Iter_Add(Vehicle, Vehicle[0]);  Iter_Add(Vehicle, Vehicle[1]);
Tambйm aconselho atualizar a versгo do foreach para a y_iterate presente na YSI.
Reply
#6

Quote:
Originally Posted by PT
Посмотреть сообщение
isto

pawn Код:
Iterator
vem da y_iterator nada a ver com a foreach isso vem da YSI e muito util isso.

Bem o loop e criado assim mesmo nao dara bugs creio, porem teste faзa um comando e teste.
Quote:
Originally Posted by Larceny
Посмотреть сообщение
pawn Код:
Iter_Add(Vehicle, ALL_VEHICLES);
No lugar de ALL_VEHICLES deve se colocar o ID do veнculo.

Ex:

pawn Код:
Vehicle[0] = AddStaticVehicle(510, 1442.6521, -2297.0659, 13.5469, 33.9924, 0, 0);
Vehicle[1] = AddStaticVehicle(510, 1442.6521, -2297.0659, 13.5469, 33.9924, 0, 0);
Iter_Add(Vehicle, Vehicle[0]);  Iter_Add(Vehicle, Vehicle[1]);
Tambйm aconselho atualizar a versгo do foreach para a y_iterate presente na YSI.
Obrigado, porйm nгo estou entendendo como se usa, devo utilizar com a include y_interate ou nгo preciso?

Quando uso assim:
pawn Код:
foreach(new i: MAX_VEHICLES)
Eles me retorna varios erros:

Код:
C:\Users\Hugo\Documents\GTA San Andreas User Files\WC\filterscripts\MFAdmin.pwn(327) : error 017: undefined symbol "MAX_VEHICLES@YSII_Ag"
C:\Users\Hugo\Documents\GTA San Andreas User Files\WC\filterscripts\MFAdmin.pwn(327) : error 017: undefined symbol "MAX_VEHICLES@YSII_Ag"
C:\Users\Hugo\Documents\GTA San Andreas User Files\WC\filterscripts\MFAdmin.pwn(327) : error 029: invalid expression, assumed zero
C:\Users\Hugo\Documents\GTA San Andreas User Files\WC\filterscripts\MFAdmin.pwn(327) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


4 Errors.
Agradeзo se me explicarem como utilizar isso, nгo entendi ainda.
Reply
#7

Quote:
Originally Posted by Mandrack_FreeZe
Посмотреть сообщение
Obrigado, porйm nгo estou entendendo como se usa, devo utilizar com a include y_interate ou nгo preciso?
Й aconselhбvel.

Quote:
Originally Posted by Mandrack_FreeZe
Посмотреть сообщение
Quando uso assim:
pawn Код:
foreach(new i: MAX_VEHICLES)
Eles me retorna varios erros
No lugar onde vocк colocou MAX_VEHICLES deve se utilizar o ID do iterator.

Exemplo:

pawn Код:
new
    Iterator:Vehicles<MAX_VEHICLES> // Global
;


/*
 * Quando for utilizar o loop:
 * new v й a variavel do loop
 * Vehicles й o ID do iterator. Apenas se usam iterators alн!
 */

foreach(new v: Vehicles)
{
    // Faзa algo com os veнculos adicionados a este iterator
}

/*
 * Adicionando um veнculo ao iterator Vehicles
 * Vehicles й o ID do iterator.
 * vehicleid й o ID do veнculo.
 */

Iter_Add(Vehicles, vehicleid);

// Exemplo:
new vehicleid = CreateVehicle(...);
Iter_Add(Vehicles, vehicleid);
Vocк pode ter vбrios iterators diferentes:

pawn Код:
new
    Iterator:Vehicles<MAX_VEHICLES>, // Global
    Iterator:PoliceCars<10>// 10 = limite maximo de itens neste iterator, neste caso, veнculos.
;


foreach(new v: PoliceCars)
{
    // Faзa algo com os veнculos adicionados a este iterator
}

// Adicionando um veнculo ao Iterator PoliceCars:
new vehicleid = CreateVehicle(...);
Iter_Add(PoliceCars, vehicleid);
Reply
#8

Quote:
Originally Posted by Larceny
Посмотреть сообщение
Й aconselhбvel.



No lugar onde vocк colocou MAX_VEHICLES deve se utilizar o ID do iterator.

Exemplo:

pawn Код:
new
    Iterator:Vehicles<MAX_VEHICLES> // Global
;


/*
 * Quando for utilizar o loop:
 * new v й a variavel do loop
 * Vehicles й o ID do iterator. Apenas se usam iterators alн!
 */

foreach(new v: Vehicles)
{
    // Faзa algo com os veнculos adicionados a este iterator
}

/*
 * Adicionando um veнculo ao iterator Vehicles
 * Vehicles й o ID do iterator.
 * vehicleid й o ID do veнculo.
 */

Iter_Add(Vehicles, vehicleid);

// Exemplo:
new vehicleid = CreateVehicle(...);
Iter_Add(Vehicles, vehicleid);
Vocк pode ter vбrios iterators diferentes:

pawn Код:
new
    Iterator:Vehicles<MAX_VEHICLES>, // Global
    Iterator:PoliceCars<10>// 10 = limite maximo de itens neste iterator, neste caso, veнculos.
;


foreach(new v: PoliceCars)
{
    // Faзa algo com os veнculos adicionados a este iterator
}

// Adicionando um veнculo ao Iterator PoliceCars:
new vehicleid = CreateVehicle(...);
Iter_Add(PoliceCars, vehicleid);
Cara, fiz exatamente como vocк falou mas os loops nгo estгo funcionando...
pawn Код:
new Iterator:Vehicles<MAX_VEHICLES>;

foreach(new i: Vehicles)
{

}

O FS roda, mas o loop nгo estб acontecendo...
Reply
#9

Quote:
Originally Posted by Mandrack_FreeZe
Посмотреть сообщение
Cara, fiz exatamente como vocк falou mas os loops nгo estгo funcionando...
pawn Код:
new Iterator:Vehicles<MAX_VEHICLES>;

foreach(new i: Vehicles)
{

}

O FS roda, mas o loop nгo estб acontecendo...
Vocк adicionou os veнculos ao Iterator?
Reply
#10

coloquei agora no OnFilterScriptInit:
pawn Код:
Iter_Add(Vehicles, MAX_VEHICLES);
Nгo sei se era isso, mas nгo funcionou, mesmo bug.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)