[imgui] Дублирование менюшки

loxerian

Новичок
Автор темы
19
1
Версия MoonLoader
.026-beta
Если imgui окно открыто, и я еще раз прописываю команду чтобы эта меню открылась, содержимое дублируется
скрин 1, когда просто открыл меню

Снимок экрана 2023-12-29 144521.png


скрин 2, когда с открытым окном ввел команду
Снимок экрана 2023-12-29 144628.png
 
  • Эм
Реакции: Merci

loxerian

Новичок
Автор темы
19
1
ну так код дай, мы тебе по скрину должны понять в чем проблема?
забыл приложить

Lua:
local imgui = require('mimgui');
local ffi = require('ffi');
local encoding = require('encoding');
encoding.default = 'CP1251';
local u8 = encoding.UTF8;

local window = imgui.new.bool(true);

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

local active = imgui.new.bool(false)

function main()
    while not isSampAvailable() do wait(0) end
sampRegisterChatCommand('test', function ()
    
    imgui.OnFrame(
    function () return true end,
    function (this)
        local size, res = imgui.ImVec2(450, 250), imgui.ImVec2(getScreenResolution());
      
        imgui.SetNextWindowSize(size, imgui.Cond.FirstUseEver);
        imgui.SetNextWindowPos(imgui.ImVec2(res.x / 2, res.y / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5));
        if (imgui.Begin('test window', window, imgui.WindowFlags.NoCollapse)) then
            if (imgui.Button(u8'Здарова, долбаеб!', imgui.ImVec2(150,50))) then
                sampAddChatMessage('Ты нажал на меня!', -1);
            end
            if (imgui.Checkbox(u8'Статус Работы', active)) then
            sampAddChatMessage('Чекбокс ' .. (active[0] and 'Включен' or 'Выключен'), -1);
        end
        end
        imgui.End();
    end
);

end);

end
 

dmitry.karle

Активный
347
85
Lua:
local frame = imgui.new.bool()
imgui.OnFrame(function() return frame[0] end, function()
    imgui.SetNextWindowPos(imgui.ImVec2(10, 10), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
      imgui.SetNextWindowSize(imgui.ImVec2(10, 10))
    imgui.Begin('##frame', frame, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
    --содержимое фрейма
    imgui.End()
end)
sampRegisterChatCommand('test', function() frame[0] = not frame[0] end)
 

XRLM

Против ветра рождённый
Модератор
1,583
1,196
забыл приложить

Lua:
local imgui = require('mimgui');
local ffi = require('ffi');
local encoding = require('encoding');
encoding.default = 'CP1251';
local u8 = encoding.UTF8;

local window = imgui.new.bool(true);

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

local active = imgui.new.bool(false)

function main()
    while not isSampAvailable() do wait(0) end
sampRegisterChatCommand('test', function ()
   
    imgui.OnFrame(
    function () return true end,
    function (this)
        local size, res = imgui.ImVec2(450, 250), imgui.ImVec2(getScreenResolution());
     
        imgui.SetNextWindowSize(size, imgui.Cond.FirstUseEver);
        imgui.SetNextWindowPos(imgui.ImVec2(res.x / 2, res.y / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5));
        if (imgui.Begin('test window', window, imgui.WindowFlags.NoCollapse)) then
            if (imgui.Button(u8'Здарова, долбаеб!', imgui.ImVec2(150,50))) then
                sampAddChatMessage('Ты нажал на меня!', -1);
            end
            if (imgui.Checkbox(u8'Статус Работы', active)) then
            sampAddChatMessage('Чекбокс ' .. (active[0] and 'Включен' or 'Выключен'), -1);
        end
        end
        imgui.End();
    end
);

end);

end
ты че ебанутый чтоли в мейне вызывать фрейм через команду? тебе в документации мимгуи приложен рабочий пример скрипта