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

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.   Restore formatting

  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.

Loading...
Sign in to follow this  

×
×
  • Create New...

Important Information

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