Гайд Как сделать Watermark для вашего чита

Эксперт
Статус
Оффлайн
Регистрация
30 Дек 2019
Сообщения
1,967
Реакции[?]
958
Поинты[?]
19K
Что нужно?
1.Brain(хоть чуть-чуть, чтобы нажать ctrl+C ctrl+V)
2.Сурс(ахуетб)
Шаг 1
Найти в сурсе visuals.cpp, и PaintTraverse.cpp
Шаг 2
открыть Visuals.cpp и Visuals.hpp
Шаг 3
перейти в Vusuals.hpp
и найдите это:1591457601912.png
после впишите туда


void watermark();
void GradientLine2(int x, int y, int w, int h, Color c1, Color color2)
RECT GetTextSize(vgui::HFont font, const char* text);
Шаг 4
открыть Visuals.cpp и примерно после отрисовки боксов вставьте
C++:
const std::string currentDateTime( ) {
    time_t     now = time( 0 );
    struct tm  tstruct;
    char       buf[ 80 ];
    tstruct = *localtime( &now );
    strftime( buf, sizeof( buf ), "%X", &tstruct );

    return buf;
}
void Visuals::GradientLine2(int x, int y, int w, int h, Color c1, Color color2)
{
    filled_rect(x, y, w, h, c1);
    BYTE first = color2.r();
    BYTE second = color2.g();
    BYTE third = color2.b();
    for (int i = 0; i < w; i++)
    {
        float fi = i, fw = w;
        float a = fi / fw;
        DWORD ia = a * 255;
        filled_rect(x + i, y, 1, h, Color(first, second, third, ia));
    }
}
Шаг 5
открыть Visuals.cpp и после GradientLine
C++:
RECT Visuals::GetTextSize( vgui::HFont font, const char* text )
{
    size_t origsize = strlen(text) + 1;
    const size_t newsize = 500;
    size_t convertedChars = 0;
    wchar_t wcstring[newsize];
    mbstowcs_s(&convertedChars, wcstring, origsize, text, _TRUNCATE);

    RECT rect;

    rect.left = rect.right = rect.bottom = rect.top = 0;

    wchar_t wbuf[ 1024 ];
    if ( MultiByteToWideChar( CP_UTF8, 0, text, -1, wbuf, 256 ) > 0 ) {
        int x, y;
        g_VGuiSurface->GetTextSize( font, wbuf, x, y );
        rect.left = x; rect.bottom = y;
        rect.right = x; rect.top = y;
    }

    return rect;
}
Шаг 6
открыть Visuals.cpp и после GetTextSize
C++:
void Visuals::watermark()
{

    if (g_Options.Visuals.pwatermark) {
        char path[MAX_PATH], * name = NULL;
        GetEnvironmentVariable((LPCTSTR)"USERPROFILE", (LPSTR)path, (DWORD)MAX_PATH);
        name = &path[std::strlen(path) - 1];
        for (; *name != '\\'; --name);
        ++name;

        //raimbow flex code
        auto r = (floor(sin(g_pGlobalVars->realtime* 2) * 127 + 128)) / 255.f;
        auto g = (floor(sin(g_pGlobalVars->realtime * 2 + 2) * 127 + 128)) / 255.f;
        auto b = (floor(sin(g_pGlobalVars->realtime * 2 + 4) * 127 + 128)) / 255.f;
        //Color line = Color::FromHSB(raimbow, 1.f, 1.f);


        static int fps, old_tick_count;
        if ((g_pGlobalVars->tickcount - old_tick_count) > 50) {

            fps = static_cast<int>(1.f / g_pGlobalVars->frametime);

            old_tick_count = g_pGlobalVars->tickcount;

        }
        int screen_x, screen_y;
        g_EngineClient->GetScreenSize(screen_x, screen_y);
        static float bar_width = 226.8;
        std::stringstream ss;
        auto local_player = reinterpret_cast<C_BaseEntity*>(g_EntityList->GetClientEntity(g_EngineClient->GetLocalPlayer()));
        auto net_channel = g_EngineClient->GetNetChannelInfo();
        std::string outgoing = local_player ? std::to_string((int)(net_channel->GetLatency(FLOW_OUTGOING) * 1000)) : "0";
        ss << u8"Ваш софт| " <</* тут чит гетнит имя вашего пк*/ name << " | " << "PING: " << outgoing.c_str() << "ms" << " | FPS: " << fps << " | " << currentDateTime().c_str() << "";
        int x, y, w, h;
        RECT textsize = Visuals::GetTextSize(Render::Get().esp_font, ss.str().c_str());
        //static int textsize = 280;
        filled_rect(screen_x - (textsize.right + 10), 6, textsize.right + 20, 18, Color(15, 15, 15, 140));
        GradientLine2(screen_x - (textsize.right + 10), 6, textsize.right + 20, 2, Color(r,g,b), Color(b, r, g));


        Render::Get().DrawString(Render::Get().esp_font,screen_x - (textsize.right + 5), 15, Color(255, 255, 255), false, ss.str().c_str());

    //    GradientLine2(0,0, 2000,3, Color(r,g,b),Color(b,r,g));
    }
 
}
Шаг 7
после этого идём в PaintTraverse.cpp
и ищем где у нас отрисовывается бокс, и после вставляем

