Гайд Zeus Range with animation

[HvH ✡ Player] aka B1gPaster
Участник
Статус
Оффлайн
Регистрация
28 Дек 2017
Сообщения
943
Реакции[?]
265
Поинты[?]
0
Насколько знаю никто кругленький зевс рэнж не делал так что я 1 такой далбаеб но может кто то захочет.
Конечно можно чутка получше реализовать но всем похуй

C++:
void misc::ZeusRange()
{


    if (!g_cfg.misc.ZeusRange)
        return;

    if (!g_cfg.player.enable)
        return;

    if (!g_ctx.local()->is_alive())
        return;

    if (!m_input()->m_fCameraInThirdPerson)
        return;

    auto weapon = g_ctx.local()->m_hActiveWeapon().Get();

    if (!weapon)
        return;

    if (weapon->m_iItemDefinitionIndex() != WEAPON_TASER)
        return;

    auto weapon_info = weapon->get_csweapon_info();

    if (!weapon_info)
        return;

    render::get().Draw3DRainbowCircle(g_ctx.globals.eye_pos, weapon_info->flRange); // g_ctx.local()->get_shoot_position() или g_ctx.local()->m_vecOrigin()
}


void render::Draw3DRainbowCircle(const Vector& origin, float radius) // Если кому то надо
{
    static auto hue_offset = 0.0f;
    static auto prevScreenPos = ZERO; //-V656
    static auto step = M_PI * 2.0f / 72.0f;

    auto screenPos = ZERO;

    for (auto rotation = 0.0f; rotation <= M_PI * 2.0f; rotation += step) //-V1034
    {
        Vector pos(radius * cos(rotation) + origin.x, radius * sin(rotation) + origin.y, origin.z);

        Ray_t ray;
        trace_t trace;
        CTraceFilterWorldOnly filter;

        ray.Init(origin, pos);
        m_trace()->TraceRay(ray, MASK_SHOT_BRUSHONLY, &filter, &trace);

        if (math::world_to_screen(trace.endpos, screenPos))
        {
            if (!prevScreenPos.IsZero())
            {
                auto hue = RAD2DEG(rotation) + hue_offset;

                float r, g, b;
                ColorConvertHSVtoRGB(hue / 360.0f, 1.0f, 1.0f, r, g, b);
                render::get().circle_filled(prevScreenPos.x, prevScreenPos.y, 10, g_cfg.misc.taser_size, Color(r, g, b));
            }

            prevScreenPos = screenPos;
        }
    }

    hue_offset += m_globals()->m_frametime * 200.0f;
}
 
Пользователь
Статус
Оффлайн
Регистрация
10 Ноя 2019
Сообщения
839
Реакции[?]
135
Поинты[?]
0
Насколько знаю никто кругленький зевс рэнж не делал так что я 1 такой далбаеб но может кто то захочет.
Конечно можно чутка получше реализовать но всем похуй

C++:
void misc::ZeusRange()
{


    if (!g_cfg.misc.ZeusRange)
        return;

    if (!g_cfg.player.enable)
        return;

    if (!g_ctx.local()->is_alive())
        return;

    if (!m_input()->m_fCameraInThirdPerson)
        return;

    auto weapon = g_ctx.local()->m_hActiveWeapon().Get();

    if (!weapon)
        return;

    if (weapon->m_iItemDefinitionIndex() != WEAPON_TASER)
        return;

    auto weapon_info = weapon->get_csweapon_info();

    if (!weapon_info)
        return;

    render::get().Draw3DRainbowCircle(g_ctx.globals.eye_pos, weapon_info->flRange); // g_ctx.local()->get_shoot_position() или g_ctx.local()->m_vecOrigin()
}


void render::Draw3DRainbowCircle(const Vector& origin, float radius) // Если кому то надо
{
    static auto hue_offset = 0.0f;
    static auto prevScreenPos = ZERO; //-V656
    static auto step = M_PI * 2.0f / 72.0f;

    auto screenPos = ZERO;

    for (auto rotation = 0.0f; rotation <= M_PI * 2.0f; rotation += step) //-V1034
    {
        Vector pos(radius * cos(rotation) + origin.x, radius * sin(rotation) + origin.y, origin.z);

        Ray_t ray;
        trace_t trace;
        CTraceFilterWorldOnly filter;

        ray.Init(origin, pos);
        m_trace()->TraceRay(ray, MASK_SHOT_BRUSHONLY, &filter, &trace);

        if (math::world_to_screen(trace.endpos, screenPos))
        {
            if (!prevScreenPos.IsZero())
            {
                auto hue = RAD2DEG(rotation) + hue_offset;

                float r, g, b;
                ColorConvertHSVtoRGB(hue / 360.0f, 1.0f, 1.0f, r, g, b);
                render::get().circle_filled(prevScreenPos.x, prevScreenPos.y, 10, g_cfg.misc.taser_size, Color(r, g, b));
            }

            prevScreenPos = screenPos;
        }
    }

    hue_offset += m_globals()->m_frametime * 200.0f;
}
Разве такая дальность?
 
Забаненный
Статус
Оффлайн
Регистрация
18 Мар 2019
Сообщения
236
Реакции[?]
64
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Забаненный
Статус
Оффлайн
Регистрация
28 Авг 2021
Сообщения
6
Реакции[?]
1
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Насколько знаю никто кругленький зевс рэнж не делал так что я 1 такой далбаеб но может кто то захочет.
Конечно можно чутка получше реализовать но всем похуй

C++:
void misc::ZeusRange()
{


    if (!g_cfg.misc.ZeusRange)
        return;

    if (!g_cfg.player.enable)
        return;

    if (!g_ctx.local()->is_alive())
        return;

    if (!m_input()->m_fCameraInThirdPerson)
        return;

    auto weapon = g_ctx.local()->m_hActiveWeapon().Get();

    if (!weapon)
        return;

    if (weapon->m_iItemDefinitionIndex() != WEAPON_TASER)
        return;

    auto weapon_info = weapon->get_csweapon_info();

    if (!weapon_info)
        return;

    render::get().Draw3DRainbowCircle(g_ctx.globals.eye_pos, weapon_info->flRange); // g_ctx.local()->get_shoot_position() или g_ctx.local()->m_vecOrigin()
}


void render::Draw3DRainbowCircle(const Vector& origin, float radius) // Если кому то надо
{
    static auto hue_offset = 0.0f;
    static auto prevScreenPos = ZERO; //-V656
    static auto step = M_PI * 2.0f / 72.0f;

    auto screenPos = ZERO;

    for (auto rotation = 0.0f; rotation <= M_PI * 2.0f; rotation += step) //-V1034
    {
        Vector pos(radius * cos(rotation) + origin.x, radius * sin(rotation) + origin.y, origin.z);

        Ray_t ray;
        trace_t trace;
        CTraceFilterWorldOnly filter;

        ray.Init(origin, pos);
        m_trace()->TraceRay(ray, MASK_SHOT_BRUSHONLY, &filter, &trace);

        if (math::world_to_screen(trace.endpos, screenPos))
        {
            if (!prevScreenPos.IsZero())
            {
                auto hue = RAD2DEG(rotation) + hue_offset;

                float r, g, b;
                ColorConvertHSVtoRGB(hue / 360.0f, 1.0f, 1.0f, r, g, b);
                render::get().circle_filled(prevScreenPos.x, prevScreenPos.y, 10, g_cfg.misc.taser_size, Color(r, g, b));
            }

            prevScreenPos = screenPos;
        }
    }

    hue_offset += m_globals()->m_frametime * 200.0f;
}
и че эт за мусор?
 
Сверху Снизу