Вопрос Не меняется цвет элемента в меню вантапа.

Пользователь
Статус
Оффлайн
Регистрация
8 Янв 2020
Сообщения
187
Реакции[?]
138
Поинты[?]
20K
Решил перекрасить немного меню вантапа, но не меняется цвет места где рендерятся все элементы. Меняю цвет через хук DrawGradientRect и DrawLine.

Хук рендера градиента и линии потому что вантап использует их для обычного DrawRectFilled.
Я думал что есть отдельная функция DrawRectFilled только без закругления, но я не нашел такой.

Кто-нибудь знает как это пофиксить?

C++:
int __fastcall hkDrawGradientRect(void* ecx, void* edx, int a1, float a2, float a3, DWORD a4, DWORD a5, DWORD a6, DWORD a7)
{
    if (a4 == a5 && a5 == a6 && a6 == a7)
    {
        if (a4 == get_hex_color(colors.at(0).r, colors.at(0).g, colors.at(0).b, colors.at(0).a))
            a4 = a5 = a6 = a7 = get_hex_color(colors.at(0).r * 0.35f, colors.at(0).g * 0.35f, colors.at(0).b * 0.35f, colors.at(0).a);

        if (a4 == get_hex_color(colors.at(1).r, colors.at(1).g, colors.at(1).b, colors.at(1).a))
            a4 = a5 = a6 = a7 = get_hex_color(colors.at(1).r * 0.35f, colors.at(1).g * 0.35f, colors.at(1).b * 0.35f, colors.at(1).a);

        if (a4 == get_hex_color(colors.at(2).r, colors.at(2).g, colors.at(2).b, colors.at(2).a))
            a4 = a5 = a6 = a7 = get_hex_color(colors.at(2).r * 0.35f, colors.at(2).g * 0.35f, colors.at(2).b * 0.35f, colors.at(2).a);

        if (a4 == get_hex_color(colors.at(3).r, colors.at(3).g, colors.at(3).b, colors.at(3).a))
            a4 = a5 = a6 = a7 = get_hex_color(colors.at(3).r * 0.35f, colors.at(3).g * 0.35f, colors.at(3).b * 0.35f, colors.at(3).a);

        if (a4 == get_hex_color(colors.at(4).r, colors.at(4).g, colors.at(4).b, colors.at(4).a))
            a4 = a5 = a6 = a7 = get_hex_color(colors.at(4).r * 0.35f, colors.at(4).g * 0.35f, colors.at(4).b * 0.35f, colors.at(4).a);

        if (a4 == get_hex_color(colors.at(5).r, colors.at(5).g, colors.at(5).b, colors.at(5).a))
            a4 = a5 = a6 = a7 = get_hex_color(colors.at(5).r * 0.35f, colors.at(5).g * 0.35f, colors.at(5).b * 0.35f, colors.at(5).a);

        if (a4 == get_hex_color(colors.at(6).r, colors.at(6).g, colors.at(6).b, colors.at(6).a))
            a4 = a5 = a6 = a7 = get_hex_color(colors.at(6).r * 0.35f, colors.at(6).g * 0.35f, colors.at(6).b * 0.35f, colors.at(6).a);
    }

    return DrawGradientRect(ecx, a1, a2, a3, a4, a5, a6, a7);
}

int __fastcall hkDrawLine(void* ecx, void* edx, int a1, float a2, float a3, DWORD a4, int* a5, float a6, float a7, float a8, float a9)
{
    if (a4 == get_hex_color(colors.at(0).r, colors.at(0).g, colors.at(0).b, colors.at(0).a))
        a4 = get_hex_color(colors.at(0).r * 0.35f, colors.at(0).g * 0.35f, colors.at(0).b * 0.35f, colors.at(0).a);

    if (a4 == get_hex_color(colors.at(1).r, colors.at(1).g, colors.at(1).b, colors.at(1).a))
        a4 = get_hex_color(colors.at(1).r * 0.35f, colors.at(1).g * 0.35f, colors.at(1).b * 0.35f, colors.at(1).a);

    if (a4 == get_hex_color(colors.at(2).r, colors.at(2).g, colors.at(2).b, colors.at(2).a))
        a4 = get_hex_color(colors.at(2).r * 0.35f, colors.at(2).g * 0.35f, colors.at(2).b * 0.35f, colors.at(2).a);

    if (a4 == get_hex_color(colors.at(3).r, colors.at(3).g, colors.at(3).b, colors.at(3).a))
        a4 = get_hex_color(colors.at(3).r * 0.35f, colors.at(3).g * 0.35f, colors.at(3).b * 0.35f, colors.at(3).a);

    if (a4 == get_hex_color(colors.at(4).r, colors.at(4).g, colors.at(4).b, colors.at(4).a))
        a4 = get_hex_color(colors.at(4).r * 0.35f, colors.at(4).g * 0.35f, colors.at(4).b * 0.35f, colors.at(4).a);

    if (a4 == get_hex_color(colors.at(5).r, colors.at(5).g, colors.at(5).b, colors.at(5).a))
        a4 = get_hex_color(colors.at(5).r * 0.35f, colors.at(5).g * 0.35f, colors.at(5).b * 0.35f, colors.at(5).a);

    if (a4 == get_hex_color(colors.at(6).r, colors.at(6).g, colors.at(6).b, colors.at(6).a))
        a4 = get_hex_color(colors.at(6).r * 0.35f, colors.at(6).g * 0.35f, colors.at(6).b * 0.35f, colors.at(6).a);

    return DrawLine(ecx, a1, a2, a3, a4, a5, a6, a7, a8, a9);
}
1692461769574.png
 
Забаненный
Статус
Оффлайн
Регистрация
15 Авг 2023
Сообщения
48
Реакции[?]
20
Поинты[?]
19K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Решил перекрасить немного меню вантапа, но не меняется цвет места где рендерятся все элементы. Меняю цвет через хук DrawGradientRect и DrawLine.

Хук рендера градиента и линии потому что вантап использует их для обычного DrawRectFilled.
Я думал что есть отдельная функция DrawRectFilled только без закругления, но я не нашел такой.

Кто-нибудь знает как это пофиксить?

C++:
int __fastcall hkDrawGradientRect(void* ecx, void* edx, int a1, float a2, float a3, DWORD a4, DWORD a5, DWORD a6, DWORD a7)
{
    if (a4 == a5 && a5 == a6 && a6 == a7)
    {
        if (a4 == get_hex_color(colors.at(0).r, colors.at(0).g, colors.at(0).b, colors.at(0).a))
            a4 = a5 = a6 = a7 = get_hex_color(colors.at(0).r * 0.35f, colors.at(0).g * 0.35f, colors.at(0).b * 0.35f, colors.at(0).a);

        if (a4 == get_hex_color(colors.at(1).r, colors.at(1).g, colors.at(1).b, colors.at(1).a))
            a4 = a5 = a6 = a7 = get_hex_color(colors.at(1).r * 0.35f, colors.at(1).g * 0.35f, colors.at(1).b * 0.35f, colors.at(1).a);

        if (a4 == get_hex_color(colors.at(2).r, colors.at(2).g, colors.at(2).b, colors.at(2).a))
            a4 = a5 = a6 = a7 = get_hex_color(colors.at(2).r * 0.35f, colors.at(2).g * 0.35f, colors.at(2).b * 0.35f, colors.at(2).a);

        if (a4 == get_hex_color(colors.at(3).r, colors.at(3).g, colors.at(3).b, colors.at(3).a))
            a4 = a5 = a6 = a7 = get_hex_color(colors.at(3).r * 0.35f, colors.at(3).g * 0.35f, colors.at(3).b * 0.35f, colors.at(3).a);

        if (a4 == get_hex_color(colors.at(4).r, colors.at(4).g, colors.at(4).b, colors.at(4).a))
            a4 = a5 = a6 = a7 = get_hex_color(colors.at(4).r * 0.35f, colors.at(4).g * 0.35f, colors.at(4).b * 0.35f, colors.at(4).a);

        if (a4 == get_hex_color(colors.at(5).r, colors.at(5).g, colors.at(5).b, colors.at(5).a))
            a4 = a5 = a6 = a7 = get_hex_color(colors.at(5).r * 0.35f, colors.at(5).g * 0.35f, colors.at(5).b * 0.35f, colors.at(5).a);

        if (a4 == get_hex_color(colors.at(6).r, colors.at(6).g, colors.at(6).b, colors.at(6).a))
            a4 = a5 = a6 = a7 = get_hex_color(colors.at(6).r * 0.35f, colors.at(6).g * 0.35f, colors.at(6).b * 0.35f, colors.at(6).a);
    }

    return DrawGradientRect(ecx, a1, a2, a3, a4, a5, a6, a7);
}

int __fastcall hkDrawLine(void* ecx, void* edx, int a1, float a2, float a3, DWORD a4, int* a5, float a6, float a7, float a8, float a9)
{
    if (a4 == get_hex_color(colors.at(0).r, colors.at(0).g, colors.at(0).b, colors.at(0).a))
        a4 = get_hex_color(colors.at(0).r * 0.35f, colors.at(0).g * 0.35f, colors.at(0).b * 0.35f, colors.at(0).a);

    if (a4 == get_hex_color(colors.at(1).r, colors.at(1).g, colors.at(1).b, colors.at(1).a))
        a4 = get_hex_color(colors.at(1).r * 0.35f, colors.at(1).g * 0.35f, colors.at(1).b * 0.35f, colors.at(1).a);

    if (a4 == get_hex_color(colors.at(2).r, colors.at(2).g, colors.at(2).b, colors.at(2).a))
        a4 = get_hex_color(colors.at(2).r * 0.35f, colors.at(2).g * 0.35f, colors.at(2).b * 0.35f, colors.at(2).a);

    if (a4 == get_hex_color(colors.at(3).r, colors.at(3).g, colors.at(3).b, colors.at(3).a))
        a4 = get_hex_color(colors.at(3).r * 0.35f, colors.at(3).g * 0.35f, colors.at(3).b * 0.35f, colors.at(3).a);

    if (a4 == get_hex_color(colors.at(4).r, colors.at(4).g, colors.at(4).b, colors.at(4).a))
        a4 = get_hex_color(colors.at(4).r * 0.35f, colors.at(4).g * 0.35f, colors.at(4).b * 0.35f, colors.at(4).a);

    if (a4 == get_hex_color(colors.at(5).r, colors.at(5).g, colors.at(5).b, colors.at(5).a))
        a4 = get_hex_color(colors.at(5).r * 0.35f, colors.at(5).g * 0.35f, colors.at(5).b * 0.35f, colors.at(5).a);

    if (a4 == get_hex_color(colors.at(6).r, colors.at(6).g, colors.at(6).b, colors.at(6).a))
        a4 = get_hex_color(colors.at(6).r * 0.35f, colors.at(6).g * 0.35f, colors.at(6).b * 0.35f, colors.at(6).a);

    return DrawLine(ecx, a1, a2, a3, a4, a5, a6, a7, a8, a9);
}
Посмотреть вложение 256473
пробуй менять цвета через аллок базу
p.s около всех цветов в hex редаткоре стоит "3D "
 
Последнее редактирование:
Сверху Снизу