Вопрос Ну как теперь и тут решить ?

Пользователь
Статус
Оффлайн
Регистрация
12 Июн 2020
Сообщения
466
Реакции[?]
102
Поинты[?]
3K
Код:
local ffi = require 'ffi'
local find_material = materialsystem.find_material

local engine_client = ffi.cast(ffi.typeof('void***'), client.create_interface('engine.dll', 'VEngineClient014'))
local console_is_visible = ffi.cast(ffi.typeof('bool(__thiscall*)(void*)'), engine_client[0][11])

ui.new_label('misc', 'settings', 'VGUI Color')

local recolor_console = ui.new_color_picker('misc', 'settings', 'VGUI Color picker', 81, 81, 81, 210)
local materials = { 'vgui_white', 'vgui/hud/800corner1', 'vgui/hud/800corner2', 'vgui/hud/800corner3', 'vgui/hud/800corner4' }

client.set_event_callback('paint', function()
    local r, g, b, a = ui.get(recolor_console)

    if not console_is_visible(engine_client) then
        r, g, b, a = 255, 255, 255, 255
    end

    for _, mat in pairs(materials) do
        find_material(mat):alpha_modulate(a)
        find_material(mat):color_modulate(r, g, b)
    end
end)
хочу консоль сделать в чите черную как ските. Можете на с++ переписать?)
Сурсы легендвар :roflanEbalo:
 
Разработчик
Статус
Оффлайн
Регистрация
1 Сен 2018
Сообщения
1,596
Реакции[?]
879
Поинты[?]
113K
Код:
local ffi = require 'ffi'
local find_material = materialsystem.find_material

local engine_client = ffi.cast(ffi.typeof('void***'), client.create_interface('engine.dll', 'VEngineClient014'))
local console_is_visible = ffi.cast(ffi.typeof('bool(__thiscall*)(void*)'), engine_client[0][11])

ui.new_label('misc', 'settings', 'VGUI Color')

local recolor_console = ui.new_color_picker('misc', 'settings', 'VGUI Color picker', 81, 81, 81, 210)
local materials = { 'vgui_white', 'vgui/hud/800corner1', 'vgui/hud/800corner2', 'vgui/hud/800corner3', 'vgui/hud/800corner4' }

client.set_event_callback('paint', function()
    local r, g, b, a = ui.get(recolor_console)

    if not console_is_visible(engine_client) then
        r, g, b, a = 255, 255, 255, 255
    end

    for _, mat in pairs(materials) do
        find_material(mat):alpha_modulate(a)
        find_material(mat):color_modulate(r, g, b)
    end
end)
хочу консоль сделать в чите черную как ските. Можете на с++ переписать?)
Сурсы легендвар :roflanEbalo:
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Участник
Статус
Оффлайн
Регистрация
16 Июн 2017
Сообщения
825
Реакции[?]
179
Поинты[?]
2K
C++:
static bool bShouldRecolorConsole;
        static IMaterial* cMaterial[5];
        if (!cMaterial[0] || !cMaterial[1] || !cMaterial[2] || !cMaterial[3] || !cMaterial[4])
        {
            for (MaterialHandle_t i = m_materialsystem()->FirstMaterial(); i != m_materialsystem()->InvalidMaterial(); i = m_materialsystem()->NextMaterial(i))
            {
                auto pMaterial = m_materialsystem()->GetMaterial(i);
                if (!pMaterial) continue;

                if (strstr(pMaterial->GetName(), crypt_str("vgui_white")))
                    cMaterial[0] = pMaterial;
                else if (strstr(pMaterial->GetName(), crypt_str("800corner1")))
                    cMaterial[1] = pMaterial;
                else if (strstr(pMaterial->GetName(), crypt_str("800corner2")))
                    cMaterial[2] = pMaterial;
                else if (strstr(pMaterial->GetName(), crypt_str("800corner3")))
                    cMaterial[3] = pMaterial;
                else if (strstr(pMaterial->GetName(), crypt_str("800corner4")))
                    cMaterial[4] = pMaterial;
            }
        } // Couldn't use find material because for some reason "vgui_white" doesn't exist...
        else
        {
            auto panelName = m_panel()->GetName(panel);

            if (panelName != crypt_str("MatSystemTopPanel")) // You should check for some other panels name that shouldn't be recolored. Not bother fixing it for all.
            {
                if (m_engine()->Con_IsVisible())
                {
                    bShouldRecolorConsole = true;
                    if (bShouldRecolorConsole)
                    {
                    

                        for (int num = 0; num < 5; num++)
                        {
                            cMaterial[num]->ColorModulate(15 / 255.f, 20 / 255.f, 26 / 255.f);
                            cMaterial[num]->AlphaModulate(0.75f);
                        }
                    }
                }
            }
            else if (bShouldRecolorConsole)
            {
                for (int num = 0; num < 5; num++)
                {
                    cMaterial[num]->ColorModulate(1.f, 1.f, 1.f);
                    cMaterial[num]->AlphaModulate(1.0f);
                }
                bShouldRecolorConsole = false;
            }
        }
 
..................................................
Участник
Статус
Оффлайн
Регистрация
13 Авг 2020
Сообщения
990
Реакции[?]
249
Поинты[?]
25K
C++:
static bool bShouldRecolorConsole;
        static IMaterial* cMaterial[5];
        if (!cMaterial[0] || !cMaterial[1] || !cMaterial[2] || !cMaterial[3] || !cMaterial[4])
        {
            for (MaterialHandle_t i = m_materialsystem()->FirstMaterial(); i != m_materialsystem()->InvalidMaterial(); i = m_materialsystem()->NextMaterial(i))
            {
                auto pMaterial = m_materialsystem()->GetMaterial(i);
                if (!pMaterial) continue;

                if (strstr(pMaterial->GetName(), crypt_str("vgui_white")))
                    cMaterial[0] = pMaterial;
                else if (strstr(pMaterial->GetName(), crypt_str("800corner1")))
                    cMaterial[1] = pMaterial;
                else if (strstr(pMaterial->GetName(), crypt_str("800corner2")))
                    cMaterial[2] = pMaterial;
                else if (strstr(pMaterial->GetName(), crypt_str("800corner3")))
                    cMaterial[3] = pMaterial;
                else if (strstr(pMaterial->GetName(), crypt_str("800corner4")))
                    cMaterial[4] = pMaterial;
            }
        } // Couldn't use find material because for some reason "vgui_white" doesn't exist...
        else
        {
            auto panelName = m_panel()->GetName(panel);

            if (panelName != crypt_str("MatSystemTopPanel")) // You should check for some other panels name that shouldn't be recolored. Not bother fixing it for all.
            {
                if (m_engine()->Con_IsVisible())
                {
                    bShouldRecolorConsole = true;
                    if (bShouldRecolorConsole)
                    {
                   

                        for (int num = 0; num < 5; num++)
                        {
                            cMaterial[num]->ColorModulate(15 / 255.f, 20 / 255.f, 26 / 255.f);
                            cMaterial[num]->AlphaModulate(0.75f);
                        }
                    }
                }
            }
            else if (bShouldRecolorConsole)
            {
                for (int num = 0; num < 5; num++)
                {
                    cMaterial[num]->ColorModulate(1.f, 1.f, 1.f);
                    cMaterial[num]->AlphaModulate(1.0f);
                }
                bShouldRecolorConsole = false;
            }
        }
Я конечно всё понимаю, но почему вотермарка черной стала?1620424433739.png
 
Сверху Снизу