помощь в меню imgui

rab kukold

Новичок
Автор темы
4
0
Версия MoonLoader
Другое
Привет, не так давно начал изучать имгуи и столкнулся с тем что, мало менюшек имгуи вообще есть, хотелось бы спросить как сделаю такую менюшки, что бы при активации она выводилась на экран эти кнопки можно было использовать, как биндер, при этом можно менять положение меню..
1636905683849.png
 
Решение
Привет, не так давно начал изучать имгуи и столкнулся с тем что, мало менюшек имгуи вообще есть, хотелось бы спросить как сделаю такую менюшки, что бы при активации она выводилась на экран эти кнопки можно было использовать, как биндер, при этом можно менять положение меню..
Lua:
require "lib.moonloader"
require 'lib.vkeys'
local on = require "lib.samp.events"
local imgui = require 'imgui'
local encoding = require 'encoding' -- загружаем библиотеку
encoding.default = 'CP1251'
u8 = encoding.UTF8
sms = sampAddChatMessage
local sw, sh = getScreenResolution()
local main_window_state = imgui.ImBool(false)

function imgui.OnDrawFrame()
    if main_window_state.v then -- чтение и запись значения такой переменной осуществляется через...

qdIbp

Автор темы
Проверенный
1,450
1,190
Привет, не так давно начал изучать имгуи и столкнулся с тем что, мало менюшек имгуи вообще есть, хотелось бы спросить как сделаю такую менюшки, что бы при активации она выводилась на экран эти кнопки можно было использовать, как биндер, при этом можно менять положение меню..
Lua:
require "lib.moonloader"
require 'lib.vkeys'
local on = require "lib.samp.events"
local imgui = require 'imgui'
local encoding = require 'encoding' -- загружаем библиотеку
encoding.default = 'CP1251'
u8 = encoding.UTF8
sms = sampAddChatMessage
local sw, sh = getScreenResolution()
local main_window_state = imgui.ImBool(false)

function imgui.OnDrawFrame()
    if main_window_state.v then -- чтение и запись значения такой переменной осуществляется через поле v (или Value)
        imgui.SetNextWindowSize(imgui.ImVec2(150, 200), imgui.Cond.FirstUseEver) -- меняем размер
        imgui.SetNextWindowPos(imgui.ImVec2(120, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5)) -- меняем положение
        imgui.Begin(u8'Наказание', main_window_state)
   
        if imgui.Button(u8'Кик') then
            --code
        end
        if imgui.Button(u8'ТСР') then
            --code
        end
        if imgui.Button(u8'Варн') then
            --code
        end
        if imgui.Button(u8'Мут') then
            --code
        end
        if imgui.Button(u8'Бан') then
            --code
        end
        imgui.End()
    end
end

function main()
    while true do wait(0)
        if isKeyJustPressed(VK_M) then -- активация по нажатию клавиши M
            main_window_state.v = not main_window_state.v -- переключаем статус активности окна, не забываем про .v
        end
        imgui.Process = main_window_state.v -- теперь значение imgui.Process всегда будет задаваться в зависимости от активности основного окна
    end
end
Где --code дописываешь свой код
 
  • Нравится
Реакции: rab kukold

qdIbp

