Почему не работает?

P0M61K

Активный
Автор темы
264
54
Версия MoonLoader
.026-beta
Lua:
local imgui = require("mimgui")
local ffi = require("ffi")
local new, str = imgui.new, ffi.string
local vkeys = require("vkeys")
local encoding = require("encoding")
encoding.default = "CP1251"
local u8 = encoding.UTF8
local fAwesome = require("fAwesome5")
local size = {getScreenResolution()}

local fAlpha = 1.00
local mainc = imgui.ImVec4(0.0, 0.52, 0.74, 1.0)

local GUI = {
    renderWindow = new.bool()
}

function main()
    while not isSampAvailable() do wait(100) end
    sampRegisterChatCommand("imgui", function()
        GUI.renderWindow[0] = not GUI.renderWindow[0]
    end)
    while true do
        wait(0)
        UpdateAlpha(GUI.renderWindow[0])
    end
end

function UpdateAlpha(menustate)
    if menustate then -- open
        if fAlpha ~= 1.00 then
            fAlpha = fAlpha + 0.05
        end
    else -- close
        if fAlpha ~= 0.00 then
            fAlpha = fAlpha - 0.05
        end
    end
    if fAlpha > 1.00 then
        fAlpha = 1.00
    end
    if fAlpha < 0.00 then
        fAlpha = 0.00
    end -- anti dowen fix
    apply_custom_style()
end

function apply_custom_style()
    local style = imgui.GetStyle()
    local colors = style.Colors
    local clr = imgui.Col
    local ImVec4 = imgui.ImVec4
    style.Alpha = fAlpha
    style.WindowRounding = 1.5
    style.WindowTitleAlign = imgui.ImVec2(0.5, 0.5)
    style.FrameRounding = 1.0
    style.ItemSpacing = imgui.ImVec2(4.0, 4.0)
    style.ScrollbarSize = 13.0
    style.ScrollbarRounding = 0
    style.GrabMinSize = 8.0
    style.GrabRounding = 1.0
    style.WindowBorderSize = 0.0
    style.WindowPadding = imgui.ImVec2(4.0, 4.0)
    style.FramePadding = imgui.ImVec2(2.5, 3.5)
    style.ButtonTextAlign = imgui.ImVec2(0.5, 0.35)
    colors[clr.Text] = ImVec4(1.00, 1.00, 1.00, 1.00)
    colors[clr.TextDisabled] = ImVec4(0.7, 0.7, 0.7, 1.0)
    colors[clr.WindowBg] = ImVec4(0.07, 0.07, 0.07, 1.0)
    colors[clr.PopupBg] = ImVec4(0.08, 0.08, 0.08, 0.94)
    colors[clr.Border] = ImVec4(mainc.x, mainc.y, mainc.z, 0.4)
    colors[clr.BorderShadow] = ImVec4(0.00, 0.00, 0.00, 0.00)
    colors[clr.FrameBg] = ImVec4(mainc.x, mainc.y, mainc.z, 0.7)
    colors[clr.FrameBgHovered] = ImVec4(mainc.x, mainc.y, mainc.z, 0.4)
    colors[clr.FrameBgActive] = ImVec4(mainc.x, mainc.y, mainc.z, 0.9)
    colors[clr.TitleBg] = ImVec4(mainc.x, mainc.y, mainc.z, 1.0)
    colors[clr.TitleBgActive] = ImVec4(mainc.x, mainc.y, mainc.z, 1.0)
    colors[clr.TitleBgCollapsed] = ImVec4(mainc.x, mainc.y, mainc.z, 0.79)
    colors[clr.MenuBarBg] = ImVec4(0.14, 0.14, 0.14, 1.00)
    colors[clr.ScrollbarBg] = ImVec4(0.02, 0.02, 0.02, 0.53)
    colors[clr.ScrollbarGrab] = ImVec4(mainc.x, mainc.y, mainc.z, 0.8)
    colors[clr.ScrollbarGrabHovered] = ImVec4(0.41, 0.41, 0.41, 1.00)
    colors[clr.ScrollbarGrabActive] = ImVec4(0.51, 0.51, 0.51, 1.00)
    colors[clr.CheckMark] = ImVec4(mainc.x + 0.13, mainc.y + 0.13, mainc.z + 0.13, 1.00)
    colors[clr.SliderGrab] = ImVec4(0.28, 0.28, 0.28, 1.00)
    colors[clr.SliderGrabActive] = ImVec4(0.35, 0.35, 0.35, 1.00)
    colors[clr.Button] = ImVec4(mainc.x, mainc.y, mainc.z, 0.8)
    colors[clr.ButtonHovered] = ImVec4(mainc.x, mainc.y, mainc.z, 0.63)
    colors[clr.ButtonActive] = ImVec4(mainc.x, mainc.y, mainc.z, 1.0)
    colors[clr.Header] = ImVec4(mainc.x, mainc.y, mainc.z, 0.6)
    colors[clr.HeaderHovered] = ImVec4(mainc.x, mainc.y, mainc.z, 0.43)
    colors[clr.HeaderActive] = ImVec4(mainc.x, mainc.y, mainc.z, 0.8)
    colors[clr.Separator] = colors[clr.Border]
    colors[clr.SeparatorHovered] = ImVec4(0.26, 0.59, 0.98, 0.78)
    colors[clr.SeparatorActive] = ImVec4(0.26, 0.59, 0.98, 1.00)
    colors[clr.ResizeGrip] = ImVec4(mainc.x, mainc.y, mainc.z, 0.8)
    colors[clr.ResizeGripHovered] = ImVec4(mainc.x, mainc.y, mainc.z, 0.63)
    colors[clr.ResizeGripActive] = ImVec4(mainc.x, mainc.y, mainc.z, 1.0)
    colors[clr.PlotLines] = ImVec4(0.61, 0.61, 0.61, 1.00)
    colors[clr.PlotLinesHovered] = ImVec4(1.00, 0.43, 0.35, 1.00)
    colors[clr.PlotHistogram] = ImVec4(0.90, 0.70, 0.00, 1.00)
    colors[clr.PlotHistogramHovered] = ImVec4(1.00, 0.60, 0.00, 1.00)
    colors[clr.TextSelectedBg] = ImVec4(0.26, 0.59, 0.98, 0.35)
