• Я зарабатываю 100 000 RUB / месяц на этом сайте!

    А знаешь как? Я всего-лишь публикую (создаю темы), а админ мне платит. Трачу деньги на мороженое, робуксы и сервера в Minecraft. А ещё на паль из Китая. 

    Хочешь так же? Пиши и узнавай условия: https://t.me/alex_redact
    Реклама: https://t.me/yougame_official

Исходник Gamesense trace to exit

Участник
Участник
Статус
Онлайн
Регистрация
8 Янв 2020
Сообщения
405
Реакции
218
Gamesense trace to exit.

C++:
Expand Collapse Copy
bool penetration::trace_to_exit(CGameTrace* enter_trace, vec3_t start_pos, float distance_factor, float max_distance, CTraceFilter* filter, CGameTrace* exit_trace)
{
    float distance = 0.0f;

    int contents = 0;
    int first_contents = 0;

    vec3_t end;
    vec3_t start;

    if (max_distance <= 0.0f)
        return false;

    while (max_distance > distance)
    {
        distance += distance_factor;

        end = start_pos + enter_trace->end * new_distance;
        start = end - enter_trace->end * 4.0f;

        contents = get_point_contents(end, MASK_SHOT);

        if (!first_contents)
            first_contents = contents;

        if (contents & MASK_SHOT_HULL && (!(contents & CONTENTS_HITBOX) || first_contents == contents))
            continue;

        g_engine_trace->TraceRay(ray_t(end, start), MASK_SHOT, filter, exit_trace);

        if (exit_trace->startsolid && (exit_trace->surface.flags & SURF_HITBOX))
        {
            g_engine_trace->TraceRay(vec3_t(end, enter_trace->end), MASK_SHOT_HULL, filter, exit_trace);

            if ((exit_trace->fraction < 1.0 || exit_trace->allsolid) && !exit_trace->startsolid)
                return true;
        }
        else if (exit_trace->fraction >= 1.0 && !exit_trace->allsolid || exit_trace->startsolid)
        {
            if (enter_trace->entity && !hit_world_entity(enter_trace->entity) && IsBreakableEntity(enter_trace->entity))
            {
                *exit_trace = *enter_trace;
                exit_trace->end = start_pos + enter_trace->end;
                return true;
            }
        }
        else
        {
            bool no_draw = enter_trace->surface.flags & SURF_NODRAW;

            if (exit_trace->surface.flags >= 0)
                goto LABEL_25;

            if (IsBreakableEntity(exit_trace->entity) && IsBreakableEntity(enter_trace->entity))
                return true;

            if (no_draw)
            {
            LABEL_25:
                if (exit_trace->plane.normal.dot(start_pos) <= 1.0)
                    return true;
            }
        }
    }

    return false;
}
 
Последнее редактирование:
может ты еще анимфикс солешь?
 
Gamesense trace to exit.

C++:
Expand Collapse Copy
bool penetration::trace_to_exit(CGameTrace* enter_trace, vec3_t start_pos, float distance_factor, float max_distance, CTraceFilter* filter, CGameTrace* exit_trace)
{
    float distance = 0.0f;

    int contents = 0;
    int first_contents = 0;

    vec3_t end;
    vec3_t start;

    if (max_distance <= 0.0f)
        return false;

    while (max_distance > distance)
    {
        distance += distance_factor;

        end = start_pos + enter_trace->end * new_distance;
        start = end - enter_trace->end * 4.0f;

        contents = get_point_contents(end, MASK_SHOT);

        if (!first_contents)
            first_contents = contents;

        if (contents & MASK_SHOT_HULL && (!(contents & CONTENTS_HITBOX) || first_contents == contents))
            continue;

        g_engine_trace->TraceRay(ray_t(end, start), MASK_SHOT, filter, exit_trace);

        if (exit_trace->startsolid && (exit_trace->surface.flags & SURF_HITBOX))
        {
            g_engine_trace->TraceRay(vec3_t(end, enter_trace->end), MASK_SHOT_HULL, filter, exit_trace);

            if ((exit_trace->fraction < 1.0 || exit_trace->allsolid) && !exit_trace->startsolid)
                return true;
        }
        else if (exit_trace->fraction >= 1.0 && !exit_trace->allsolid || exit_trace->startsolid)
        {
            if (enter_trace->entity && !hit_world_entity(enter_trace->entity) && IsBreakableEntity(enter_trace->entity))
            {
                *exit_trace = *enter_trace;
                exit_trace->end = start_pos + enter_trace->end;
                return true;
            }
        }
        else
        {
            bool no_draw = enter_trace->surface.flags & SURF_NODRAW;

            if (exit_trace->surface.flags >= 0)
                goto LABEL_25;

            if (IsBreakableEntity(exit_trace->entity) && IsBreakableEntity(enter_trace->entity))
                return true;

            if (no_draw)
            {
            LABEL_25:
                if (exit_trace->plane.normal.dot(start_pos) <= 1.0)
                    return true;
            }
        }
    }

    return false;
}
возможно вронг добавь в тему
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Gamesense trace to exit.

