10/10/2023 22:58
(Esta mensagem foi modificada pela última vez a: 10/10/2023 23:04 por leonardos08bt.)
O foreach procura valores dentro de listas.
Sim, a variável i assumiria (não de uma só vez), é parecido com o loop normal.
for(new i; i < 10; *i++*). Se i for menor que 10 ele acrescenta +1.
No foreach também, mas apenas se houver algum valor armazenado na lista.
Ele funciona para otimizar loop's da seguinte forma:
Exemplo:
A variável i funciona quase da mesma forma que se eu criasse no loop normal, mas, ele pega da vaga o valor dela, se na vaga 1 tiver o valor 3, o i vai ser 3. Se na vaga 2 estiver o valor 1, o i vai ser 1, acho que dá pra compreender.
Sim, a variável i assumiria (não de uma só vez), é parecido com o loop normal.
for(new i; i < 10; *i++*). Se i for menor que 10 ele acrescenta +1.
No foreach também, mas apenas se houver algum valor armazenado na lista.
Ele funciona para otimizar loop's da seguinte forma:
Exemplo:
Código:
new Iterator:lista<10> //Lista com 10 'vagas'
public OnPlayerConnect(playerid)
{
Iter_Add(lista, playerid); //Adiciona na lista o id do jogador
return 1;
}
public OnPlayerDisconnect(playerid)
{
Iter_Remove(lista, playerid); //Remove da lista o id do jogador
return 1;
}
//Exemplo usando zcmd
CMD:players(playerid, params[])
{
new str[64];
foreach(new i : lista) //Procura todos os jogadores da lista
{
new Nome[MAX_PLAYER_NAME]; GetPlayerName(playerid, Nome, sizeof(Nome));
format(str, sizeof(str), "%s[%d]", Nome, i);
SendClientMessage(playerid, -1, str);
}
return 1;
}
A variável i funciona quase da mesma forma que se eu criasse no loop normal, mas, ele pega da vaga o valor dela, se na vaga 1 tiver o valor 3, o i vai ser 3. Se na vaga 2 estiver o valor 1, o i vai ser 1, acho que dá pra compreender.