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";
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] + ":";
Code:
.@cmd$+.@opt$[@i]+":"
.@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: