Usando Loops | Teуrica -
ipsBruno - 02.12.2010
Introduзгo:
Код:
Em ciкncia da computaзгo um loop for й uma linguagem de programaзгo declaraзгo que permite que cуdigo a ser repetidamente executado. Um loop for й classificada como uma iteraзгo comunicado.
//Wikipйdia
LOOP EXISTEM EM TODA PROGRAMAЗГO
(EXCETO EXOTЙRICA -q)
Ele executa repetidamente o cуdigo,resumidamente farб isto:
Loop:
pawn Код:
for(new i; i < 5; i++)
{
printf("Oi Loop %d",i);
}
Modo de saida:
Код:
Oi Loop 0
Oi Loop 1
Oi Loop 2
Oi Loop 3
Oi Loop 4
Sem o Loop:
pawn Код:
print("Oi Loop 1");
print("Oi Loop 2");
print("Oi Loop 3");
print("Oi Loop 4");
Isto й,loops nгo otimizam o cуdigo,apenas resumem,
(claro otimizando na compilaзгo, com menos linhas)
Um Loop й baseado no Valor de Array.
O Loop FOR й uma interaзгo de While.
Isto mesmo While й o Loop padrгo
(no pawn) e FOR й a intereзгo de While.
(isto й,com mais funзхes)
Qual a diferenca?
Simples:
While й baseado em 2 estruturas.
Jб o FOR й baseado em 3 Estruturas (Parametros)
array/execuзгo (opcional) - condicional - Execuзгo (ao executar o loop) (em caso de abrir 1 { irб executar o que estб dentro do mesmo)
Enquanto ao MAX_PLAYERS?
Bom sei que nгo tem nada haver com Loops mas muita gente acha (
como knife) que os loops sгo usados apenas para isto.
Como todos sabem os
playerid's sгo compostos por numeros comuns
Sendo assim ao executar o Loop ele faz com arrays,que sгo simbolizadas pelo id,pois elas equivalem a nъmeros normais
Quote:
Array Valor 0 = Playerid 0
Array Valor 1 = Playerid 1
|
Entгo chegando a conclusгo que ele executarб em 500 Valores da Array,ou seja,500 IDS. (
maxplayers = 500)
Os Loops sгo usados para executar voltas (loops).
Isto й,ele faz vбrias execuзхes.
Veja aqui como podemos fazer Loops sem precisar do FOR (
usando funзгo SetPlayerHealth):
Com Whiles
pawn Код:
// Loop 1
new i;
while(i < MAX_PLAYERS)
{
i++;
SetPlayerHealth(i,100);
}
Ou atй com Goto's
pawn Код:
// Loop 2
new i;
funcao:
if(i < MAX_PLAYERS)
{
i++;
SetPlayerHealth(i,100);
goto funcao;
}
Com Execuзгo de Stock/Publics
pawn Код:
// Loop 3
new i;
stock LoopStock()
{
if(i < MAX_PLAYERS)
{
i++;
ExecutarFuncoes(i);
}
}
stock ExecutarFuncoes(i)
{
SetPlayerHealth(i,100);
LoopStock();
}
Existem outras milhares de formas,do,while,goto,publics,stocks,functions,upda tes,timers.
E outras gabiarras para Loop,espero que tenham gostado Bjokas
Bom chegamos ao fim do Tutorial,espero que tenham entendido e tirado uma visгo certas sobre os loops
(nй knife).
TUTORIAL CRIADO POR DRAKINS | PROJETO FEK SQUAD| SEM PUBLICAR EM TEU BLOG
Re: Usando Loops | Teуrica -
Macintosh - 02.12.2010
Muiitнssimo bom DraKinS (:
Ele й tipo "repeat" e "while" em Pascal (.pas)?
@EDIT
Na verdade ele й while *--*
Re: Usando Loops | Teуrica -
Gustavob - 02.12.2010
legal <3
queria deixar uma coisa clara pro povгo que faz cуdigo assim:
pawn Код:
for(new fdp; fdp < 500; fdp++)
{
if(IsPlayerConnected(fdp))
{
SetPlayerHealth(fdp, 100.0);
return 1;
}
}
Isso ta meio deso(p)timizado. Acontece que todas as funзхes que fazem algo com jogadores jб tem um IsPlayerConnected embutido, mas nгo significa que elas usam essa funзгo, elas simplesmente checam por si mesmas, portanto o resultado й cуdigo redundante. O melhor jeito pra fazer isso seria:
pawn Код:
for(new fdp; fdp < 500; fdp++) return SetPlayerHealth(fdp, 100.0);
funciona do mesmo jeito, sу que ta mais optimizado.
Re: Usando Loops | Teуrica -
[Banido]HigorOliver - 02.12.2010
so mais o usar o foreach
Re: Usando Loops | Teуrica -
[Ips]Guh - 02.12.2010
Tutorial Very Good....
Re: Usando Loops | Teуrica -
ipsBruno - 02.12.2010
Gustavob,isto ai que tu fez nгo otimizou nada,usou funcao da mesma forma,e alйm do mais como setarб vida de um player que ao existe?
Re: Usando Loops | Teуrica -
Gustavob - 02.12.2010
Drakon, se as funзхes de player jб checam por si sу se o player existe antes de fazer o que ela estб designada а fazer, ela nao vai setar a vida do player "fdp" se ele nгo existir, nй?
isso foi confirmado por ****** em um tуpico dele que eu vou traduzir amanha se eu lembrar (ele ja deixou)
Se eu nao usar o IPC, vou economizar o uso de uma funзao e portanto optimizar o cуdigo
Re: Usando Loops | Teуrica -
ipsBruno - 03.12.2010
Quote:
Originally Posted by Gustavob
Drakon, se as funзхes de player jб checam por si sу se o player existe antes de fazer o que ela estб designada а fazer, ela nao vai setar a vida do player "fdp" se ele nгo existir, nй?
isso foi confirmado por ****** em um tуpico dele que eu vou traduzir amanha se eu lembrar (ele ja deixou)
Se eu nao usar o IPC, vou economizar o uso de uma funзao e portanto optimizar o cуdigo
|
Sim isto que fala й verdade,atй porque se usar uma funcao como SetPlayerHealth em um loop,nгo й necessбrio usar PlayerConnected,pois daria na mesma.
Re: Usando Loops | Teуrica -
Rodrigo_LosT - 03.12.2010
e se por exemplo... eu usar "return 1;"...
ele para de fazer os loops?tipo ta checando tipo se um player tem merda nas calзa, dai ele testa todos, dai vamos dizer que no 333 jogador, ele ve que o cara tem merda nas calзa, ele para de checa se eu botar um "return 1;" ?
Re: Usando Loops | Teуrica -
faeldk - 03.12.2010
Perfect Drakins
!