Jump to content
Sign in to follow this  
Senos

Script Intermediário (Aula 4)

Recommended Posts

Script Intermediário! - 4

Lista de Aulas:

Aula 1: http://herc.ws/board/topic/199-script-intermedi%C3%A1rio-aula-1/

 

Bom, como já estou no processo de criações de aulas de script, começarei a ensinar sobre setd's e getd's, na qual muitos acham comandos super difíceis de entender, deixarei bem claro, extremamente fáceis, o manuseio dos comandos são simples, passam a ser complexos quanto a códigos grandes, porém nada que uma boa estudada nos ajude a compreender cada um dos dois.

 

Primeiro assunto da aula:

- Setd e Getd

 

Sintaxe do comando Setd: 

setd "<nome da variável>",<valor>;

 

O comando setd funciona igualzinho ao comando set, a diferença é que o nome da variável é identificada com string.
 
Exemplo:
set $var$, "Poring";
setd "$var$", "Poporing";mes $var$; // Aparecerá Poporing
setd "$" + $var$ + "123$", "Poporing é legal";mes $Poporing123$; // Vai mostrar Poporing é legal

 

Sintaxe do comando Getd: 

getd("<nome da variável>"); 

 

Retorna uma referência da variável (setd), vejamos:
set getd("$variavel_referencia"), 1;set @i, getd($digimon);

 

Esse exemplo criará uma variável de acordo com o nome do jogador atachado:
set "@var" + strcharinfo(0), 135;
 
Se o nome do jogador for "Mijo" então o nome da variável será @varmijo, certo?
 
Para checar se o jogador tem uma variável como essa, use o getd, veja:
if (getd("@var"+strcharinfo(0)) > 0) {	set Zeny, Zeny + getd("@var"+strcharinfo(0)); }end;
 
Dará o Zeny de acordo com o valor da variável acima, no caso, 135.
 
Um outro exemplo: 
OnHour22:for (set @i,0; @i <= getarraysize($users_on); set @i,@i+1) {	setd $users_on[@i]+"_var, 1;}
 
Onde $users_on é definido quando o jogador loga com o getcharid(0).
A variável seria: 00000000_var
 
Ou seja, poderiamos saber o valor que um char específico tem nessa variável:
if (00000000_var == 1) mes "O jogador de id 00000000 tem a var como 1";

 

Se fosse um jogador atachado com o strcharinfo como no exemplo mais acima, dariamos para fazer o if de outra maneira, mas estamos falando de ID da conta, e não de nome de char, algo totalmente diferente.
 
Mais continuando no if feito acima, poderiamos definir outro valor para ela:
set 00000000_var,1;
 
Daria no mesmo que utilizar o Getd ou Setd.
 
Iremos pegar essa variável quando o jogador logar novamente:
OnPcLoginEvent:if(getd(getcharid(0)+"_var") == 1)) //Quer dizer que o jogador estava on na hora =){	dispbottom "Parabéns!";	getitem 501,1;	setd $users_on[@i]+"_var,0;}end;
 
É simples, setd define uma variável customizada e getd retorna o valor dessa variável customizada.
 
Simples, e novamente, um abraço!
 
Wolf.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.