C++:
Expand Collapse Copy
bool penetration::trace_to_exit(CGameTrace* enter_trace, vec3_t start_pos, float distance_factor, float max_distance, CTraceFilter* filter, CGameTrace* exit_trace)
{
    float distance = 0.0f;

    int contents = 0;
    int first_contents = 0;

    vec3_t end;
    vec3_t start;

    if (max_distance <= 0.0f)
        return false;

    while (max_distance > distance)
    {
        distance += distance_factor;

        end = start_pos + enter_trace->end * new_distance;
        start = end - enter_trace->end * 4.0f;

        contents = get_point_contents(end, MASK_SHOT);

        if (!first_contents)
            first_contents = contents;

        if (contents & MASK_SHOT_HULL && (!(contents & CONTENTS_HITBOX) || first_contents == contents))
            continue;

        g_engine_trace->TraceRay(ray_t(end, start), MASK_SHOT, filter, exit_trace);

        if (exit_trace->startsolid && (exit_trace->surface.flags & SURF_HITBOX))
        {
            g_engine_trace->TraceRay(vec3_t(end, enter_trace->end), MASK_SHOT_HULL, filter, exit_trace);

            if ((exit_trace->fraction < 1.0 || exit_trace->allsolid) && !exit_trace->startsolid)
                return true;
        }
        else if (exit_trace->fraction >= 1.0 && !exit_trace->allsolid || exit_trace->startsolid)
        {
            if (enter_trace->entity && !hit_world_entity(enter_trace->entity) && IsBreakableEntity(enter_trace->entity))
            {
                *exit_trace = *enter_trace;
                exit_trace->end = start_pos + enter_trace->end;
                return true;
            }
        }
        else
        {
            bool no_draw = enter_trace->surface.flags & SURF_NODRAW;

            if (exit_trace->surface.flags >= 0)
                goto LABEL_25;

            if (IsBreakableEntity(exit_trace->entity) && IsBreakableEntity(enter_trace->entity))
                return true;

            if (no_draw)
            {
            LABEL_25:
                if (exit_trace->plane.normal.dot(start_pos) <= 1.0)
                    return true;
            }
        }
    }

    return false;
}
Примечание: эта функция была взята из идбшника 2к20 года
 
Gamesense trace to exit.

C++:
Expand Collapse Copy
bool penetration::trace_to_exit(CGameTrace* enter_trace, vec3_t start_pos, float distance_factor, float max_distance, CTraceFilter* filter, CGameTrace* exit_trace)
{
    float distance = 0.0f;

    int contents = 0;
    int first_contents = 0;

    vec3_t end;
    vec3_t start;

    if (max_distance <= 0.0f)
        return false;

    while (max_distance > distance)
    {
        distance += distance_factor;

        end = start_pos + enter_trace->end * new_distance;
        start = end - enter_trace->end * 4.0f;

        contents = get_point_contents(end, MASK_SHOT);

        if (!first_contents)
            first_contents = contents;

        if (contents & MASK_SHOT_HULL && (!(contents & CONTENTS_HITBOX) || first_contents == contents))
            continue;

        g_engine_trace->TraceRay(ray_t(end, start), MASK_SHOT, filter, exit_trace);

        if (exit_trace->startsolid && (exit_trace->surface.flags & SURF_HITBOX))
        {
            g_engine_trace->TraceRay(vec3_t(end, enter_trace->end), MASK_SHOT_HULL, filter, exit_trace);

            if ((exit_trace->fraction < 1.0 || exit_trace->allsolid) && !exit_trace->startsolid)
                return true;
        }
        else if (exit_trace->fraction >= 1.0 && !exit_trace->allsolid || exit_trace->startsolid)
        {
            if (enter_trace->entity && !hit_world_entity(enter_trace->entity) && IsBreakableEntity(enter_trace->entity))
            {
                *exit_trace = *enter_trace;
                exit_trace->end = start_pos + enter_trace->end;
                return true;
            }
        }
        else
        {
            bool no_draw = enter_trace->surface.flags & SURF_NODRAW;

            if (exit_trace->surface.flags >= 0)
                goto LABEL_25;

            if (IsBreakableEntity(exit_trace->entity) && IsBreakableEntity(enter_trace->entity))
                return true;

            if (no_draw)
            {
            LABEL_25:
                if (exit_trace->plane.normal.dot(start_pos) <= 1.0)
                    return true;
            }
        }
    }

    return false;
}
esoterik?
 
1690190328169.png
 
когда слив избрейкейблентити?
 

Пожалуйста, зарегистрируйтесь или авторизуйтесь, чтобы увидеть содержимое.


признаюсь, я эзотерик, ищу мультиаккаунты соуфива чтоб продать ему части с моего мега чита и доказать всем, что он пастит мой супер чит
 
Последнее редактирование:
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
может ты еще анимфикс солешь?
ну там нет ничего такого..
ну если не считать
мемный дак амаут фикс >-<
когда слив избрейкейблентити?

Пожалуйста, зарегистрируйтесь или авторизуйтесь, чтобы увидеть содержимое.

 
  • Мне нравится
Реакции: mj12
Назад
Сверху Снизу