Pesquisa resultou em 5 ocorrências

por Um_Geek
09 Set 2020, 18:54
Fórum: Utilidades
Tópico: Função para criar menus facilmente em LUA.
Respostas: 11
Exibições: 2464
Gênero:

Re: Função para criar menus facilmente em LUA.

Grinch_ escreveu:
04 Jul 2020, 22:17
Also posting this here as this looks cool af. (by BDC_Osiris)

This tool is really cool.
Imagem

Código: Selecionar tudo

local nat_menu = require "nat_menu"

function main()
	while true do
		if testCheat("UI") then
			setPlayerControl(0,false)
			local v = nat_menu('title','desc',{'opt1','opt2','opt3'},"shop_binco")
			setPlayerControl(0,true)
			printStringNow(v,2000)
		end
		wait(0)
	end
end

nat_menu.zip
(425 Bytes) Baixado 119 vezes


Atualizando a forma padrão, suporta mais de 12 itens.
Imagem

Código: Selecionar tudo

local classic_menu = require "classic_menu"

local opts = {}
for i=1, 40 do
	table.insert(opts, "Option "..i)
end

function main()
	while true do 
		if testCheat("CLS") then
			setPlayerControl(0,false)
			local v = classic_menu.new('title','desc',opts,90,30,240)
			setPlayerControl(0,true)
			printStringNow(v,2000)
		end
		wait(0)
	end
end

function onExitScript()
	classic_menu.clear()
end

classic_menu.zip
(687 Bytes) Baixado 113 vezes
por Um_Geek
16 Ago 2018, 18:45
Fórum: Utilidades
Tópico: Função para criar menus facilmente em LUA.
Respostas: 11
Exibições: 2464
Gênero:

Re: Função para criar menus facilmente em LUA.

Junior_Djjr escreveu:
16 Ago 2018, 17:20
Um_Geek escreveu:
16 Ago 2018, 10:55
Usar o botão yes é mais pratico.
Só é mais prático para você. Quebrar um padrão não é prático para as pessoas, o que é prático é seguir um padrão, onde todos os menus se selecionam por Espaço, então o seu também tem que selecionar.

Eu faço scripts por passa tempo, ai uma vez ou outra compartilho, então segue o que é pratico para mim :peepo6:

De qualquer forma meus menus usam Y para confirmar uma opção e N para sair sem escolher nada, ou coloco uma opção para sair no menu. Adicionei um argumento que define o botão de confirmar, se for nil vai ser yes mesmo.
por Um_Geek
16 Ago 2018, 10:55
Fórum: Utilidades
Tópico: Função para criar menus facilmente em LUA.
Respostas: 11
Exibições: 2464
Gênero:

Re: Função para criar menus facilmente em LUA.

É só loopar aguardando soltar o botão e depois liberar os controles do player.

Usar o botão yes é mais pratico. mas quem usar outro melhor acrescentar isto ali no lugar da setinha.

Código: Selecionar tudo

function main()
    while true do 
        wait(80);        
        if testCheat('teste') then 
            local result = simple_menu(meu_menu,90.0,90.0,true);
            printStringNow(result,1500);
            --> Aqui
        end
    end
end

por Um_Geek
16 Ago 2018, 10:40
Fórum: Utilidades
Tópico: Função para criar menus facilmente em LUA.
Respostas: 11
Exibições: 2464
Gênero:

Re: Função para criar menus facilmente em LUA.

FilipeS escreveu:
15 Ago 2018, 23:04
Tem algo me dizendo pra aprender lua.. :peepo1:
Vale a pena :peepo6:

Junior_Djjr escreveu:
16 Ago 2018, 02:55
Isto aqui não tá errado? Você tá setando as colunas do menu todos os frames, você só precisa setar na criação do menu.
esta parte foi copiada de outro lugar, tem um motivo especial para ser assim, mas no caso não é necessário.


Código: Selecionar tudo

while not isButtonPressed(PLAYER_HANDLE,11) do
Esqueci de mencionar que o menu usa o botão Yes, normalmente usar o de entrar/sair de veículos, mas sempre me encheu aquilo depois de sair de uns menus o CJ sair correndo para o carro mais próximo :v
por Um_Geek
15 Ago 2018, 18:14
Fórum: Utilidades
Tópico: Função para criar menus facilmente em LUA.
Respostas: 11
Exibições: 2464
Gênero:

Função para criar menus facilmente em LUA.

Criar menus tanto em cleo quando em lua é algo até chato, ficar pondo DUMMY em entradas invalidas, cria arquivo gxt ou usar add_text_label sempre complica mais, então para facilitar na criação de menus criei esta função. não notei bugs no uso dela.

Função
Basta copiar a função e por no script que esteja fazendo. Ela é completa, des de pegar o resultado a congelar o player enquanto seleciona uma opção.

Código: Selecionar tudo

-- descrição 
-- table_name: table com entradas do menu.
-- pos_x: posição X
-- pos_y : posição Y
-- return_text: [true] = o menu retornara o texto da opção escolhida, [false] = o menu retornara numero da opção.
-- button: defina o botão que ativa o menu.

function simple_menu(table_name,pos_x,pos_y,return_text,button)
    if button == nil then button = 11 end -- yes
    local labels = {};
    setPlayerControl(PLAYER_HANDLE,false);
    setCameraBehindPlayer();
    for i=1, #table_name do
        if table_name[i] then 
            labels[i] = setFreeGxtEntry(table_name[i]);
        else 
            labels[i] = "DUMMY";
        end
    end
    local menu = createMenu(labels[1],pos_x,pos_y,300.0,1,true,true,1);
    setMenuColumn(menu,0,labels[2],labels[3],labels[4],labels[5],labels[6],labels[7],labels[8],labels[9],labels[10],labels[11],labels[12],labels[13]);
    while not isButtonPressed(PLAYER_HANDLE,button) do
        wait(0);
    end
    local option = getMenuItemSelected(menu);
    deleteMenu(menu);
    while isButtonPressed(PLAYER_HANDLE,button) do
        wait(0);
    end
    setPlayerControl(PLAYER_HANDLE,true);
    restoreCamera();    
    for i=1, #labels do 
        if labels[i]~="DUMMY" then
            clearGxtEntry(labels[i]);
        end
    end
    if return_text then 
        return table_name[option+3];
    end
    return option;
end

Uso
Basta criar uma table com titulo, descrição e opções

Código: Selecionar tudo

local meu_menu = {
    [1] = "meu titulo";
    [2] = "minha descricao";
    [3] = "opt 1";
    [4] = "opt 2"; 
    [5] = "opt 3";
    [6] = "opt 4";        
}

Na função fica assim

Código: Selecionar tudo

function main()
    while true do 
        wait(80);        
        if testCheat('teste') then 
            local result = simple_menu(meu_menu,90.0,90.0,true,15);
            printStringNow(result,1500);
        end
    end
end

**Adicionado o argumento button para definir o botão de confirmar.

Voltar para “Função para criar menus facilmente em LUA.”