Script Intermediário (Aula 1)

Senos

Moderator
Messages
183
Points
0
Age
30
Scripting Intermediário! - 1
Lista de Aulas:​
 
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:
Code:
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:
Code:
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:
Code:
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:
Code:
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: 
Code:
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:
Code:
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.

 
Last edited by a moderator:
Parabéns pelas aulas, poderia adicionar como uma outra opção os códigos nas tags code pra ficar mais organizado. +rep.

 
Logo logo irei reformular o tópico das mesmas, não gosto dessas coisas tão coloridas assim, é porque a 1 e a 2 foram as primeiras que fiz, já a 3 e a 4 já fiz direto aqui no Hercules e ficaram mais organizadas, pois gosto desse tipo de code que contém no rA/brA e aqui, já no Cronus não tem, então preferi fazer com imagens.

Muito obrigado, e caso queira redistribuir no brAthena ou algo do tipo, fica a dispor!

Reformulei os tópicos já, deixei mais limpos, retirei as corzinhas que me incomodavam, acho que agora está melhor!!

 
Last edited by a moderator:
Back
Top