палитра цветов mimgui

Решение
D
Есть такое, мне когда-то помог @Andrinall


Код:
local inicfg = require 'inicfg'
local imgui = require 'mimgui'
local new = imgui.new

ini = inicfg.load({
    ["hp"] = {
        ["color"] = 0xFFFF0000
    }
}, "tested_ini")

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

    local tmp = imgui.ColorConvertU32ToFloat4(ini.hp.color)
    color = new.float[4](tmp.x, tmp.y, tmp.z, tmp.w)
end)

imgui.OnFrame(function() return true end, function()
    imgui.Begin("test")

    if imgui.ColorEdit4("HP Color", color) then
        ini.hp.color = imgui.ColorConvertFloat4ToU32(
            imgui.ImVec4( color[0], color[1], color[2], color[3] )
        )
    end
    
    imgui.End()
end)

function main()...

Lance_Sterling

Известный
Автор темы
958
336
не удивительно
[ML] (error) Zeus Tools: D:\GTA 140K BY DAPO SHOW\moonloader\ZeusTools.lua:298: attempt to call field 'ImFloat4' (a nil value)
stack traceback:
D:\GTA 140K BY DAPO SHOW\moonloader\ZeusTools.lua:298: in main chunk
[ML] (error) Zeus Tools: Script died due to an error. (0E99169C)

1679997308948.png
 

7 СМЕРТНЫХ ГРЕХОВ

Известный
524
163
не удивительно
[ML] (error) Zeus Tools: D:\GTA 140K BY DAPO SHOW\moonloader\ZeusTools.lua:298: attempt to call field 'ImFloat4' (a nil value)
stack traceback:
D:\GTA 140K BY DAPO SHOW\moonloader\ZeusTools.lua:298: in main chunk
[ML] (error) Zeus Tools: Script died due to an error. (0E99169C)

Посмотреть вложение 195281
Потому что это он дал тебе имгуи, тебе надо на мимгуи
 

whyega52

Гений, миллионер, плейбой, долбаеб
Модератор
2,780
2,604
D

deleted-user-139653

Гость
Есть такое, мне когда-то помог @Andrinall


Код:
local inicfg = require 'inicfg'
local imgui = require 'mimgui'
local new = imgui.new

ini = inicfg.load({
    ["hp"] = {
        ["color"] = 0xFFFF0000
    }
}, "tested_ini")

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

    local tmp = imgui.ColorConvertU32ToFloat4(ini.hp.color)
    color = new.float[4](tmp.x, tmp.y, tmp.z, tmp.w)
end)

imgui.OnFrame(function() return true end, function()
    imgui.Begin("test")

    if imgui.ColorEdit4("HP Color", color) then
        ini.hp.color = imgui.ColorConvertFloat4ToU32(
            imgui.ImVec4( color[0], color[1], color[2], color[3] )
        )
    end
    
    imgui.End()
end)

function main()
    local font = renderCreateFont("Tahoma", 14, 0x5)
    while true do wait(0)
        renderFontDrawText(font, "Проверочный текст", 10, 450, argb2abgr(ini.hp.color))
    end
end

function onScriptTerminate(sc, quitGame)
    if sc == thisScript() then
        inicfg.save({
            ["hp"] = {
                ["color"] = ini.hp.color
            }
        }, "tested_ini")
    end
end

function argb2abgr(argb)
    local abgr = bit.bor(
        bit.lshift(bit.band(bit.rshift(argb, 24), 0xFF), 24),
        bit.lshift(bit.band(argb, 0xFF), 16),
        bit.lshift(bit.band(bit.rshift(argb, 8), 0xFF), 8),
        bit.band(bit.rshift(argb, 16), 0xFF)
    )
    return abgr
end
 

Lance_Sterling

Известный
Автор темы
958
336
Есть такое, мне когда-то помог @Andrinall


Код:
local inicfg = require 'inicfg'
local imgui = require 'mimgui'
local new = imgui.new

ini = inicfg.load({
    ["hp"] = {
        ["color"] = 0xFFFF0000
    }
}, "tested_ini")

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

    local tmp = imgui.ColorConvertU32ToFloat4(ini.hp.color)
    color = new.float[4](tmp.x, tmp.y, tmp.z, tmp.w)
end)

imgui.OnFrame(function() return true end, function()
    imgui.Begin("test")

    if imgui.ColorEdit4("HP Color", color) then
        ini.hp.color = imgui.ColorConvertFloat4ToU32(
            imgui.ImVec4( color[0], color[1], color[2], color[3] )
        )
    end
   
    imgui.End()
end)

function main()
    local font = renderCreateFont("Tahoma", 14, 0x5)
    while true do wait(0)
        renderFontDrawText(font, "Проверочный текст", 10, 450, argb2abgr(ini.hp.color))
    end
end

function onScriptTerminate(sc, quitGame)
    if sc == thisScript() then
        inicfg.save({
            ["hp"] = {
                ["color"] = ini.hp.color
            }
        }, "tested_ini")
    end
end

function argb2abgr(argb)
    local abgr = bit.bor(
        bit.lshift(bit.band(bit.rshift(argb, 24), 0xFF), 24),
        bit.lshift(bit.band(argb, 0xFF), 16),
        bit.lshift(bit.band(bit.rshift(argb, 8), 0xFF), 8),
        bit.band(bit.rshift(argb, 16), 0xFF)
    )
    return abgr
end
а почему в дравлисте не работает? я вроде все конвертировал как надо

в конфиге пиздец
1680001192789.png
 
Последнее редактирование:
  • Грустно
Реакции: deleted-user-139653

7 СМЕРТНЫХ ГРЕХОВ

Известный
524
163
а почему в дравлисте не работает? я вроде все конвертировал как надо

в конфиге пиздец
Посмотреть вложение 195291
Я когда то делал так
LUA:
----------------------------------------------------- [ LOCALS ] -----------------------------------------------------
local inicfg = require 'inicfg'
local cfg = inicfg.load({
    config = {
        prem_pal1 = 255,
        prem_pal2 = 255,
        prem_pal3 = 255,
    }
}, "linecolor")

function join_argb(a, b, g, r)
    local argb = b  -- b
    argb = bit.bor(argb, bit.lshift(g, 8))  -- g
    argb = bit.bor(argb, bit.lshift(r, 16)) -- r
    argb = bit.bor(argb, bit.lshift(a, 24)) -- a
    return argb
end

local prem_pal = imgui.new.float[3](cfg.config.prem_pal3/255, cfg.config.prem_pal2/255, cfg.config.prem_pal1/255)

----------------------------------------------------- [ MIMGUI ] -----------------------------------------------------
if imgui.ColorEdit3("##!", prem_pal) then -- если не надо эти цифры то добавь - imgui.ColorEditFlags.NoInputs
    local clr = join_argb(0, prem_pal[2] * 255, prem_pal[1] * 255, prem_pal[0] * 255)
    local r,g,b = prem_pal[2] * 255, prem_pal[1] * 255, prem_pal[0] * 255

    cfg.config.color_prem = ("0xFF%06X"):format(clr)
    cfg.config.prem_pal1 = r
    cfg.config.prem_pal2 = g
    cfg.config.prem_pal3 = b
    inicfg.save(cfg, 'linecolor.ini')
end
1680002615355.png
 
Последнее редактирование:
  • Bug
Реакции: Lance_Sterling