Visuals::Get().watermark();
 
Забаненный
Статус
Оффлайн
Регистрация
2 Июн 2020
Сообщения
26
Реакции[?]
1
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
ne work

Пожалуйста, авторизуйтесь для просмотра ссылки.
работает но очень странно
 
Забаненный
Статус
Оффлайн
Регистрация
2 Июн 2020
Сообщения
26
Реакции[?]
1
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
main public enemy
Эксперт
Статус
Оффлайн
Регистрация
30 Ноя 2019
Сообщения
1,531
Реакции[?]
647
Поинты[?]
0
По мне хуйня полнейшая...
Могу в имгуи за минуты 3-5 сделать в разы лучше,чище(по коду) и намного красивее
Самый лучший драв фреймворк если чо
Причом его даже двигать можно будет !!!!!!!!!!!!!!!!!
 
Забаненный
Статус
Оффлайн
Регистрация
2 Июн 2020
Сообщения
26
Реакции[?]
1
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
По мне хуйня полнейшая...
Могу в имгуи за минуты 3-5 сделать в разы лучше,чище(по коду) и намного красивее
Самый лучший драв фреймворк если чо
Причом его даже двигать можно будет !!!!!!!!!!!!!!!!!
ну ты сделай
 
main public enemy
Эксперт
Статус
Оффлайн
Регистрация
30 Ноя 2019
Сообщения
1,531
Реакции[?]
647
Поинты[?]
0
Пользователь
Статус
Оффлайн
Регистрация
19 Мар 2019
Сообщения
575
Реакции[?]
115
Поинты[?]
0
Скрытое содержимое
Кода в 200 раз меньше
Производительность (не у всех ) раза в два лучше
Код чище и стабильнее в разы
Да и выглядит не плохо хоть и дефолтно
.....
мож дать хайд?
 
CSGO SIMPLE ♥
Забаненный
Статус
Оффлайн
Регистрация
28 Авг 2020
Сообщения
60
Реакции[?]
15
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
get good, get zeus, for ever
Пользователь
Статус
Оффлайн
Регистрация
1 Июн 2018
Сообщения
558
Реакции[?]
90
Поинты[?]
37K
Что нужно?
1.Brain(хоть чуть-чуть, чтобы нажать ctrl+C ctrl+V)
2.Сурс(ахуетб)
Шаг 1
Найти в сурсе visuals.cpp, и PaintTraverse.cpp
Шаг 2
открыть Visuals.cpp и Visuals.hpp
Шаг 3
перейти в Vusuals.hpp
и найдите это:Посмотреть вложение 79327
после впишите туда


