Как изменять переменную с помощью imgui.Checkbox?

Ninthmoon

Известный
Автор темы
464
129
Версия MoonLoader
.026-beta
Есть bool (по умол. false) отвечающая за то, будет выполнятся функция или нет, в main() проверяется если переменная true, вызывается функция
Вопрос в том как менять значение этой переменной с помощью imgui.Checkbox()?
Как я пробовал:
Lua:
local bool myBool = false

function imgui.OnDrawFrame()
    imgui.Checkbox('Enable function', myBool)
end

function main()
    while true do wait(0)
        if myBool then
            myFunction()
        end
    end
end

function myFunction()
end
Итог: функция включена сразу после включения скрипта, при открытии окна с чекбоксом скрипт вылетает
 

sat0ry

Известный
1,091
299
Lua:
local checkbox = imgui.ImBool(false) -- // У тебя есть переменная чекбокса
local bool = false -- // и есть переменная которую ты хочешь менять
--wait(0)
if checkbox.v then -- // если чекбокс активен наша переменная равна true
    bool = true
else -- // если чекбокс не активен наша переменная равна false
    bool = false
end

Вроде так понял тебя, если нет то объясни более подробно.
 

Sidney31

Известный
1,122
385
ясен хуй скрипт вылетать будет.
Вот нормальная структура рисовки окна

Lua:
function imgui.OnDrawFrame()
    if window.v then
        local resX, resY = getScreenResolution()
        local sizeX, sizeY = 300, 300 -- WINDOW SIZE
        imgui.SetNextWindowPos(imgui.ImVec2(resX / 2 - sizeX / 2, resY / 2 - sizeY / 2), imgui.Cond.FirstUseEver)
        imgui.SetNextWindowSize(imgui.ImVec2(sizeX, sizeY), imgui.Cond.FirstUseEver)
        imgui.Begin('Window Title', window)
        --window code
        imgui.End()
    end
end
 

Ninthmoon

Известный
Автор темы
464
129
ясен хуй скрипт вылетать будет.
Вот нормальная структура рисовки окна

Lua:
function imgui.OnDrawFrame()
    if window.v then
        local resX, resY = getScreenResolution()
        local sizeX, sizeY = 300, 300 -- WINDOW SIZE
        imgui.SetNextWindowPos(imgui.ImVec2(resX / 2 - sizeX / 2, resY / 2 - sizeY / 2), imgui.Cond.FirstUseEver)
        imgui.SetNextWindowSize(imgui.ImVec2(sizeX, sizeY), imgui.Cond.FirstUseEver)
        imgui.Begin('Window Title', window)
        --window code
        imgui.End()
    end
end
специально убрал всё лишнее, чтобы задать вопрос
 

sat0ry

Известный
1,091
299
ясен хуй скрипт вылетать будет.
Вот нормальная структура рисовки окна

Lua:
function imgui.OnDrawFrame()
    if window.v then
        local resX, resY = getScreenResolution()
        local sizeX, sizeY = 300, 300 -- WINDOW SIZE
        imgui.SetNextWindowPos(imgui.ImVec2(resX / 2 - sizeX / 2, resY / 2 - sizeY / 2), imgui.Cond.FirstUseEver)
        imgui.SetNextWindowSize(imgui.ImVec2(sizeX, sizeY), imgui.Cond.FirstUseEver)
        imgui.Begin('Window Title', window)
        --window code
        imgui.End()
    end
end
Ясен пень у него скрипт сразу крашелся и не открывалось бы имгуи меню, так что дело не в структуре окна.

могу указать 2 основных ошибки почему крашет скрипт:
Первое, переменная не может писаться с пробелом тоесть не local bool Mybool = false, а правильно local Mybool - false.
Второе:
Возможно при проверке ты просто забыл дописать .v своей переменной чекбокса и все.
 
  • Bug
Реакции: Letovo