как получить цвет?

Решение
Lua:
local sampev = require 'samp.events'

function sampev.onCreate3DText(id, color, position, distance, testLOS, attachedPlayerId, attachedVehicleId, text)
    text = text:gsub('%{(.{6})%}', '[%1]')
    print('Text of 3D Text:\n'..text)
end
выведет текст 3d текста, все цвета будут заключены в квадратные кавычки, ищи нужный тебе цвет

qdIbp

Автор темы
Проверенный
1,386
1,141
Lua:
local on = require "lib.samp.events"

function on.onCreate3DText(id, color, position, distance, testLOS, attachedPlayerId, attachedVehicleId, text)
    if text:find('*текст который ищешь*')then
        print(color)
    end
end
Выводит цвет в консоль когда появляется текст в зоне стрима
Лучше делать скрин и потом использовать программу ColorMania
Т.к чаще всего делают так
PHP:
Create3DTextLabel('Привет сейчас цвет белый{FF00FF}Сейчас фиолетовый {FFFFFF}сейчас снова белый', -1, 0, 0, 3, 10, 0, 0);

Если скрин с аризоны то цвет -1(белый)
 
Последнее редактирование:
  • Нравится
Реакции: hanzohasani

hanzohasani

Известный
Автор темы
124
38
Lua:
local on = require "lib.samp.events"

function on.onCreate3DText(id, color, position, distance, testLOS, attachedPlayerId, attachedVehicleId, text)
    if text:find('*текст который ищешь*')then
        print(color)
    end
end
Выводит цвет в консоль когда появляется текст в зоне стрима
Лучше делать скрин и потом использовать программу ColorMania
Т.к чаще всего делают так
PHP:
Create3DTextLabel('Привет сейчас цвет белый{FF00FF}Сейчас фиолетовый {FFFFFF}сейчас снова белый', -1, 0, 0, 3, 10, 0, 0);


Если скрин с аризоны то цвет -1(белый)
мне нужен цвет в виде хекс цвета по типу {FFFFFF} а пишет в консоль -1
 

Rice.

https://t.me/riceoff
Модератор
1,691
1,436
  • Нравится
Реакции: hanzohasani

#Northn

Police Helper «Reborn» — уже ШЕСТЬ лет!
Всефорумный модератор
2,635
2,485
мне нужен цвет в виде хекс цвета по типу {FFFFFF} а пишет в консоль -1
Lua:
do
    local bit = require 'bit'

    local 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 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

    local function ARGBtoRGB(color)
        return bit.band(color, 0xFFFFFF)
    end

    function ColorAccentsAdapter(color)
        local a, r, g, b = explode_argb(color)

        local ret = {a = a, r = r, g = g, b = b}

        function ret:apply_alpha(alpha)
            self.a = alpha
            return self
        end

        function ret:as_u32()
            return join_argb(self.a, self.b, self.g, self.r)
        end

        function ret:as_vec4()
            return imgui.ImVec4(self.r / 255, self.g / 255, self.b / 255, self.a / 255)
        end

        function ret:as_argb()
            return join_argb(self.a, self.r, self.g, self.b)
        end

        function ret:as_rgba()
            return join_argb(self.r, self.g, self.b, self.a)
        end

        function ret:as_chat()
            return string.format("%06X", ARGBtoRGB(join_argb(self.a, self.r, self.g, self.b)))
        end
    
        return ret
    end
end

Lua:
ColorAccentsAdapter(color):as_chat()

тебе нужен as_chat()
 
  • Нравится
  • Вау
Реакции: hanzohasani и qdIbp

hanzohasani

Известный
Автор темы
124
38
Lua:
do
    local bit = require 'bit'

    local 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 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

    local function ARGBtoRGB(color)
        return bit.band(color, 0xFFFFFF)
    end

    function ColorAccentsAdapter(color)
        local a, r, g, b = explode_argb(color)

        local ret = {a = a, r = r, g = g, b = b}

        function ret:apply_alpha(alpha)
            self.a = alpha
            return self
        end

        function ret:as_u32()
            return join_argb(self.a, self.b, self.g, self.r)
        end

        function ret:as_vec4()
            return imgui.ImVec4(self.r / 255, self.g / 255, self.b / 255, self.a / 255)
        end

        function ret:as_argb()
            return join_argb(self.a, self.r, self.g, self.b)
        end

        function ret:as_rgba()
            return join_argb(self.r, self.g, self.b, self.a)
        end

        function ret:as_chat()
            return string.format("%06X", ARGBtoRGB(join_argb(self.a, self.r, self.g, self.b)))
        end
   
        return ret
    end