Автор темы
Проверенный
1,450
1,190
А как изменить стиль этого окна? Вставляю код, оно не меняется
Lua:
function imgui.OnDrawFrame()
    if main_window_state.v then -- чтение и запись значения такой переменной осуществляется через поле v (или Value)
        imgui.SetNextWindowSize(imgui.ImVec2(150, 200), imgui.Cond.FirstUseEver) -- меняем размер
        imgui.SetNextWindowPos(imgui.ImVec2(120, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5)) -- меняем положение
        imgui.Begin(u8'Наказание', main_window_state)
 
        if imgui.Button(u8'Кик') then
            --code
        end
        if imgui.Button(u8'ТСР') then
            --code
        end
        if imgui.Button(u8'Варн') then
            --code
        end
        if imgui.Button(u8'Мут') then
            --code
        end
        if imgui.Button(u8'Бан') then
            --code
        end
       
       
       
       
        imgui.SwitchContext()--тема начало
        local style = imgui.GetStyle()
        local colors = style.Colors
        local clr = imgui.Col
        local ImVec4 = imgui.ImVec4

        style.WindowRounding = 2.0
        style.WindowTitleAlign = imgui.ImVec2(0.5, 0.84)
        style.ChildWindowRounding = 2.0
        style.FrameRounding = 2.0
        style.ItemSpacing = imgui.ImVec2(5.0, 4.0)
        style.ScrollbarSize = 13.0
        style.ScrollbarRounding = 0
        style.GrabMinSize = 8.0
        style.GrabRounding = 1.0

        colors[clr.FrameBg]                = ImVec4(0.42, 0.48, 0.16, 0.54)
        colors[clr.FrameBgHovered]         = ImVec4(0.85, 0.98, 0.26, 0.40)
        colors[clr.FrameBgActive]          = ImVec4(0.85, 0.98, 0.26, 0.67)
        colors[clr.TitleBg]                = ImVec4(0.04, 0.04, 0.04, 1.00)
        colors[clr.TitleBgActive]          = ImVec4(0.42, 0.48, 0.16, 1.00)
        colors[clr.TitleBgCollapsed]       = ImVec4(0.00, 0.00, 0.00, 0.51)
        colors[clr.CheckMark]              = ImVec4(0.85, 0.98, 0.26, 1.00)
        colors[clr.SliderGrab]             = ImVec4(0.77, 0.88, 0.24, 1.00)
        colors[clr.SliderGrabActive]       = ImVec4(0.85, 0.98, 0.26, 1.00)
        colors[clr.Button]                 = ImVec4(0.85, 0.98, 0.26, 0.40)
        colors[clr.ButtonHovered]          = ImVec4(0.85, 0.98, 0.26, 1.00)
        colors[clr.ButtonActive]           = ImVec4(0.82, 0.98, 0.06, 1.00)
        colors[clr.Header]                 = ImVec4(0.85, 0.98, 0.26, 0.31)
        colors[clr.HeaderHovered]          = ImVec4(0.85, 0.98, 0.26, 0.80)
        colors[clr.HeaderActive]           = ImVec4(0.85, 0.98, 0.26, 1.00)
        colors[clr.Separator]              = colors[clr.Border]
        colors[clr.SeparatorHovered]       = ImVec4(0.63, 0.75, 0.10, 0.78)
        colors[clr.SeparatorActive]        = ImVec4(0.63, 0.75, 0.10, 1.00)
        colors[clr.ResizeGrip]             = ImVec4(0.85, 0.98, 0.26, 0.25)
        colors[clr.ResizeGripHovered]      = ImVec4(0.85, 0.98, 0.26, 0.67)
        colors[clr.ResizeGripActive]       = ImVec4(0.85, 0.98, 0.26, 0.95)
        colors[clr.PlotLines]              = ImVec4(0.61, 0.61, 0.61, 1.00)
        colors[clr.PlotLinesHovered]       = ImVec4(1.00, 0.81, 0.35, 1.00)
        colors[clr.TextSelectedBg]         = ImVec4(0.85, 0.98, 0.26, 0.35)
        colors[clr.Text]                   = ImVec4(1.00, 1.00, 1.00, 1.00)
        colors[clr.TextDisabled]           = ImVec4(0.50, 0.50, 0.50, 1.00)
        colors[clr.WindowBg]               = ImVec4(0.06, 0.06, 0.06, 0.94)
        colors[clr.ChildWindowBg]          = ImVec4(1.00, 1.00, 1.00, 0.00)
        colors[clr.PopupBg]                = ImVec4(0.08, 0.08, 0.08, 0.94)
        colors[clr.ComboBg]                = colors[clr.PopupBg]
        colors[clr.Border]                 = ImVec4(0.43, 0.43, 0.50, 0.50)
        colors[clr.BorderShadow]           = ImVec4(0.00, 0.00, 0.00, 0.00)
        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(0.31, 0.31, 0.31, 1.00)
        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.CloseButton]            = ImVec4(0.41, 0.41, 0.41, 0.50)
        colors[clr.CloseButtonHovered]     = ImVec4(0.98, 0.39, 0.36, 1.00)
        colors[clr.CloseButtonActive]      = ImVec4(0.98, 0.39, 0.36, 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.ModalWindowDarkening]   = ImVec4(0.80, 0.80, 0.80, 0.35)--тема конец
       
       
        imgui.End()
    end
end
 
  • Нравится
Реакции: rab kukold