void watermark();
void GradientLine2(int x, int y, int w, int h, Color c1, Color color2)
RECT GetTextSize(vgui::HFont font, const char* text);
Шаг 4
открыть Visuals.cpp и примерно после отрисовки боксов вставьте
C++:
const std::string currentDateTime( ) {
    time_t     now = time( 0 );
    struct tm  tstruct;
    char       buf[ 80 ];
    tstruct = *localtime( &now );
    strftime( buf, sizeof( buf ), "%X", &tstruct );

    return buf;
}
void Visuals::GradientLine2(int x, int y, int w, int h, Color c1, Color color2)
{
    filled_rect(x, y, w, h, c1);
    BYTE first = color2.r();
    BYTE second = color2.g();
    BYTE third = color2.b();
    for (int i = 0; i < w; i++)
    {
        float fi = i, fw = w;
        float a = fi / fw;
        DWORD ia = a * 255;
        filled_rect(x + i, y, 1, h, Color(first, second, third, ia));
    }
}
Шаг 5
открыть Visuals.cpp и после GradientLine
C++:
RECT Visuals::GetTextSize( vgui::HFont font, const char* text )
{
    size_t origsize = strlen(text) + 1;
    const size_t newsize = 500;
    size_t convertedChars = 0;
    wchar_t wcstring[newsize];
    mbstowcs_s(&convertedChars, wcstring, origsize, text, _TRUNCATE);

    RECT rect;

    rect.left = rect.right = rect.bottom = rect.top = 0;

    wchar_t wbuf[ 1024 ];
    if ( MultiByteToWideChar( CP_UTF8, 0, text, -1, wbuf, 256 ) > 0 ) {
        int x, y;
        g_VGuiSurface->GetTextSize( font, wbuf, x, y );
        rect.left = x; rect.bottom = y;
        rect.right = x; rect.top = y;
    }

    return rect;
}
Шаг 6
открыть Visuals.cpp и после GetTextSize
C++:
void Visuals::watermark()
{

    if (g_Options.Visuals.pwatermark) {
        char path[MAX_PATH], * name = NULL;
        GetEnvironmentVariable((LPCTSTR)"USERPROFILE", (LPSTR)path, (DWORD)MAX_PATH);
        name = &path[std::strlen(path) - 1];
        for (; *name != '\\'; --name);
        ++name;

        //raimbow flex code
        auto r = (floor(sin(g_pGlobalVars->realtime* 2) * 127 + 128)) / 255.f;
        auto g = (floor(sin(g_pGlobalVars->realtime * 2 + 2) * 127 + 128)) / 255.f;
        auto b = (floor(sin(g_pGlobalVars->realtime * 2 + 4) * 127 + 128)) / 255.f;
        //Color line = Color::FromHSB(raimbow, 1.f, 1.f);


        static int fps, old_tick_count;
        if ((g_pGlobalVars->tickcount - old_tick_count) > 50) {

            fps = static_cast<int>(1.f / g_pGlobalVars->frametime);

            old_tick_count = g_pGlobalVars->tickcount;

        }
        int screen_x, screen_y;
        g_EngineClient->GetScreenSize(screen_x, screen_y);
        static float bar_width = 226.8;
        std::stringstream ss;
        auto local_player = reinterpret_cast<C_BaseEntity*>(g_EntityList->GetClientEntity(g_EngineClient->GetLocalPlayer()));
        auto net_channel = g_EngineClient->GetNetChannelInfo();
        std::string outgoing = local_player ? std::to_string((int)(net_channel->GetLatency(FLOW_OUTGOING) * 1000)) : "0";
        ss << u8"Ваш софт| " <</* тут чит гетнит имя вашего пк*/ name << " | " << "PING: " << outgoing.c_str() << "ms" << " | FPS: " << fps << " | " << currentDateTime().c_str() << "";
        int x, y, w, h;
        RECT textsize = Visuals::GetTextSize(Render::Get().esp_font, ss.str().c_str());
        //static int textsize = 280;
        filled_rect(screen_x - (textsize.right + 10), 6, textsize.right + 20, 18, Color(15, 15, 15, 140));
        GradientLine2(screen_x - (textsize.right + 10), 6, textsize.right + 20, 2, Color(r,g,b), Color(b, r, g));


        Render::Get().DrawString(Render::Get().esp_font,screen_x - (textsize.right + 5), 15, Color(255, 255, 255), false, ss.str().c_str());

    //    GradientLine2(0,0, 2000,3, Color(r,g,b),Color(b,r,g));
    }

}
Шаг 7
после этого идём в PaintTraverse.cpp
и ищем где у нас отрисовывается бокс, и после вставляем

Visuals::Get().watermark();
блять эти гайды из розряды А ВОТ НАМ ПОНАДОБЯТСЯ РУКИ И МОЗГИ ты же сам нихуя не умеешь зачем выёбываться то ?
 
Мир не в книгах и картах, он там — за окном!
Забаненный
Статус
Оффлайн
Регистрация
1 Сен 2020
Сообщения
129
Реакции[?]
45
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
10 iq иметь надо да?какие 10 iq у тебя меньше 1 это точно по твоему коду трешкоду/говнокоду.Этот ватермарк сломается при первом же килле и это уже видно по строчкам в твоём ватермарке.
Вывод:Хватит постить говно в виде гайдов где полно трешкода:CoolStoryBob:
 
Сверху Снизу