[Tutorial] Loop: Percorrendo Valores
2 participantes
TeaM KingS :: Games: :: Warcraft: World Editor :: Tutoriais: Gui, Jass, Spells, Terrain, Modelagem, Textura :: Triggers(GUI)
Página 1 de 1
[Tutorial] Loop: Percorrendo Valores
Saudações membros TeK, trago á vocês este tutorial básico feito por mim, que mostra a utilização de loops (For Each Integer A) para percorrer valores e reduzir o tamanho de algumas funções comumente utilizadas por editores.
Desta maneira você criará funções do tipo; distribuir gold ou itens, enviar mensagens, entre outras, com muito mais praticidade, qualidade e eficiência.
Bom, começaremos por trabalhar em cima da seguinte trigger:
O que ela faz é: Assim que iniciar o jogo, os players 1, 2, 3, 4... e 12 terão seus golds ajustados para 1000.
Nesse caso, utilizaremos o loop para percorrer o número de cada player (1-12), evitando que tenhamos de criar uma função para cada player, como no exemplo acima.
O script é bem simples, vejamos o mesmo abaixo:
Não é um milagre, mas veja como nossa trigger anterior foi reduzida.
Ressalto que o efeito do novo exemplo acima possui a mesma função do exemplo anterior.
Agora vamos supor que seu mapa é dividido em dois times, podemos criar dois loops (para cada time), onde cada time receberá uma quantidade diferente de gold. Vejamos:
A trigger acima possui a seguinte função: Assim que iniciar o jogo, os players do 1 ao 6 receberão 1000 (mil) golds e os players do 7 ao 12 receberão 900 golds.
Para facilitar sua compreensão, vamos explicar detalhadamente os seguintes exemplos:
A parte destacada na cor amarela é o nosso evento. Ela diz que as ações serão executadas na inicialização do mapa.
A parte destacada em azul é o nosso loop; o loop é composto pela quantidade de vezes que será repetido/executado e pelas ações contidas nele.
A parte destacada em vermelho ou rosa na imagem acima, indica a quantidade de vezes que o loop será executado, á partir de um número inicial.
Como o valor inicial foi colocado 1, e o valor final foi 12. Ao ser executado, o loop criará uma variável local temporária chamada (Integer A), onde á essa variável serão atribuídos os valores em cada execução.
Dessa forma o loop executará as ações definidas instantaneamente 12 vezes, sendo que pra cada vez, a variável (Integer A) terá seu valor modificado para o número da execução em que se encontra.
No exemplo acima, destacamos nossa ação; que terá a função de definir o gold de cada player.
Observe que, ao invés de indicar o número de cada player que receberá os golds, nós atribuímos a variável temporária (Integer A) no lugar desse número.
Dessa forma, sempre que o loop for executado (do 1 ao 12), em cada execução, essa variável terá seu valor alterado (do 1 ao 12), fazendo com que os players (do 1 ao 12) tenham seus golds definidos.
O tutorial encerra aqui, mas para finalizarmos nossa trigger com "perfeição", vamos destrui-la, já que não mais será necessária. Observe:
O exemplo acima mostra o código Jass que destrói a trigger. Para utiliza-lo basta inserir o nome da trigger entre os parenteses utilizando o prefixo "gg_trg_" (sem as áspas).
Caso a trigger se chame BolaDeFogo, iremos inserir gg_trg_BolaDeFogo dentro dos parenteses.
Exemplo:
Até +
Desta maneira você criará funções do tipo; distribuir gold ou itens, enviar mensagens, entre outras, com muito mais praticidade, qualidade e eficiência.
Bom, começaremos por trabalhar em cima da seguinte trigger:
O que ela faz é: Assim que iniciar o jogo, os players 1, 2, 3, 4... e 12 terão seus golds ajustados para 1000.
Nesse caso, utilizaremos o loop para percorrer o número de cada player (1-12), evitando que tenhamos de criar uma função para cada player, como no exemplo acima.
O script é bem simples, vejamos o mesmo abaixo:
Não é um milagre, mas veja como nossa trigger anterior foi reduzida.
Ressalto que o efeito do novo exemplo acima possui a mesma função do exemplo anterior.
Agora vamos supor que seu mapa é dividido em dois times, podemos criar dois loops (para cada time), onde cada time receberá uma quantidade diferente de gold. Vejamos:
A trigger acima possui a seguinte função: Assim que iniciar o jogo, os players do 1 ao 6 receberão 1000 (mil) golds e os players do 7 ao 12 receberão 900 golds.
Para facilitar sua compreensão, vamos explicar detalhadamente os seguintes exemplos:
A parte destacada na cor amarela é o nosso evento. Ela diz que as ações serão executadas na inicialização do mapa.
A parte destacada em azul é o nosso loop; o loop é composto pela quantidade de vezes que será repetido/executado e pelas ações contidas nele.
A parte destacada em vermelho ou rosa na imagem acima, indica a quantidade de vezes que o loop será executado, á partir de um número inicial.
Como o valor inicial foi colocado 1, e o valor final foi 12. Ao ser executado, o loop criará uma variável local temporária chamada (Integer A), onde á essa variável serão atribuídos os valores em cada execução.
Dessa forma o loop executará as ações definidas instantaneamente 12 vezes, sendo que pra cada vez, a variável (Integer A) terá seu valor modificado para o número da execução em que se encontra.
No exemplo acima, destacamos nossa ação; que terá a função de definir o gold de cada player.
Observe que, ao invés de indicar o número de cada player que receberá os golds, nós atribuímos a variável temporária (Integer A) no lugar desse número.
Dessa forma, sempre que o loop for executado (do 1 ao 12), em cada execução, essa variável terá seu valor alterado (do 1 ao 12), fazendo com que os players (do 1 ao 12) tenham seus golds definidos.
O tutorial encerra aqui, mas para finalizarmos nossa trigger com "perfeição", vamos destrui-la, já que não mais será necessária. Observe:
O exemplo acima mostra o código Jass que destrói a trigger. Para utiliza-lo basta inserir o nome da trigger entre os parenteses utilizando o prefixo "gg_trg_" (sem as áspas).
Caso a trigger se chame BolaDeFogo, iremos inserir gg_trg_BolaDeFogo dentro dos parenteses.
Exemplo:
- Código:
call DestroyTrigger(gg_trg_BolaDeFogo)
Até +
Re: [Tutorial] Loop: Percorrendo Valores
Ótimo Tutorial, não haveria um melhor para os iniciantes Porem, há uma questão em minha mente '-', bom não é uma questão eu acho e sim uma dúvida. Existe a Trigger Off, mas ela não destrói a trigger como essa Script? E qual a diferença entre as duas?
Re: [Tutorial] Loop: Percorrendo Valores
A diferença é a seguinte:
Desligar a Trigger (Trigger OFF): A trigger ainda fica salva na memória (leak), só que nenhum evento ou ação poderá executa-la até que ela esteja ligada (Trigger ON).
Destruir Trigger: Remove a trigger da memória destruindo a mesma (No Leak).
É isso?
Até+
Desligar a Trigger (Trigger OFF): A trigger ainda fica salva na memória (leak), só que nenhum evento ou ação poderá executa-la até que ela esteja ligada (Trigger ON).
Destruir Trigger: Remove a trigger da memória destruindo a mesma (No Leak).
É isso?
Até+
Tópicos semelhantes
» [Pedido]Trigger de Criação automatica de Unidades Loop
» [Duvida] Como destruir Unit group em loop MUI
» [Tutorial] de Contagem
» [Tutorial] Som KILL
» [Tutorial] Itens
» [Duvida] Como destruir Unit group em loop MUI
» [Tutorial] de Contagem
» [Tutorial] Som KILL
» [Tutorial] Itens
TeaM KingS :: Games: :: Warcraft: World Editor :: Tutoriais: Gui, Jass, Spells, Terrain, Modelagem, Textura :: Triggers(GUI)
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|