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.
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.
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.
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.
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).
Ó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?
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).