end

imgui.OnInitialize(function()
    apply_custom_style()
    imgui.GetIO().IniFilename = nil
    local defGlyph = imgui.GetIO().Fonts.ConfigData.Data[0].GlyphRanges
    imgui.GetIO().Fonts:Clear()
    local font_config = imgui.ImFontConfig()
    font_config.SizePixels = 14.0;
       font_config.GlyphExtraSpacing.x = 0.1
    local def = imgui.GetIO().Fonts:AddFontFromFileTTF(getFolderPath(0x14) .. "\\arialbd.ttf", font_config.SizePixels, font_config, defGlyph)
       local config = imgui.ImFontConfig()
       config.MergeMode = true
       config.PixelSnapH = true
       config.FontDataOwnedByAtlas = false
       config.GlyphOffset.y = 1.0
       local fa_glyph_ranges = new.ImWchar[3]({ fAwesome.min_range, fAwesome.max_range, 0 })
       local fAwesomeV = imgui.GetIO().Fonts:AddFontFromMemoryCompressedBase85TTF(fAwesome.get_font_data_base85(), font_config.SizePixels, config, fa_glyph_ranges)
       imgui.GetIO().ConfigWindowsMoveFromTitleBarOnly = true
end)

local newFrame = imgui.OnFrame(
       function() return GUI.renderWindow[0] end,
       function(player)
        imgui.SetNextWindowPos(imgui.ImVec2(size[1]/2, size[2]/2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
           imgui.SetNextWindowSize(imgui.ImVec2(300, 400), imgui.Cond.FirstUseEver)
        imgui.Begin(u8"а как   " .. fAwesome.ICON_POOP .. u8"   какать", GUI.renderWindow, imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoResize)
            if imgui.CollapsingHeader(u8"Как какать") then
                imgui.Text(u8"A KAK KAKATb")
            end
        imgui.End()
    end
)
По идее должно было быть плавное открытие окна, но выходит что крашит непонятными ошибками. На имгуи работает без ошибок а у меня крашит.
Табуляция сбивается багом сайта ес чо.
 
Решение
Вроде бы как нельзя применять стили как в обычном imgui, здесь чуть по другому, пока ещё не разбирался. В теме mimgui была про это речь.
Да и этим ты нагрузку лишнюю создаёшь, каждый раз обновляя сразу все элементы стиля.

Плавное появление лучше делать через ПушСтайл. Пример:

Lua:
alpha = 0.0

local newFrame = imgui.OnFrame(
    function() return win[0] end,
    function(player)
        imgui.PushStyleVarFloat(imgui.StyleVar.Alpha, alpha)
        imgui.SetNextWindowPos(imgui.ImVec2(size[1]/2, size[2]/2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
        imgui.SetNextWindowSize(imgui.ImVec2(300, 400), imgui.Cond.FirstUseEver)
        if alpha < 1 then alpha = alpha + 0.05 end
        imgui.Begin("win", win...

Hatiko

Известный
Проверенный
1,472
611
Вроде бы как нельзя применять стили как в обычном imgui, здесь чуть по другому, пока ещё не разбирался. В теме mimgui была про это речь.
Да и этим ты нагрузку лишнюю создаёшь, каждый раз обновляя сразу все элементы стиля.

Плавное появление лучше делать через ПушСтайл. Пример:

Lua:
alpha = 0.0

local newFrame = imgui.OnFrame(
    function() return win[0] end,
    function(player)
        imgui.PushStyleVarFloat(imgui.StyleVar.Alpha, alpha)
        imgui.SetNextWindowPos(imgui.ImVec2(size[1]/2, size[2]/2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
        imgui.SetNextWindowSize(imgui.ImVec2(300, 400), imgui.Cond.FirstUseEver)
        if alpha < 1 then alpha = alpha + 0.05 end
        imgui.Begin("win", win, imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoResize)
          
        imgui.End()
        imgui.PopStyleVar(1)
end)
Алгоритм для переменной alpha там добьёшь.
 
  • Нравится
Реакции: James Saula и P0M61K

James Saula

Активный
98
26
Вроде бы как нельзя применять стили как в обычном imgui, здесь чуть по другому, пока ещё не разбирался. В теме mimgui была про это речь.
Да и этим ты нагрузку лишнюю создаёшь, каждый раз обновляя сразу все элементы стиля.

Плавное появление лучше делать через ПушСтайл. Пример:

Lua:
alpha = 0.0

local newFrame = imgui.OnFrame(
    function() return win[0] end,
    function(player)
        imgui.PushStyleVarFloat(imgui.StyleVar.Alpha, alpha)
        imgui.SetNextWindowPos(imgui.ImVec2(size[1]/2, size[2]/2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
        imgui.SetNextWindowSize(imgui.ImVec2(300, 400), imgui.Cond.FirstUseEver)
        if alpha < 1 then alpha = alpha + 0.05 end
        imgui.Begin("win", win, imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoResize)
         
        imgui.End()
        imgui.PopStyleVar(1)
end)
Алгоритм для переменной alpha там добьёшь.
а как сделать закрытие окна?
 

Hatiko

Известный
Проверенный
1,472
611
как сделать плавное закрытие окна!
Тоже самое, только в обратную сторону, пример аналогичен выше.
Открытое нормальное окно alpha = 255
При закрытии просто убавляешь прозрачность
if alpha > 0 then alpha = alpha - 0.05 end
 
  • Вау
Реакции: James Saula

James Saula

Активный
98
26
Тоже самое, только в обратную сторону, пример аналогичен выше.
Открытое нормальное окно alpha = 255
При закрытии просто убавляешь прозрачность
if alpha > 0 then alpha = alpha - 0.05 end
покажи как это сделать в коде и я лайкаю половину твоих сообщений (ахуел когда увидел сколько сообщений)
Lua:
local imgui = require "mimgui"

function main()
    if not isSampAvailable() then return false end
    if wasKeyPressed(0x2D) then
        windowState = not windowState
    end
        if not windowState then
            if alpha ~= 0 then alpha = 0 end
        end

return false
end

alpha = 0.0
local mainFrame = imgui.OnFrame(
    function() return windowState end,
    function(self)
        imgui.PushStyleVarFloat(imgui.StyleVar.Alpha, alpha)
        if alpha < 1 then alpha = alpha + 0.03 end

        local sw, sh = getScreenResolution()
        imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
        imgui.SetNextWindowSize(imgui.ImVec2(300, 600), imgui.Cond.FirstUseEver)
        imgui.Begin('', nil, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoTitleBar + imgui.WindowFlags.NoScrollbar)

    imgui.End()
end)
local font = {}
imgui.OnInitialize(function()
    imgui.GetIO().IniFilename = nil
    local config = imgui.ImFontConfig()
    local glyph_ranges = imgui.GetIO().Fonts:GetGlyphRangesCyrillic()
    local path = getFolderPath(0x14) .. '\\ARIALUNI.TTF' -- micross.ttf ARIALUNI.TTF
    imgui.GetIO().Fonts:Clear() -- Удаляем стандартный шрифт на 14
    imgui.GetIO().Fonts:AddFontFromFileTTF(path, 15.0, nil, glyph_ranges) -- этот шрифт на 15 будет стандартным
    config.MergeMode, config.PixelSnapH = true, true
    local glyph_ranges = imgui.GetIO().Fonts:GetGlyphRangesCyrillic()
    imgui.GetIO().Fonts:AddFontFromFileTTF('Arial.ttf', 14.0, nil, glyph_ranges)
    font[17] = imgui.GetIO().Fonts:AddFontFromFileTTF(path, 17.0, nil, glyph_ranges)
    font[25] = imgui.GetIO().Fonts:AddFontFromFileTTF(path, 25.0, nil, glyph_ranges)
    font[30] = imgui.GetIO().Fonts:AddFontFromFileTTF(path, 30.0, nil, glyph_ranges)
    font[40] = imgui.GetIO().Fonts:AddFontFromFileTTF(path, 40.0, nil, glyph_ranges)
    guiCustomStyle()
end)

function guiCustomStyle()
    imgui.SwitchContext()
    local style = imgui.GetStyle()
    local colors = style.Colors
    local clr = imgui.Col
    local ImVec4 = imgui.ImVec4
    style.WindowRounding = 7
    style.WindowTitleAlign = imgui.ImVec2(0.5, 0.5)
    style.ButtonTextAlign = imgui.ImVec2(0.5, 0.5)
    style.FrameRounding = 0
    style.ItemSpacing = imgui.ImVec2(5.0, 4.0)
    style.ScrollbarSize = 3.0
    style.ScrollbarRounding = 0
    style.GrabMinSize = 17
    style.GrabRounding = 16
        colors[clr.PlotHistogram]          = ImVec4(0.00, 0.71, 0.88, 1.00)
        colors[clr.Text]                     = ImVec4(0.00, 0.00, 0.00, 1.00)
        colors[clr.TextDisabled]            = ImVec4(0.24, 0.24, 0.24, 1.00)
        colors[clr.WindowBg]              = ImVec4(0.94, 0.94, 0.94, 1.00)
        colors[clr.ChildBg]                  = ImVec4(0.86, 0.86, 0.86, 1.00)
        colors[clr.PopupBg]               = ImVec4(0.82, 0.82, 0.82, 1.00)
        colors[clr.Border]                = ImVec4(0.00, 0.00, 0.00, 0.00)
        colors[clr.BorderShadow]          = ImVec4(0.00, 0.00, 0.00, 0.00)
        colors[clr.FrameBg]               = ImVec4(0.78, 0.78, 0.78, 1.00)
        colors[clr.FrameBgHovered]        = ImVec4(0.78, 0.78, 0.78, 1.00)
        colors[clr.FrameBgActive]         = ImVec4(0.78, 0.78, 0.78, 1.00)
        colors[clr.TitleBg]               = ImVec4(0.85, 0.85, 0.85, 1.00)
        colors[clr.TitleBgCollapsed]      = ImVec4(0.85, 0.85, 0.85, 1.00)
        colors[clr.TitleBgActive]         = ImVec4(0.85, 0.85, 0.85, 1.00)
        colors[clr.MenuBarBg]             = ImVec4(0.00, 0.37, 0.78, 1.00)
        colors[clr.ScrollbarBg]           = ImVec4(0.00, 0.71, 0.88, 1.00)--
        colors[clr.ScrollbarGrab]         = ImVec4(0.00, 0.35, 1.00, 0.78)
        colors[clr.ScrollbarGrabHovered]  = ImVec4(0.00, 0.33, 1.00, 0.84)
        colors[clr.ScrollbarGrabActive]   = ImVec4(0.00, 0.31, 1.00, 0.88)
        colors[clr.CheckMark]             = ImVec4(0.00, 0.49, 1.00, 0.59)
        colors[clr.SliderGrab]            = ImVec4(0.00, 0.71, 0.88, 1.00)--
        colors[clr.SliderGrabActive]      = ImVec4(0.00, 0.71, 0.88, 1.00)--
        colors[clr.Button]                = ImVec4(0.97, 0.97, 0.97, 1.00)
        colors[clr.ButtonHovered]         = ImVec4(0.90, 0.90, 0.90, 1.00)
        colors[clr.ButtonActive]          = ImVec4(0.85, 0.85, 0.85, 1.00)
        colors[clr.Header]                = ImVec4(0.00, 0.49, 1.00, 0.78)
        colors[clr.HeaderHovered]         = ImVec4(0.00, 0.49, 1.00, 0.71)
        colors[clr.HeaderActive]          = ImVec4(0.00, 0.49, 1.00, 0.78)
        colors[clr.Separator]             = ImVec4(0.00, 0.49, 1.00, 0.78)
        colors[clr.SeparatorHovered]      = ImVec4(0.00, 0.49, 1.00, 0.71)
        colors[clr.SeparatorActive]       = ImVec4(0.00, 0.49, 1.00, 0.78)
        colors[clr.ResizeGrip]            = ImVec4(0.00, 0.39, 1.00, 0.59)
        colors[clr.ResizeGripHovered]     = ImVec4(0.00, 0.27, 1.00, 0.59)
        colors[clr.ResizeGripActive]      = ImVec4(0.00, 0.25, 1.00, 0.63)
        colors[clr.PlotLines]             = ImVec4(0.00, 0.39, 1.00, 0.75)
        colors[clr.PlotLinesHovered]      = ImVec4(0.00, 0.39, 1.00, 0.75)
        colors[clr.PlotHistogram]         = ImVec4(0.00, 0.71, 0.88, 1.00)
        colors[clr.PlotHistogramHovered]  = ImVec4(0.00, 0.71, 0.88, 1.00)
        colors[clr.TextSelectedBg]        = ImVec4(0.00, 0.47, 1.00, 0.59)
        colors[clr.ModalWindowDimBg]        = ImVec4(0.20, 0.20, 0.20, 0.35)
end
 
Последнее редактирование:

Hatiko

Известный
Проверенный
1,472
611
покажи как это сделать в коде
Возможно костыльно с доп переменной, но это надо анализировать.
Это готовый код на открытие и закрытие окна.

Lua:
alpha = 0.0
winHide = false

-- в main или где-то в другом месте, где переключается окно.
if  isKeyJustPressed(0x2D) then
    if win[0] then
        winHide = true
    else
        winHide = false
        win[0] = true
        alpha = 0.0
    end
end

--

local newFrame = imgui.OnFrame(
    function() return win[0] end,
    function(player)
        imgui.PushStyleVarFloat(imgui.StyleVar.Alpha, alpha)
        imgui.SetNextWindowPos(imgui.ImVec2(size[1]/2, size[2]/2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
        imgui.SetNextWindowSize(imgui.ImVec2(300, 400), imgui.Cond.FirstUseEver)
        if alpha < 1 and not winHide then alpha = alpha + 0.05 end
        if alpha > 0 and winHide then
            alpha = alpha - 0.05
            if alpha == 0 then
                win[0] = false
            end
        end
        imgui.Begin("win", win, imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoResize)
          
        imgui.End()
        imgui.PopStyleVar(1)
end)
 
  • Нравится
Реакции: James Saula

James Saula

Активный
98
26
Возможно костыльно с доп переменной, но это надо анализировать.
Это готовый код на открытие и закрытие окна.

Lua:
alpha = 0.0
winHide = false

-- в main или где-то в другом месте, где переключается окно.
if  isKeyJustPressed(0x2D) then
    if win[0] then
        winHide = true
    else
        winHide = false
        win[0] = true
        alpha = 0.0
    end
end

--

local newFrame = imgui.OnFrame(
    function() return win[0] end,
    function(player)
        imgui.PushStyleVarFloat(imgui.StyleVar.Alpha, alpha)
        imgui.SetNextWindowPos(imgui.ImVec2(size[1]/2, size[2]/2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
        imgui.SetNextWindowSize(imgui.ImVec2(300, 400), imgui.Cond.FirstUseEver)
        if alpha < 1 and not winHide then alpha = alpha + 0.05 end
        if alpha > 0 and winHide then
            alpha = alpha - 0.05
            if alpha == 0 then
                win[0] = false
            end
        end
        imgui.Begin("win", win, imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoResize)
         
        imgui.End()
        imgui.PopStyleVar(1)
end)
Lua:
local imgui = require "mimgui"
alpha = 0.0
winHide = false
function main()
    if not isSampAvailable() then return false end
    if isKeyJustPressed(0x2D) then
    if win then
        winHide = true
    else
        winHide = false
        win = true
        alpha = 0.0
    end
end
return false
end

local newFrame = imgui.OnFrame(
    function() return win end,
    function(player)
        imgui.PushStyleVarFloat(imgui.StyleVar.Alpha, alpha)
        local sw, sh = getScreenResolution()
        imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
        imgui.SetNextWindowSize(imgui.ImVec2(300, 600), imgui.Cond.FirstUseEver)
        imgui.Begin('', nil, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoTitleBar + imgui.WindowFlags.NoScrollbar)
        if alpha < 1 and not winHide then alpha = alpha + 0.05 end
        if alpha > 0 and winHide then
            alpha = alpha - 0.05
            if alpha == 0 then
                win = false
            end
        end
        
    imgui.End()
    imgui.PopStyleVar(1)
end)
local font = {}
imgui.OnInitialize(function()
    imgui.GetIO().IniFilename = nil
    local config = imgui.ImFontConfig()
    local glyph_ranges = imgui.GetIO().Fonts:GetGlyphRangesCyrillic()
    local path = getFolderPath(0x14) .. '\\ARIALUNI.TTF' -- micross.ttf ARIALUNI.TTF
    imgui.GetIO().Fonts:Clear() -- Удаляем стандартный шрифт на 14
    imgui.GetIO().Fonts:AddFontFromFileTTF(path, 15.0, nil, glyph_ranges) -- этот шрифт на 15 будет стандартным
    config.MergeMode, config.PixelSnapH = true, true
    local glyph_ranges = imgui.GetIO().Fonts:GetGlyphRangesCyrillic()
    imgui.GetIO().Fonts:AddFontFromFileTTF('Arial.ttf', 14.0, nil, glyph_ranges)
    font[17] = imgui.GetIO().Fonts:AddFontFromFileTTF(path, 17.0, nil, glyph_ranges)
    font[25] = imgui.GetIO().Fonts:AddFontFromFileTTF(path, 25.0, nil, glyph_ranges)
    font[30] = imgui.GetIO().Fonts:AddFontFromFileTTF(path, 30.0, nil, glyph_ranges)
    font[40] = imgui.GetIO().Fonts:AddFontFromFileTTF(path, 40.0, nil, glyph_ranges)
    guiCustomStyle()
end)

function guiCustomStyle()
    imgui.SwitchContext()
    local style = imgui.GetStyle()
    local colors = style.Colors
    local clr = imgui.Col
    local ImVec4 = imgui.ImVec4
    style.WindowRounding = 7
    style.WindowTitleAlign = imgui.ImVec2(0.5, 0.5)
    style.ButtonTextAlign = imgui.ImVec2(0.5, 0.5)
    style.FrameRounding = 0
    style.ItemSpacing = imgui.ImVec2(5.0, 4.0)
    style.ScrollbarSize = 3.0
    style.ScrollbarRounding = 0
    style.GrabMinSize = 17
    style.GrabRounding = 16
        colors[clr.PlotHistogram]          = ImVec4(0.00, 0.71, 0.88, 1.00)
        colors[clr.Text]                     = ImVec4(0.00, 0.00, 0.00, 1.00)
        colors[clr.TextDisabled]            = ImVec4(0.24, 0.24, 0.24, 1.00)
        colors[clr.WindowBg]              = ImVec4(0.94, 0.94, 0.94, 1.00)
        colors[clr.ChildBg]                  = ImVec4(0.86, 0.86, 0.86, 1.00)
        colors[clr.PopupBg]               = ImVec4(0.82, 0.82, 0.82, 1.00)
        colors[clr.Border]                = ImVec4(0.00, 0.00, 0.00, 0.00)
        colors[clr.BorderShadow]          = ImVec4(0.00, 0.00, 0.00, 0.00)
        colors[clr.FrameBg]               = ImVec4(0.78, 0.78, 0.78, 1.00)
        colors[clr.FrameBgHovered]        = ImVec4(0.78, 0.78, 0.78, 1.00)
        colors[clr.FrameBgActive]         = ImVec4(0.78, 0.78, 0.78, 1.00)
        colors[clr.TitleBg]               = ImVec4(0.85, 0.85, 0.85, 1.00)
        colors[clr.TitleBgCollapsed]      = ImVec4(0.85, 0.85, 0.85, 1.00)
        colors[clr.TitleBgActive]         = ImVec4(0.85, 0.85, 0.85, 1.00)
        colors[clr.MenuBarBg]             = ImVec4(0.00, 0.37, 0.78, 1.00)
        colors[clr.ScrollbarBg]           = ImVec4(0.00, 0.71, 0.88, 1.00)--
        colors[clr.ScrollbarGrab]         = ImVec4(0.00, 0.35, 1.00, 0.78)
        colors[clr.ScrollbarGrabHovered]  = ImVec4(0.00, 0.33, 1.00, 0.84)
        colors[clr.ScrollbarGrabActive]   = ImVec4(0.00, 0.31, 1.00, 0.88)
        colors[clr.CheckMark]             = ImVec4(0.00, 0.49, 1.00, 0.59)
        colors[clr.SliderGrab]            = ImVec4(0.00, 0.71, 0.88, 1.00)--
        colors[clr.SliderGrabActive]      = ImVec4(0.00, 0.71, 0.88, 1.00)--
        colors[clr.Button]                = ImVec4(0.97, 0.97, 0.97, 1.00)
        colors[clr.ButtonHovered]         = ImVec4(0.90, 0.90, 0.90, 1.00)
        colors[clr.ButtonActive]          = ImVec4(0.85, 0.85, 0.85, 1.00)
        colors[clr.Header]                = ImVec4(0.00, 0.49, 1.00, 0.78)
        colors[clr.HeaderHovered]         = ImVec4(0.00, 0.49, 1.00, 0.71)
        colors[clr.HeaderActive]          = ImVec4(0.00, 0.49, 1.00, 0.78)
        colors[clr.Separator]             = ImVec4(0.00, 0.49, 1.00, 0.78)
        colors[clr.SeparatorHovered]      = ImVec4(0.00, 0.49, 1.00, 0.71)
        colors[clr.SeparatorActive]       = ImVec4(0.00, 0.49, 1.00, 0.78)
        colors[clr.ResizeGrip]            = ImVec4(0.00, 0.39, 1.00, 0.59)
        colors[clr.ResizeGripHovered]     = ImVec4(0.00, 0.27, 1.00, 0.59)
        colors[clr.ResizeGripActive]      = ImVec4(0.00, 0.25, 1.00, 0.63)
        colors[clr.PlotLines]             = ImVec4(0.00, 0.39, 1.00, 0.75)
        colors[clr.PlotLinesHovered]      = ImVec4(0.00, 0.39, 1.00, 0.75)
        colors[clr.PlotHistogram]         = ImVec4(0.00, 0.71, 0.88, 1.00)
        colors[clr.PlotHistogramHovered]  = ImVec4(0.00, 0.71, 0.88, 1.00)
        colors[clr.TextSelectedBg]        = ImVec4(0.00, 0.47, 1.00, 0.59)
        colors[clr.ModalWindowDimBg]        = ImVec4(0.20, 0.20, 0.20, 0.35)
end
Анимация открытия и закрытия есть но потом остаётся курсор и не открывается повторно