цвет

Lance_Sterling

Известный
Автор темы
803
284
Версия MoonLoader
.026-beta
схуяли он вообще не тот цвет показывает, пытался конвертировать куда угодно, argb, rgba и тд, чота все равно не правду показывает
1691188864652.png

Код:
local color = sampGetPlayerColor(id)
    
    local ts = imgui.CalcTextSize(tostring(id))
    dl:AddText(imgui.ImVec2(p.x + 20, p.y + (size.y / 2) - (ts.y / 2)), color, tostring(id))
 
  • Нравится
Реакции: Дядя Энрик.

Lance_Sterling

Известный
Автор темы
803
284
1691189230421.png

Lua:
local color = sampGetPlayerColor(id)
color = to_u32(color);
  
function to_u32(u32)
    local a = bit.band(bit.rshift(u32, 24), 0xFF) / 0xFF
    local r = bit.band(bit.rshift(u32, 16), 0xFF) / 0xFF
    local g = bit.band(bit.rshift(u32, 8), 0xFF) / 0xFF
    local b = bit.band(u32, 0xFF) / 0xFF
    return imgui.ColorConvertFloat4ToU32(imgui.ImVec4(a, b, g, r))
end

нашел решение(p.s нихуя тут не абгр):
Lua:
function to_u32(u32)
    local a = bit.band(bit.rshift(u32, 24), 0xFF) / 0xFF
    local r = bit.band(bit.rshift(u32, 16), 0xFF) / 0xFF
    local g = bit.band(bit.rshift(u32, 8), 0xFF) / 0xFF
    local b = bit.band(u32, 0xFF) / 0xFF
    return imgui.ColorConvertFloat4ToU32(imgui.ImVec4(r, g, b, 1))
end
 
Последнее редактирование:

chapo

🫡 В армии с 17.10.2023. В ЛС НЕ ОТВЕЧАЮ
Друг
8,776
11,234
Посмотреть вложение 210638
Lua:
local color = sampGetPlayerColor(id)
color = to_u32(color);
 
function to_u32(u32)
    local a = bit.band(bit.rshift(u32, 24), 0xFF) / 0xFF
    local r = bit.band(bit.rshift(u32, 16), 0xFF) / 0xFF
    local g = bit.band(bit.rshift(u32, 8), 0xFF) / 0xFF
    local b = bit.band(u32, 0xFF) / 0xFF
    return imgui.ColorConvertFloat4ToU32(imgui.ImVec4(a, b, g, r))
end
Lua:
function explode_argb(argb)
    local a = bit.band(bit.rshift(argb, 24), 0xFF);
    local r = bit.band(bit.rshift(argb, 16), 0xFF);
    local g = bit.band(bit.rshift(argb, 8), 0xFF);
    local b = bit.band(argb, 0xFF);
    return a, r, g, b;
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

---@param playerId number
---@param keepAlpha boolean?
---@return number Color Color U32
function getPlayerColorU32(playerId, keepAlpha)
    local a, r, g, b = explode_argb(sampGetPlayerColor(playerId));
    return join_argb(keepAlpha and a or 255, b, g, r);
end
1691191329737.png
 
Последнее редактирование: