Jump to content

Recommended Posts

Posted

Script Intermediário! - 3

 
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.
  • Upvote 2

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.   Paste as plain text instead

  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.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...