foreach -
Mandrack_FreeZe - 29.09.2014
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б.
Re: foreach -
ipsLuan - 29.09.2014
Acredito que nгo irб haver bugs.
Re: foreach -
Mandrack_FreeZe - 29.09.2014
Quote:
Originally Posted by xCR7
Acredito que nгo irб haver bugs.
|
Deu bug sim... o loop nгo estб funcionando...
Re: foreach -
PT - 29.09.2014
isto
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.
Re: foreach -
Larceny - 29.09.2014
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.
Re: foreach -
Mandrack_FreeZe - 29.09.2014
Quote:
Originally Posted by PT
isto
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.
Re: foreach -
Larceny - 30.09.2014
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);
Re: foreach -
Mandrack_FreeZe - 30.09.2014
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...
Re: foreach -
Larceny - 30.09.2014
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?
Re: foreach -
Mandrack_FreeZe - 30.09.2014
coloquei agora no OnFilterScriptInit:
pawn Код:
Iter_Add(Vehicles, MAX_VEHICLES);
Nгo sei se era isso, mas nгo funcionou, mesmo bug.