Вопрос Правильно ли сделан ClipTrace?

Начинающий
Статус
Оффлайн
Регистрация
22 Окт 2022
Сообщения
98
Реакции[?]
24
Поинты[?]
0
Код был взят с
Пожалуйста, авторизуйтесь для просмотра ссылки.

Забыл сказать что я его переделывал под вив

Код:
void CAutoWall::ClipTrace(Vector& start, Vector& end, IBasePlayer* e, unsigned int mask, CTraceFilter* filter, CGameTrace* old_trace)
{
    Ray_t ray = {};
    ray.Init(start, end);

    float  smallest_fraction = old_trace->fraction;
    constexpr float max_range = 60.f;

    if (filter && !filter->ShouldHitEntity(e, mask))
        return;

    CGameTrace new_trace = {};
    interfaces.trace->ClipRayToEntity(ray, mask, e, &new_trace);

    if (new_trace.fraction < smallest_fraction)
    {
        smallest_fraction = new_trace.fraction;
        *old_trace = new_trace;
    }
}
 
Последнее редактирование:
Модератор раздела «Создание читов CS2»
Забаненный
Статус
Оффлайн
Регистрация
21 Июн 2022
Сообщения
148
Реакции[?]
366
Поинты[?]
155K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Начинающий
Статус
Оффлайн
Регистрация
22 Окт 2022
Сообщения
98
Реакции[?]
24
Поинты[?]
0
Пожалуйста, авторизуйтесь для просмотра ссылки.
Ты это пропустил:
Посмотреть вложение 233196
Запрос прими
Пожалуйста, авторизуйтесь для просмотра ссылки.
Ты это пропустил:
Посмотреть вложение 233196
WorldSpaceCenter Скинь
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
7 Фев 2018
Сообщения
29
Реакции[?]
9
Поинты[?]
0
Во-первых, не указано, что будет происходить, если аргумент filter равен nullptr. В таком случае вызов filter->ShouldHitEntity(e, mask) приведет к ошибке.



Во-вторых, не указано, что будет происходить, если new_trace.fraction больше или равно smallest_fraction. В этом случае не будет выполнено никакое действие, что может привести к неправильному результату.


В-третьих, не указано, что будет происходить, если расстояние между start и end больше max_range. В этом случае функция может выполнить неправильную операцию с ray.
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
22 Окт 2022
Сообщения
98
Реакции[?]
24
Поинты[?]
0
Во-первых, не указано, что будет происходить, если аргумент filter равен nullptr. В таком случае вызов filter->ShouldHitEntity(e, mask) приведет к ошибке.



Во-вторых, не указано, что будет происходить, если new_trace.fraction больше или равно smallest_fraction. В этом случае не будет выполнено никакое действие, что может привести к неправильному результату.


В-третьих, не указано, что будет происходить, если расстояние между start и end больше max_range. В этом случае функция может выполнить неправильную операцию с ray.
1 и 2 хуйня (вильям всегда прав) но к 3 я прислушался и сделал
 
Сверху Снизу