Гайд Better tracer/Barrel (як в зевсе/ав)

Начинающий
Статус
Оффлайн
Регистрация
24 Авг 2016
Сообщения
41
Реакции[?]
82
Поинты[?]
0
Попалил какую-то медию с зевсом и увидел эту фичу.

А пару дней назад пока ебался с имгуи в стакхаке увидел видос с ав с этой фичей, доделал имгей и приступил к это хероборе вот что получилось
UPD: я забыл функцию выложить, но теперь всё должно быть ок
Выдерал из стакхака, так что спастить можно с минимальными допилами, но и под любой другой софт сделать не проблема.
Эта хрень слегка багованая ну да ничего.
Код:
Vector AngleBetweenXY(const Vector& a, const Vector& b)
{
    Vector angles;

    float distanceX = (b.x - a.x);
    float distanceY = (b.y - a.y);
    float distanceZ = (b.z - a.z);

    float hipotenuseXY = sqrtf(distanceX*distanceX + distanceY * distanceY);
    //float hipotenuseXZ = sqrt(distanceX*distanceX + distanceZ*distanceZ);
    //float hipotenuseYZ = sqrt(distanceY*distanceY + distanceZ*distanceZ);

    angles.x = atanf(distanceZ / hipotenuseXY) * (180.0f / M_PI_F) * -1.0f;
    angles.y = atanf(distanceY / distanceX) * (180.0f / M_PI_F);

    if (distanceX < 0)
        angles.y += 180.0f;

    angles.z = 0;

    return angles;
}
Код:
void CVisuals::DrawBarrel(SDK::CBaseEntity* entity)
{
    int sx, sy;
    INTERFACES::Engine->GetScreenSize(sx, sy);

    //RENDER::DrawCircle(sx / 2, sy / 2, sx / 4, 64, CColor(0, 0, 0));
    //RENDER::DrawLine(0, sy / 2, sx, sy / 2, BLACK);

    Vector screen;

    Vector to = entity->GetAbsOrigin();

    if (RENDER::WorldToScreen(to, screen))
    {
        float x = (float)sx / 2.0f;
        float y = (float)sy / 2.0f;

        Vector ang = AngleBetweenXY(Vector(x, y, 0), Vector(screen.x, screen.y, 0));

        Vector end;
        MATH::AngleVectors(ang, &end);
        MATH::NormalizeAngle(end);

        float max = (float)sy / 2.0f;

        float distX = sx / 4;
        float distY = sx / 4;

        if (x +end.x * distX >= sx/2 && y + end.y * distY >= sy/2) //I четверть
            RENDER::DrawWF(x + end.x * distX, y + end.y * distY, FONTS::visuals_side_font, SETTINGS::settings.barrel_col, L"\u25ba");
      
          
        if (x +end.x * distX <= sx / 2 && y + end.y * distY >= sy / 2) //II четверть
            RENDER::DrawWF(x + end.x * distX, y + end.y * distY, FONTS::visuals_side_font, SETTINGS::settings.barrel_col, L"\u25c4");
          
        if (x +end.x * distX <= sx / 2 && y + end.y * distY <= sy / 2) //III quater
            RENDER::DrawWF(x + end.x * distX, y + end.y * distY, FONTS::visuals_side_font, SETTINGS::settings.barrel_col, L"\u25ba");
          
        if (x +end.x * distX >= sx / 2 && y + end.y * distY <= sy / 2) //IV четверть
            RENDER::DrawWF(x + end.x * distX, y + end.y * distY, FONTS::visuals_side_font, SETTINGS::settings.barrel_col, L"\u25c4");

        //RENDER::DrawFilledCircle(x + end.x * distX, y + end.y * distY, 10, 16, SETTINGS::settings.barrel_col);

    }
}
Код:
if (SETTINGS::settings.barrel_bool) DrawBarrel(entity);
вот и всё осталось только сделать переменные для настроек
 
Последнее редактирование:
https://vk.com/bpcheat
Забаненный
Статус
Оффлайн
Регистрация
23 Фев 2017
Сообщения
746
Реакции[?]
171
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
DrawWF что это или дай под хайд
 
Начинающий
Статус
Оффлайн
Регистрация
24 Авг 2016
Сообщения
41
Реакции[?]
82
Поинты[?]
0
DrawWF что это или дай под хайд
Функция в рендере стакхака, которая отрисовывает wchar_t, собственно этот кусок кода отвечает за правильный рендер стрелок, можно заменить на что-то типа FilledCircle или любой индикатор какой придумаешь, изначально я хотел рендерить триугольник и поворачивать на определенный угол, но не знал как это реализовать
 
https://vk.com/bpcheat
Забаненный
Статус
Оффлайн
Регистрация
23 Фев 2017
Сообщения
746
Реакции[?]
171
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Функция в рендере стакхака, которая отрисовывает wchar_t, собственно этот кусок кода отвечает за правильный рендер стрелок, можно заменить на что-то типа FilledCircle или любой индикатор какой придумаешь, изначально я хотел рендерить триугольник и поворачивать на определенный угол, но не знал как это реализовать
понял крч нарисую свою фигуру
 
Сверху Снизу