Wolf Posted March 2, 2013 Posted March 2, 2013 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. 2 Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.