Как выключить imgui окно на checkbox + ini cfg

Jesus McWood

Участник
Автор темы
76
35
Версия MoonLoader
.026-beta
У меня есть виджет который активный со входа в игру. Если открываются другие окна он оффается. Как сделать что-бы когда человек поставит галочку на checkbox он не появлялся. Подскажите пожалуйста. ПО сути надо значение хранить в ini файле, это всё есть. Весь скрипт работает на inicfg. Вот код​
Lua:
local inicfg = require 'inicfg'

local vidget = imgui.ImBool(false)
local settings_window = imgui.ImBool(false)

local offvidget = imgui.ImBool(false)

local table1

local shablon = {
    config = {
    name="",
    age="",
    city="",
    vidget="true"
}
}

while true do
    wait(0)
   
    vidget.v = true
   
    if main_window.v or dop_window.v or pause_window.v or cmd_window.v or rules_window.v or destv_window.v or ts_window.v or klyap_window.v or meshok_window.v or poh_window.v or test3_window.v or test2_window.v or end_window.v or test_window.v or sobes_window.v or settings_window.v or aboutscript_window.v or osnov_deystvie_window.v or razrab_window.v or fwarn_window.v then
        vidget.v = false
    end
   
    table1 = inicfg.load(nil, directIni)

    if table1 == nil then
        inicfg.save(shablon, directIni)
        table1 = inicfg.load(nil, directIni)
    end
end

function imgui.OnDrawFrame()

    if settings_window.v then --Настройки
            imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
            imgui.SetNextWindowSize(imgui.ImVec2(375, 235), imgui.Cond.FirstUseEver)
            imgui.Begin(u8'Mafia-Assistant | Настройки', settings_window, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoScrollbar)

            imgui.PushItemWidth(150)
                imgui.InputText(u8"РП Имя (На англ.)", namebuffer)
            imgui.PopItemWidth()

            imgui.SameLine()
            imgui.TextQuestion(u8'Введите своё РП имя (На англ.)')

            imgui.PushItemWidth(150)
                imgui.InputText(u8"Возраст", agebuffer)
            imgui.PopItemWidth()

            imgui.SameLine()
            imgui.TextQuestion(u8'Введите РП возраст')

            imgui.PushItemWidth(150)
                imgui.InputText(u8"Город (РП)", citybuffer)
            imgui.PopItemWidth()

            imgui.SameLine()
            imgui.TextQuestion(u8'Данная информация нужна для РП биографии')

            imgui.Separator()
            imgui.Text("")

            imgui.Checkbox("Убрать виджет", offvidget)

            table1.config.name = namebuffer.v
            table1.config.age = agebuffer.v
            table1.config.city = citybuffer.v
            table1.config.vidget = offvidget.v -- Запись значения виджета

            if imgui.Button(fa.ICON_FA_SAVE .. u8" Сохранить", imgui.ImVec2(363, 38)) then
                if inicfg.save(table1, directIni) then
                     sampAddChatMessage(tag .. " {FFFFFF}Настройки {32CD32}сохранены", 0xFF0000)
                    settings_window.v = false
                end
            end

            if imgui.Button(fa.ICON_FA_HOME .. u8" Главная", imgui.ImVec2(363, 28)) then
                settings_window.v = false
                main_window.v = not main_window.v
            end

            imgui.Text(u8"Автор скрипта: Jesus_McWood")
            imgui.Text(u8"Версия скрипта: "..version)

        imgui.End()
    end
   
        if vidget.v then
        imgui.ShowCursor = false
        imgui.SetNextWindowPos(imgui.ImVec2(1, 250), imgui.Cond.Always)
        imgui.Begin(u8'Mafia-Assistant', vidget, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoScrollbar +           imgui.WindowFlags.NoMove + imgui.WindowFlags.NoTitleBar)
   
        imgui.Text("Mafia-Assistant "..version)
        imgui.Separator()
        local result, Myid = sampGetPlayerIdByCharHandle(PLAYER_PED)
        local _, id = sampGetPlayerIdByCharHandle(playerPed)
        if result then
            imgui.Text(u8"Ник - "..sampGetPlayerNickname(id))
            imgui.Text(u8"Пинг - "..sampGetPlayerPing(Myid))
            imgui.Separator()
            imgui.Text(u8"Здоровья - "..sampGetPlayerHealth(Myid))
            imgui.Text(u8"Броня - "..sampGetPlayerArmor(Myid))
        end
        imgui.End()
    end
end

--Писал по памяти, мог где-то ошибится :)

Код ini файла​
INI:
[config]
name=
age=
city=
vidget=true