Script Intermediário (Aula 3)

Senos

Moderator
Messages
183
Points
0
Age
30
Script Intermediário! - 3
Lista de Aulas:​

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):
Code:
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:
Code:
for(set @i,0; @i <= getarraysize(.@opt$); set @i,@i+1)	set .@cmd$, .@cmd$+.@opt$[@i] + ":";
Entendendo:
Code:
.@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:
Code:
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:
Code:
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.

 
Last edited by a moderator:
Back
Top