доп gui

dmitry.karle

Известный
Автор темы
358
100
Версия MoonLoader
Другое
почему дополнительное окно зависит от основного? Мне нужно чтоб оно было постоянно активно если имеет значение true, когда открываешь основное окно, то и доп.окно работает вместе с основой, но когда основное закрываешь, то и доп.закрывается.
Lua:
local config = inicfg.load({
information = false,
}, directIni)
inicfg.save(config, directIni)

local check10 = imgui.new.bool(config.settings.information)

local id = '-'
local nick = '-'
local lvl = '-'
local ping = '-'

function main()
    repeat wait(0) until isSampAvailable()
    imgui.Process = false
    horizontal_state[0] = true
    wait(0)
        imgui.Process = horizontal_state[0]
        _, id = sampGetPlayerIdByCharHandle(PLAYER_PED)
        nick = sampGetPlayerNickname(id)
        lvl = sampGetPlayerScore(id)
        ping = sampGetPlayerPing(id)
        
    --cod
end

local newFrame = imgui.OnFrame(
   function() return renderWindow[0] and not isPauseMenuActive() and not sampIsScoreboardOpen() end,
    function(player)
        imgui.SetNextWindowPos(imgui.ImVec2(600,500), imgui.Cond.FirstUseEver, imgui.ImVec2(5, 5))
        imgui.SetNextWindowSize(imgui.ImVec2(800, 600), imgui.Cond.FirstUseEver)
        imgui.Begin(thisScript().name, renderWindow, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoTitleBar)
        
        --cod
        вкл/выкл этого окна, туда-сюда
        end
        if horizontal_state[0] and config.settings.inforamtion then --само доп.окно
               imgui.SetNextWindowPos(imgui.ImVec2(600,500), imgui.Cond.FirstUseEver, imgui.ImVec2(5, 5))
            imgui.SetNextWindowSize(imgui.ImVec2(650.0, 1.00), imgui.Cond.FirstUseEver)
            imgui.Begin('horizontal', horizontal_state, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoTitleBar)
            about_text = 'ID: '..id..' Name: '..nick..' LVL: '..lvl..' Ping: '..ping..' Data: '..os.date('%D')..' Time: '..os.date('%H:%M:%S')..''
            textsize = imgui.CalcTextSize(about_text)
            imgui.SetCursorPos(imgui.ImVec2(650 / 2 - textsize.x / 2, 9))
            imgui.Text(about_text)
            imgui.End()
        end
 
Решение
почему дополнительное окно зависит от основного? Мне нужно чтоб оно было постоянно активно если имеет значение true, когда открываешь основное окно, то и доп.окно работает вместе с основой, но когда основное закрываешь, то и доп.закрывается.
Lua:
local config = inicfg.load({
information = false,
}, directIni)
inicfg.save(config, directIni)

local check10 = imgui.new.bool(config.settings.information)

local id = '-'
local nick = '-'
local lvl = '-'
local ping = '-'

function main()
    repeat wait(0) until isSampAvailable()
    imgui.Process = false
    horizontal_state[0] = true
    wait(0)
        imgui.Process = horizontal_state[0]
        _, id = sampGetPlayerIdByCharHandle(PLAYER_PED)
        nick = sampGetPlayerNickname(id)...

YarikVL

Известный
Проверенный
4,736
1,816
почему дополнительное окно зависит от основного? Мне нужно чтоб оно было постоянно активно если имеет значение true, когда открываешь основное окно, то и доп.окно работает вместе с основой, но когда основное закрываешь, то и доп.закрывается.
Lua:
local config = inicfg.load({
information = false,
}, directIni)
inicfg.save(config, directIni)

local check10 = imgui.new.bool(config.settings.information)

local id = '-'
local nick = '-'
local lvl = '-'
local ping = '-'

function main()
    repeat wait(0) until isSampAvailable()
    imgui.Process = false
    horizontal_state[0] = true
    wait(0)
        imgui.Process = horizontal_state[0]
        _, id = sampGetPlayerIdByCharHandle(PLAYER_PED)
        nick = sampGetPlayerNickname(id)
        lvl = sampGetPlayerScore(id)
        ping = sampGetPlayerPing(id)
       
    --cod
end

local newFrame = imgui.OnFrame(
   function() return renderWindow[0] and not isPauseMenuActive() and not sampIsScoreboardOpen() end,
    function(player)
        imgui.SetNextWindowPos(imgui.ImVec2(600,500), imgui.Cond.FirstUseEver, imgui.ImVec2(5, 5))
        imgui.SetNextWindowSize(imgui.ImVec2(800, 600), imgui.Cond.FirstUseEver)
        imgui.Begin(thisScript().name, renderWindow, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoTitleBar)
       
        --cod
        вкл/выкл этого окна, туда-сюда
        end
        if horizontal_state[0] and config.settings.inforamtion then --само доп.окно
               imgui.SetNextWindowPos(imgui.ImVec2(600,500), imgui.Cond.FirstUseEver, imgui.ImVec2(5, 5))
            imgui.SetNextWindowSize(imgui.ImVec2(650.0, 1.00), imgui.Cond.FirstUseEver)
            imgui.Begin('horizontal', horizontal_state, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoTitleBar)
            about_text = 'ID: '..id..' Name: '..nick..' LVL: '..lvl..' Ping: '..ping..' Data: '..os.date('%D')..' Time: '..os.date('%H:%M:%S')..''
            textsize = imgui.CalcTextSize(about_text)
            imgui.SetCursorPos(imgui.ImVec2(650 / 2 - textsize.x / 2, 9))
            imgui.Text(about_text)
            imgui.End()
        end
Вот пример двух mimgui окон: https://www.blast.hk/threads/170647/#a_11
 
  • Нравится
Реакции: XRLM

XRLM

Против ветра рождённый
Модератор
1,584
1,205
function() return renderWindow[0] and not isPauseMenuActive() and not sampIsScoreboardOpen() end,
у тебя тут зависимость от переменной первого окна (renderWindow), поэтому второе никак не откроется, пока неактивно первое
создавай новый фрейм для другого окна
 
  • Нравится
Реакции: YarikVL