Scripting Intermediário! - 1
Olá, meu nome é João Victor vulgo nick é Wolf, e estou criando este tutorial para aprendizado da linguagem script do emulador. São aulas que estavam desatualizadas antigamente no eAthena, que eu me propus a atualizar e adicionar comandos como while, e outros exemplos afim de ajudar a todos da comunidade. Primeiro assunto: - While No inglês o comando While significa enquanto, funciona da mesma forma que um if (verificação). Utilizando condição como base, ele criará um loop (laço) enquanto o valor que estiver nele for verdadeiro, vejamos um exemplo:
set @i, 1;
while (@i < 100) {
mes "Estou aprendendo loopings em Script!";
set @i, @i +1;
}
Nesse caso, iniciamos o nosso contador que é o While, lembrando que primeiro atribuimos um valor a nossa variável que é igual a 1 (@i). Nosso While avalia se @i é menor que 100, caso for verdadeiro, a condição, ele executará o script, se não for, no caso a condição for falsa, ele sairá do loop (do laço). A primeira volta de nosso loop, a instrução é verdadeira, então dentro do loop escrevemos a mensagem e somamos +1 a variável @i, com o operador de incrementação (+). Após terminar, o loop volta e avalia @i com o vlaor 2, se for verdadeiro, rodará mais uma vez, e assim por diante, até que chegue a seu limite e delimite como falsa, para quebrar o loop. No caso se quisessemos fazer com if, fariamos dessa forma:
Retornar:
if (@i < 100) {
mes "estou aprendendo loops em script!";
set @i, @i +1;
callsub Retornar;
}
Como vimos, o comando while verifica primeiro a variável. Já o comando Do While, que iremos explicar agora, faz ao contrário. Mas porquê? Simples, ele executa o código primeiro, e só depois que verifica a variável, se ela for verdadeira, ele executará o código novamente, e não como o while que verifica primeiro para que depois possa executar ou não o script. Veja o exemplo:
set @i, 1;
do {
mes "Estou aprendendo loops em script!";
set @i, @i +1;
} while (@i < 100);
Fim da aula de While! Segundo assunto desta aula: - For A sintaxe (comando) for funciona da mesma maneira que o While, em conjunto com um if. Utilizando uma ou mais variáveis como base, junto com uma condição. Ele cria um loop também, enquanto o valor for verdadeiro ele executa, porém em uma linha só, vejamos:
for (set @i,1; //Como no While, setamos a variável e seu valor.
Agora nesse mesmo For, iremos incrementar a condição, como no While, veja:
for (set @i,1; @i <= 100;
E como no final, iremos adicionar +1 a variável inicial, para que o for possa contar, até chegar o seu valor condicionalmente definido (100), como abaixo:
for (set @i,1; @i <= 100; set @i, @i + 1)
Isso não fará do script incorreto, mas se você fizer isso e não souber utilizar corretamente o script, fará um loop inifinito, ou seja, executará o script para sempre, sem que ele pare. Utilizamos desta forma quando o script acaba sendo baseado em uma variável inicial, ou mais variáveis. Veja:
for (set @i,1; @i < 100; set @i, @i + 1) {
mes "Estou aprendendo loops em script!";
}
Neste caso ele executará o mes 100x até o valor 100 ser sanado, batido. Vejamos melhor como funciona, se eu utilizasse um if:
set @i, 1;
Retornar:
if (@i < 100) {
mes "Estou aprendendo Loopings em Script!";
set @i, @i + 1;
callsub Retornar;
}
Mas pra que isso, se podemos transformar esse if em apenas uma linha? Veja:
for (for set @i,1; @i < 100; set @i, @i +1) {
mes "Estou aprendendo Loopings em Script!";
}
set @i,0; É o valor inicial da variável base. @i < 100; É a condição para o loop se manter. set @i,@i+1; É o complemento da variável, a incrementação na variável @i, para que a condição seja atingida. Acabamos por aqui nossa primeira aula de script intermediário! Agradeço ao Keoy por ter me ajudado sempre, ser meu professor antigamente e me ensinar muito tudo que sei, e me ter dado aulas com base para criação destes tutoriais.