Ресольвер weave (вопрос)

who are you dot idk
Пользователь
Статус
Оффлайн
Регистрация
24 Ноя 2019
Сообщения
390
Реакции[?]
119
Поинты[?]
0
Можно задать вопросик по поводу ресольвера? Палками не бейте, рил не понял что это
Как не менял - ресольвит оно по одинаковому (брутит точнее)
Какие лучше значение ставить?
Что это за строчка и за что она отвечает?
public-enemy и другие хелпаните
C++:
dst3D = src3D + (forward * 381 ); //Might want to experiment with other numbers, incase you don't know what the number does, its how far the trace will go. Lower = shorter.
Сам детект сайд :

C++:
void CResolver::DetectSide(IBasePlayer* player, int *side)
{
    Vector src3D, dst3D, forward, right, up, src, dst;
    float back_two, right_two, left_two;
    trace_t tr;
    Ray_t ray, ray2, ray3, ray4, ray5;
    CTraceFilter filter;

    Math::AngleVectors(Vector(0, GetBackwardYaw(player), 0), &forward, &right, &up);

    filter.pSkip = player;
    src3D = player->GetEyePosition();
    dst3D = src3D + (forward * 384); //Might want to experiment with other numbers, incase you don't know what the number does, its how far the trace will go. Lower = shorter.

    ray.Init(src3D, dst3D);
    interfaces.trace->TraceRay(ray, MASK_SHOT, &filter, &tr);
    back_two = (tr.endpos - tr.startpos).Length();

    ray2.Init(src3D + right * 35, dst3D + right * 35);
    interfaces.trace->TraceRay(ray2, MASK_SHOT, &filter, &tr);
    right_two = (tr.endpos - tr.startpos).Length();

    ray3.Init(src3D - right * 35, dst3D - right * 35);
    interfaces.trace->TraceRay(ray3, MASK_SHOT, &filter, &tr);
    left_two = (tr.endpos - tr.startpos).Length();

    if (left_two > right_two) {
        *side = -1;
        //Body should be right
    }
    else if (right_two > left_two) {
        *side = 1;
    }
    else
        *side = 0;
}
(деф веаве)
 
main public enemy
Эксперт
Статус
Оффлайн
Регистрация
30 Ноя 2019
Сообщения
1,531
Реакции[?]
647
Поинты[?]
0
Можно задать вопросик по поводу ресольвера? Палками не бейте, рил не понял что это
Как не менял - ресольвит оно по одинаковому (брутит точнее)
Какие лучше значение ставить?
Что это за строчка и за что она отвечает?
public-enemy и другие хелпаните
C++:
dst3D = src3D + (forward * 381 ); //Might want to experiment with other numbers, incase you don't know what the number does, its how far the trace will go. Lower = shorter.
Сам детект сайд :

C++:
void CResolver::DetectSide(IBasePlayer* player, int *side)
{
    Vector src3D, dst3D, forward, right, up, src, dst;
    float back_two, right_two, left_two;
    trace_t tr;
    Ray_t ray, ray2, ray3, ray4, ray5;
    CTraceFilter filter;

    Math::AngleVectors(Vector(0, GetBackwardYaw(player), 0), &forward, &right, &up);

    filter.pSkip = player;
    src3D = player->GetEyePosition();
    dst3D = src3D + (forward * 384); //Might want to experiment with other numbers, incase you don't know what the number does, its how far the trace will go. Lower = shorter.

    ray.Init(src3D, dst3D);
    interfaces.trace->TraceRay(ray, MASK_SHOT, &filter, &tr);
    back_two = (tr.endpos - tr.startpos).Length();

    ray2.Init(src3D + right * 35, dst3D + right * 35);
    interfaces.trace->TraceRay(ray2, MASK_SHOT, &filter, &tr);
    right_two = (tr.endpos - tr.startpos).Length();

    ray3.Init(src3D - right * 35, dst3D - right * 35);
    interfaces.trace->TraceRay(ray3, MASK_SHOT, &filter, &tr);
    left_two = (tr.endpos - tr.startpos).Length();

    if (left_two > right_two) {
        *side = -1;
        //Body should be right
    }
    else if (right_two > left_two) {
        *side = 1;
    }
    else
        *side = 0;
}
(деф веаве)
Ну вообще этот код не рабочий ( а если и рабочий то не правильно )
Тут трейсы больно уж "грубо отправлены" p.s // mask_shot во всех случаях...
А по поводу строчки это подобие подсчета дистанции от позиции глаз (по мат части тоже плохо)
 
Похожие темы
Ответы
65
Просмотры
4K
Сверху Снизу