who are you dot idk
-
Автор темы
- #1
Можно задать вопросик по поводу ресольвера? Палками не бейте, рил не понял что это
Как не менял - ресольвит оно по одинаковому (брутит точнее)
Какие лучше значение ставить?
Что это за строчка и за что она отвечает?
public-enemy и другие хелпаните
Сам детект сайд :
(деф веаве)
Как не менял - ресольвит оно по одинаковому (брутит точнее)
Какие лучше значение ставить?
Что это за строчка и за что она отвечает?
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;
}