Как достать HEX цвет из imgui.ColorEdit4?

lovandog

Активный
Автор темы
224
98
Версия MoonLoader
.026-beta
Вопрос в шапке. Не понимаю как достать, если выводить переменную
1648060456794.png
, которая вписана вконце, на выходе получается пустота. че делать
 
Решение
а можно это как-то в формат html цветов т.е. {FFFFFF}
в прошлом ответе забыл сказать что в join_argb надо каждое число умножать на 255
1648062091708.png

Lua:
local imgui = require('imgui')
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8
        
local color = imgui.ImFloat4(1, 0, 0, 1)

local window = imgui.ImBool(false)
        
function main()
    while not isSampAvailable() do wait(200) end
    imgui.Process = false
    window.v = true  --show window on start
    while true do
        wait(0)
        imgui.Process = window.v
    end
end
        
function imgui.OnDrawFrame()
    if window.v then
        local resX, resY = getScreenResolution()
        local sizeX, sizeY = 300, 300 -- WINDOW SIZE...

chapo

чопа сребдс // @moujeek
Модератор
8,870
11,580
Lua:
function join_argb(a, r, g, b)
    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 color = imgui.ImFloat4(1, 0, 0, 1)
imgui.ColorEdit4('Color Picker', color)
if imgui.Button('Get HEX', imgui.ImVec2(100, 20)) then
    sampAddChatMessage('TEXT WITH COLOR', join_argb(color.v[4], color.v[1], color.v[2], color.v[3]))
end
 
  • Влюблен
Реакции: lovandog

lovandog

Активный
Автор темы
224
98
Lua:
function join_argb(a, r, g, b)
    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 color = imgui.ImFloat4(1, 0, 0, 1)
imgui.ColorEdit4('Color Picker', color)
if imgui.Button('Get HEX', imgui.ImVec2(100, 20)) then
    sampAddChatMessage('TEXT WITH COLOR', join_argb(color.v[4], color.v[1], color.v[2], color.v[3]))
end
а можно это как-то в формат html цветов т.е. {FFFFFF}
 

chapo

чопа сребдс // @moujeek
Модератор
8,870
11,580
а можно это как-то в формат html цветов т.е. {FFFFFF}
в прошлом ответе забыл сказать что в join_argb надо каждое число умножать на 255
1648062091708.png

Lua:
local imgui = require('imgui')
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8
        
local color = imgui.ImFloat4(1, 0, 0, 1)

local window = imgui.ImBool(false)
        
function main()
    while not isSampAvailable() do wait(200) end
    imgui.Process = false
    window.v = true  --show window on start
    while true do
        wait(0)
        imgui.Process = window.v
    end
end
        
function imgui.OnDrawFrame()
    if window.v then
        local resX, resY = getScreenResolution()
        local sizeX, sizeY = 300, 300 -- WINDOW SIZE
        imgui.SetNextWindowPos(imgui.ImVec2(resX / 2 - sizeX / 2, resY / 2 - sizeY / 2), imgui.Cond.FirstUseEver)
        imgui.SetNextWindowSize(imgui.ImVec2(sizeX, sizeY), imgui.Cond.FirstUseEver)
        imgui.Begin('Window Title', window)
        --window code

        imgui.ColorEdit4('Color Picker', color)
        if imgui.Button('Get HEX', imgui.ImVec2(100, 20)) then
            sampAddChatMessage('TEXT WITH COLOR', join_argb(color.v[4] * 255, color.v[1] * 255, color.v[2] * 255, color.v[3] * 255))
        end
        imgui.Text('HEX: '..intToHex(join_argb(color.v[4] * 255, color.v[1] * 255, color.v[2] * 255, color.v[3] * 255)))

        imgui.End()
    end
end

function join_argb(a, r, g, b)
    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

function intToHex(int)
    return '{'..string.sub(bit.tohex(int), 3, 8)..'}'
end
 
  • Нравится
Реакции: Amfeeque и Zoom.DC