Jump to content
Sign in to follow this  
Senos

Script Intermediário (Aula 3)

Recommended Posts

Script Intermediário! - 3

Lista de Aulas:

Aula 1: http://herc.ws/board/topic/199-script-intermedi%C3%A1rio-aula-1/

 

Como prometido, estarei começando com a terceira aula de script (Menu dinâmico e suas teorias).

 

Primeiro assunto da aula:

- Menus dinâmicos e suas teorias

 

Menus dinâmicos são essenciais hoje em dia justamente pelo fato da necessidade de otimizações e dinâmismo que podemos dar aos scripts. 

No meu método de seleção e aprendizado, utilizaremos uma string que será como se você estivesse digitando no select suas opções na hora, facilitando muito.
Claro, existem diversas formas de fazer um menu dinâmico, porém essa é a mais simples e prática utilizada hoje em dia.
 
Então partiremos para criar um menu.
Para começar, precisamos ter uma variável do tipo STRING, na qual guardaremos as intruções do select.
//Faremos ela sem valor nenhum inicialmente, para deopis fazer um loop e adicionar as funções.//Observem que usei uma variável temporária do npc para essa função (mais simples e rápido)set .@cmd$,"";
 
Agora precisamos e setaremos uma lista de opções que serão usadas no seu menu (pode ser feito antes do .@cmd$, caso você queira):
setarray .@opt$[0],"Comprar","Vender","Trocar";

 

Nunca coloque opção de cancelar nessa array, ela será posta mais tarde.
Então iniciamos nosso loop que fará a linha de comando, vejamos:
for(set @i,0; @i <= getarraysize(.@opt$); set @i,@i+1)	set .@cmd$, .@cmd$+.@opt$[@i] + ":";

 

Entendendo:
.@cmd$+.@opt$[@i]+":"

 

.@cmd$ = Prepara a variável que contém a linha do comando atual para adição de mais um item no menu.
.@opt$[@i] = É a opção a ser adicionada na linha de comando.
":" = É o que separa as opções em um select. (Como qualquer select sem dinamização, só para exemplo).
 
Agora para finalizar, adicionaremos por último:
set .@cmd$, .@cmd$+"Fechar"; //Esse fechar é a última opção de nosso (seu) menu.

 

Finalmente colocamos o select que usará a linha de comando, fazendo o código ficar desta maneira:

set .@cmd$,"";setarray .@opt$[0],"Comprar","Vender","Trocar";for(set @i,0; @i <= getarraysize(.@opt$); set @i,@i+1)	set .@cmd$, .@cmd$+.@opt$[@i] + ":";set .@cmd$, .@cmd$+"Fechar";select(.@cmd$);

 

Para utilizar o snippet utilize uma forma normal, com a variável retornada por todo tipo de menu, que é a @menu.
 
Para lembrarmos, veja um exemplo simples:
select("Oi":"Tchau");if (@menu == 1) mes "Oi";if (@menu == 2) mes "Tchau";

 

É simplesmente isso, o uso é bem simples como o tutorial, em caso de dúvidas, mande uma PM que ajudarei com toda certeza!

Um abraço, Wolf.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

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