Как сделать mimgui по кнопке?

KOHTOP

Участник
Автор темы
138
17
Версия MoonLoader
.027.0-preview
Такой вопрос, я ранее делал скрипт на imgui, но почитав темы в этом разделе многие говорят, что mimgui лучше. Вот я нашёл тему, где всё объясняется, но я так и не понял, как сделать запуск mimgui по кнопке? (через vkeys)

Скрипт:
local imgui = require 'mimgui'

local encoding = require 'encoding'
encoding.default = 'CP1251'
local u8 = encoding.UTF8
local keys = require 'vkeys'

local new = imgui.new
local WinState = new.bool()
imgui.OnFrame(function() return WinState[0] end,
    function(player)
        imgui.SetNextWindowPos(imgui.ImVec2(500,500), imgui.Cond.FirstUseEver, imgui.ImVec2(1, 1))
        imgui.SetNextWindowSize(imgui.ImVec2(500, 400), imgui.Cond.Always)
        imgui.Begin(u8'Основное', WinState, imgui.WindowFlags.NoResize)
        imgui.End()
    end
)

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(1000) end
    
        sampAddChatMessage('Успешный запуск!', -1)
    while true do
        wait(0)

    if isKeyJustPressed(VK_F3) then
        function() WinState[0] = not WinState[0] end
    end

    end
    
end
 
  • Эм
Реакции: LiL STANLEY и qdIbp

qdIbp

Автор темы
Проверенный
1,450
1,191
Гайд открой и посмотри
 
  • Нравится
  • Эм
Реакции: YarikVL и MLycoris

KOHTOP

Участник
Автор темы
138
17
Lua:
local WinState = new.bool(false)

И ещё...
Lua:
if isKeyJustPressed(VK_F3) then
    WinState[0] = not WinState[0]
end
Не открывается, хотя если прописать "sampAddChatMessage('Скрипт ещё работает', -1)", то будет всё равно будет писать "скрипт ещё работает", хотя gui не открывается
 

MLycoris

На вид оружие массового семяизвержения
Проверенный
1,981
2,196
в 2.1 добавил пример мимгуи по кнопке :)

 
  • Нравится
Реакции: whyega52

riverya4life

Известный
383
168
Не открывается, хотя если прописать "sampAddChatMessage('Скрипт ещё работает', -1)", то будет всё равно будет писать "скрипт ещё работает", хотя gui не открывается
Попробуй так

Lua:
local imgui = require 'mimgui'

local encoding = require 'encoding'
encoding.default = 'CP1251'
local u8 = encoding.UTF8
local keys = require 'vkeys'

local new = imgui.new
local MainFrame = new.bool(false)

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(1000) end
    sampAddChatMessage('Успешный запуск!', -1)
 
    while true do
        wait(0)

        if isKeyJustPressed(VK_F3) then
            MainFrame[0] = not MainFrame[0]
        end
    end
end

imgui.OnInitialize(function()
    imgui.GetIO().IniFilename = nil
end)

local Frame = imgui.OnFrame(
    function() return MainFrame[0] end,
    function(self)
        imgui.SetNextWindowPos(imgui.ImVec2(500,500), imgui.Cond.FirstUseEver, imgui.ImVec2(1, 1))
        imgui.SetNextWindowSize(imgui.ImVec2(500, 400), imgui.Cond.Always)
        imgui.Begin(u8'Основное', MainFrame, imgui.WindowFlags.NoResize)
        imgui.Text("Test")
        imgui.End()
    end
)
 

LiL STANLEY

Активный
146
44
Не открывается, хотя если прописать "sampAddChatMessage('Скрипт ещё работает', -1)", то будет всё равно будет писать "скрипт ещё работает", хотя gui не открывается
Так название своего фрейма введи...