Wolf Posted March 2, 2013 Group: Members Topic Count: 19 Topics Per Day: 0.00 Content Count: 96 Reputation: 42 Joined: 11/15/11 Last Seen: May 19, 2023 Share 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 Link to comment Share on other sites More sharing options...
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.