end

Lua:
ColorAccentsAdapter(color):as_chat()

тебе нужен as_chat()
шо это за карикатура? ничего непонял
 

Dmitriy Makarov

25.05.2021
Проверенный
2,478
1,113
шо это за карикатура? ничего непонял
 

qdIbp

Автор темы
Проверенный
1,386
1,141
все ещё актуально
Lua:
require "lib.moonloader"
require 'lib.vkeys'
local on = require "lib.samp.events"

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end
    while true do wait(0)
    end
end


function on.onCreate3DText(id, color, position, distance, testLOS, attachedPlayerId, attachedVehicleId, text)
    if text:find('ALT')then print('+++')
        do
            local bit = require 'bit'

            local 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 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

            local function ARGBtoRGB(color)
                return bit.band(color, 0xFFFFFF)
            end
            
            function ColorAccentsAdapter(color)
                local a, r, g, b = explode_argb(color)

                local ret = {a = a, r = r, g = g, b = b}

                function ret:apply_alpha(alpha)
                    self.a = alpha
                    return self
                end

                function ret:as_u32()
                    return join_argb(self.a, self.b, self.g, self.r)
                end

                function ret:as_vec4()
                    return imgui.ImVec4(self.r / 255, self.g / 255, self.b / 255, self.a / 255)
                end

                function ret:as_argb()
                    return join_argb(self.a, self.r, self.g, self.b)
                end

                function ret:as_rgba()
                    return join_argb(self.r, self.g, self.b, self.a)
                end

                function ret:as_chat()
                    return string.format("%06X", ARGBtoRGB(join_argb(self.a, self.r, self.g, self.b)))
                end
                return ret
            end
            print(ColorAccentsAdapter(color):as_chat())
        end
    end
end

Только вместо ALT свой текст
 

hanzohasani

Известный
Автор темы
124
38
Lua:
require "lib.moonloader"
require 'lib.vkeys'
local on = require "lib.samp.events"

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end
    while true do wait(0)
    end
end


function on.onCreate3DText(id, color, position, distance, testLOS, attachedPlayerId, attachedVehicleId, text)
    if text:find('ALT')then print('+++')
        do
            local bit = require 'bit'

            local 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 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

            local function ARGBtoRGB(color)
                return bit.band(color, 0xFFFFFF)
            end
           
            function ColorAccentsAdapter(color)
                local a, r, g, b = explode_argb(color)

                local ret = {a = a, r = r, g = g, b = b}

                function ret:apply_alpha(alpha)
                    self.a = alpha
                    return self
                end

                function ret:as_u32()
                    return join_argb(self.a, self.b, self.g, self.r)
                end

                function ret:as_vec4()
                    return imgui.ImVec4(self.r / 255, self.g / 255, self.b / 255, self.a / 255)
                end

                function ret:as_argb()
                    return join_argb(self.a, self.r, self.g, self.b)
                end

                function ret:as_rgba()
                    return join_argb(self.r, self.g, self.b, self.a)
                end

                function ret:as_chat()
                    return string.format("%06X", ARGBtoRGB(join_argb(self.a, self.r, self.g, self.b)))
                end
                return ret
            end
            print(ColorAccentsAdapter(color):as_chat())
        end
    end
end

Только вместо ALT свой текст
я конечно не дальтоник, но уж точно это не белый цвет
 

RedHolms

Известный
Проверенный
617
360
Lua:
local sampev = require 'samp.events'

function sampev.onCreate3DText(id, color, position, distance, testLOS, attachedPlayerId, attachedVehicleId, text)
    text = text:gsub('%{(.{6})%}', '[%1]')
    print('Text of 3D Text:\n'..text)
end
выведет текст 3d текста, все цвета будут заключены в квадратные кавычки, ищи нужный тебе цвет
 
  • Нравится
Реакции: hanzohasani