Senos 54 Posted February 21, 2013 Script Intermediário! - 4 Lista de Aulas: Aula 1: http://herc.ws/board/topic/199-script-intermedi%C3%A1rio-aula-1/ Aula 2: http://herc.ws/board/topic/200-script-intermedi%C3%A1rio-aula-2/ Aula 3: http://herc.ws/board/topic/201-script-intermedi%C3%A1rio-aula-3/ Aula 4: http://herc.ws/board/topic/203-script-intermedi%C3%A1rio-aula-4/ Aula 5: http://herc.ws/board/topic/213-script-intermedi%C3%A1rio-aula-5/ Aula 6: http://herc.ws/board/topic/228-queries-sql-aula-6/ Aula 7: http://herc.ws/board/topic/239-script-intermedi%C3%A1rio-aula-7/ 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. 4 JulioCF, Niunzin, braindevel and 1 other reacted to this Quote Share this post Link to post Share on other sites