Отображение выбранного раздела

boy next door

Участник
Автор темы
208
18
Версия MoonLoader
.026-beta
привет всем.
как сделать такую штуку? вот, открыт раздел "Панели". Как сделать такое на mimgui?
1721937324520.png
 
Решение
попробовал по всякому, не получилось, крашит
мля ну ты бы кинул что за ошибка, вот простой пример, надеюсь дальше сам разберешься
Lua:
local imgui = require 'mimgui'

local WinState = imgui.new.bool(1)

local cTab = 1

imgui.OnFrame(function() return WinState[0] end, function(player)
    imgui.SetNextWindowPos(imgui.ImVec2(500,500), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
    imgui.SetNextWindowSize(imgui.ImVec2(245, 270), imgui.Cond.Always)
    imgui.Begin('##Window', WinState, imgui.WindowFlags.NoResize)

    imgui.customTabs({'One','Two','Three'}, 0x700000FF)
    imgui.Text(tostring(cTab))

    imgui.End()
end)

function imgui.customTabs(buttons, color)
    local dl = imgui.GetWindowDrawList()...

MLycoris

Режим чтения
Проверенный
1,941
2,064
я думаю как-то так
1721939211179.png

Lua:
-- где нибудь в начале скрипта
local cTab = 1

-- в мимгуи
imgui.customTabs({'FirstButton', 'SecondButton', 'ThirdButton'}, 0x700000FF) -- 1 таблица с названиями кнопок, 2 цвет этой херни слева

-- где нибудь в пизде чтоб не мешалось
function imgui.customTabs(buttons, color)
    local dl = imgui.GetWindowDrawList()
    imgui.PushStyleColor(imgui.Col.Button, imgui.ImVec4(0,0,0,0)) -- дефолт цвет кнопки
    imgui.PushStyleColor(imgui.Col.ButtonHovered, imgui.ImVec4(0,0,0,0.10)) -- при наведении
    imgui.PushStyleColor(imgui.Col.ButtonActive, imgui.ImVec4(1,1,1,0.05)) -- при нажатии
    for k, v in pairs(buttons) do
        local p = imgui.GetCursorScreenPos()
        if imgui.Button(v,imgui.ImVec2(130,40)) then cTab = k end
        if k == cTab then 
            dl:AddRectFilled(imgui.ImVec2(p.x,p.y+10), imgui.ImVec2(p.x+4,p.y+30), color, 5);
        end
    end
    imgui.PopStyleColor(3)
end
 

boy next door

Участник
Автор темы
208
18
я думаю как-то так
Посмотреть вложение 247555
Lua:
-- где нибудь в начале скрипта
local cTab = 1

-- в мимгуи
imgui.customTabs({'FirstButton', 'SecondButton', 'ThirdButton'}, 0x700000FF) -- 1 таблица с названиями кнопок, 2 цвет этой херни слева

-- где нибудь в пизде чтоб не мешалось
function imgui.customTabs(buttons, color)
    local dl = imgui.GetWindowDrawList()
    imgui.PushStyleColor(imgui.Col.Button, imgui.ImVec4(0,0,0,0)) -- дефолт цвет кнопки
    imgui.PushStyleColor(imgui.Col.ButtonHovered, imgui.ImVec4(0,0,0,0.10)) -- при наведении
    imgui.PushStyleColor(imgui.Col.ButtonActive, imgui.ImVec4(1,1,1,0.05)) -- при нажатии
    for k, v in pairs(buttons) do
        local p = imgui.GetCursorScreenPos()
        if imgui.Button(v,imgui.ImVec2(130,40)) then cTab = k end
        if k == cTab then
            dl:AddRectFilled(imgui.ImVec2(p.x,p.y+10), imgui.ImVec2(p.x+4,p.y+30), color, 5);
        end
    end
    imgui.PopStyleColor(3)
end
как заменить это на custom?
Lua:
 for numberTab,nameTab in pairs({'Информация','Собеседования','Настройки'}) do -- создаём и парсим таблицу с названиями будущих вкладок
        if imgui.Button(u8(nameTab), imgui.ImVec2(130,70)) then -- 2ым аргументом настраивается размер кнопок (подробнее в гайде по мимгуи)
            tab = numberTab -- меняем значение переменной tab на номер нажатой кнопки
        end
    end
 

MLycoris

Режим чтения
Проверенный
1,941
2,064
как заменить это на custom?
Lua:
 for numberTab,nameTab in pairs({'Информация','Собеседования','Настройки'}) do -- создаём и парсим таблицу с названиями будущих вкладок
        if imgui.Button(u8(nameTab), imgui.ImVec2(130,70)) then -- 2ым аргументом настраивается размер кнопок (подробнее в гайде по мимгуи)
            tab = numberTab -- меняем значение переменной tab на номер нажатой кнопки
        end
    end
imgui.customTabs({u8'Информация',u8'Собеседования',u8'Настройки'}, 0x700000FF)
 

MLycoris

Режим чтения
Проверенный
1,941
2,064
попробовал по всякому, не получилось, крашит
мля ну ты бы кинул что за ошибка, вот простой пример, надеюсь дальше сам разберешься
Lua:
local imgui = require 'mimgui'

local WinState = imgui.new.bool(1)

local cTab = 1

imgui.OnFrame(function() return WinState[0] end, function(player)
    imgui.SetNextWindowPos(imgui.ImVec2(500,500), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
    imgui.SetNextWindowSize(imgui.ImVec2(245, 270), imgui.Cond.Always)
    imgui.Begin('##Window', WinState, imgui.WindowFlags.NoResize)

    imgui.customTabs({'One','Two','Three'}, 0x700000FF)
    imgui.Text(tostring(cTab))

    imgui.End()
end)

function imgui.customTabs(buttons, color)
    local dl = imgui.GetWindowDrawList()
    imgui.PushStyleColor(imgui.Col.Button, imgui.ImVec4(0,0,0,0))
    imgui.PushStyleColor(imgui.Col.ButtonHovered, imgui.ImVec4(0,0,0,0.10))
    imgui.PushStyleColor(imgui.Col.ButtonActive, imgui.ImVec4(1,1,1,0.05))
    for k, v in pairs(buttons) do
        local p = imgui.GetCursorScreenPos()
        if imgui.Button(v,imgui.ImVec2(130,40)) then cTab = k end
        if k == cTab then
            dl:AddRectFilled(imgui.ImVec2(p.x,p.y+10), imgui.ImVec2(p.x+4,p.y+30), color, 5);
        end
    end
    imgui.PopStyleColor(3)
end