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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...

Important Information

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