Como criar menus
Enviado: 15 Set 2019, 22:45
[english]
Como criar menus no estilo original do jogo
Disponível somente no GTA SA, o sistema de menu do jogo é de fato muito simples de usar.
Os comandos principais se resumem à isto:
CREATE_MENU
SET_MENU_COLUMN
GET_MENU_ITEM_SELECTED
DELETE_MENU
E você precisa criar algumas entradas GXT:
Como usar entradas GXT (GXT entry)
E aqui está um exemplo completo:
Código: Selecionar tudo
SCRIPT_START
{
NOP
LVAR_INT menu selected
WHILE TRUE
WAIT 0
IF TEST_CHEAT "MENU"
// Example: 08D4: create_menu 'IE09' position 29.0 170.0 width 180.0 columns 1 interactive 1 background 1 alignment 0 store_to $1153
CREATE_MENU MENUNM (30.0 170.0) (180.0) 1 TRUE TRUE 0 (menu)
SET_MENU_COLUMN menu 0 DUMMY (ITEM1 ITEM2 ITEM3 DUMMY DUMMY DUMMY DUMMY DUMMY DUMMY DUMMY DUMMY DUMMY)
WHILE TRUE
WAIT 0
IF IS_BUTTON_PRESSED PAD1 CROSS // sprint key
GET_MENU_ITEM_SELECTED menu (selected)
SWITCH selected
CASE 0
PRINT_STRING "Item 1 is selected" 100
BREAK
CASE 1
PRINT_STRING "Item 2 is selected" 100
BREAK
CASE 2
PRINT_STRING "Item 3 is selected" 100
BREAK
ENDSWITCH
//BREAK //uncomment it to break when selected
ENDIF
IF IS_BUTTON_PRESSED PAD1 TRIANGLE // action key
BREAK
ENDIF
ENDWHILE
DELETE_MENU menu
ENDIF
ENDWHILE
}
SCRIPT_END
MENUNM
e ITEM1
, ITEM2
e ITEM3
:Código: Selecionar tudo
MENUNM Menu name
ITEM1 Item 1
ITEM2 Item 2
ITEM3 Item 3
Se você ainda não leu o tutorial de como usar entradas GXT, leia!!!
Todos os
DUMMY
são placeholders, ou seja, indica que não há texto nenhum ali. Se no comando SET_MENU_COLUMN
dá erro de quantia de argumentos, provavelmente faltou ou sobrou algum DUMMY
ali. São sempre 12 itens.Leia atentamente o script de exemplo para entender como funciona e assim fazer as manipulações necessárias para o seu caso.
A lógica é basicamente esta:
- O menu é criado, enviando o nome, tamanho, número de colunas e outras propriedades.
- É colocado cada item do menu.
- Entra um loop (utilizando WHILE TRUE e BREAK).
- Checa se pressionou o comando de seleção, que é o comando de correr (X no controle de PS2; Espaço no teclado).
- - Então pega o atual item selecionado e usa SWITCH para fazer diferentes ações a cada linha. Perceba que a primeira linha começa a partir do 0.
- Checa se pressionou o comando de cancelar, que é o comando de ação (Triângulo no controle de PS2; Enter no teclado).
- - Então entra no BREAK, que quebra o WHILE TRUE e continua abaixo dele.
- Abaixo e fora do WHILE TRUE nós temos o comando para deletar o menu, e lá o trabalho acaba e volta para o loop principal de ativação.
MENU
e veja todos os comandos relacionados com menus para entender as suas possibilidades.Há vários comandos que podem lhe ser úteis, como
HIGHLIGHT_MENU_ITEM
e SET_ACTIVE_MENU_ITEM
.Você também pode usar duas colunas, algo que é útil para por exemplo menus de compra com preço.
Note que só é possível 12 itens. Se você precisa de um menu com mais de 12 itens, eu recomendo que no último item você adiciona algo como "Próximo" para passar para a próxima página ou algo assim, deste modo você terá itens infinitos.
"Eu quero algo mais avançado que isto!"
Mas se você quer de fato enfiar as mãos na lama e criar o seu próprio sistema de menu e interface, você pode. Será mais difícil de começar, mas quando você fizer, terá um total controle.
Foi assim que eu criei toda a interface do Tuning Mod: Shine GUI - Crie interfaces personalizadas. Mas esse sistema é muito manual, pois eu queria algo mais maleável, então não espere nada pronto, você terá que usar a cabeça.
Se você está à procura de um sistema de menu / interface realmente avançado para um projeto grande, o melhor a se fazer é utilizar MoonLoader com ImGui, pois ainda não existe nada neste nível para CLEO.