Jump to content

Recommended Posts

Posted

Script Intermediário! - 4

 
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.
  • Upvote 2

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.   Paste as plain text instead

  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.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...