Wolf Posted March 2, 2013 Posted March 2, 2013 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. 2 Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.