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

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

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

C++ Legendware detectside с вива

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
17 Апр 2020
Сообщения
237
Реакции
24
C++:
Expand Collapse Copy
int side_trace = 0;

void DetectSide(player_t* player)
{
    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::angle_vectors(Vector(0, GetBackwardYaw(player), 0), &forward, &right, &up);

    
    src3D = player->GetEyePosition();
    dst3D = src3D + (forward * 384);

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

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

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

    if (left_two > right_two) {
        side_trace = -1;
        //Body should be right
        //right
    }
    else if (right_two > left_two) {
        side_trace = 1;
        //left
    }
    else
        side_trace = 0;
}
бля забыл функцию
Код:
Expand Collapse Copy
float GetBackwardYaw(player_t* player) {
    return math::calculate_angle(player->m_vecOrigin(), player->m_vecOrigin()).y;
}
 
Последнее редактирование:
filter.pSkip = player; да?
 
бля забыл функцию
Код:
Expand Collapse Copy
float GetBackwardYaw(player_t* player) {
    return math::calculate_angle(g_ctx.local()->m_vecOrigin(), g_ctx.local()->m_vecOrigin()).y;
}
ты глупый сер? g_ctx.local() то нахуя, этож локал плеер, ты этой хуетой его англе гетаешь, у цабе же есть player_t* player, трудно было подумать и поставить его,
like
Код:
Expand Collapse Copy
float GetBackwardYaw(player_t* player) {

    return math::calculate_angle(g_ctx.local()->GetAbsOrigin(), player->GetAbsOrigin()).y;

}
это первое.
А второе, нахуя filter.pSkip = player;, если ты эту срочку юзаешь, то ты вырубаешь ресольвер на преера(энеми) => ты его не ресольвишь
 
ты глупый сер? g_ctx.local() то нахуя, этож локал плеер, ты этой хуетой его англе гетаешь, у цабе же есть player_t* player, трудно было подумать и поставить его,
like
Код:
Expand Collapse Copy
float GetBackwardYaw(player_t* player) {

    return math::calculate_angle(g_ctx.local()->GetAbsOrigin(), player->GetAbsOrigin()).y;

}
это первое.
А второе, нахуя filter.pSkip = player;, если ты эту срочку юзаешь, то ты вырубаешь ресольвер на преера(энеми) => ты его не ресольвишь
исправил
 
C++:
Expand Collapse Copy
int side_trace = 0;

void DetectSide(player_t* player)
{
    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::angle_vectors(Vector(0, GetBackwardYaw(player), 0), &forward, &right, &up);

   
    src3D = player->GetEyePosition();
    dst3D = src3D + (forward * 384);

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

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

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

    if (left_two > right_two) {
        side_trace = -1;
        //Body should be right
        //right
    }
    else if (right_two > left_two) {
        side_trace = 1;
        //left
    }
    else
        side_trace = 0;
}
бля забыл функцию
Код:
Expand Collapse Copy
float GetBackwardYaw(player_t* player) {
    return math::calculate_angle(player->m_vecOrigin(), player->m_vecOrigin()).y;
}

 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Очередная хуйня по трейсерам + ещё и неправильная :/
 
ты
C++:
Expand Collapse Copy
int side_trace = 0;

void DetectSide(player_t* player)
{
    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::angle_vectors(Vector(0, GetBackwardYaw(player), 0), &forward, &right, &up);

 
    src3D = player->GetEyePosition();
    dst3D = src3D + (forward * 384);

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

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

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

    if (left_two > right_two) {
        side_trace = -1;
        //Body should be right
        //right
    }
    else if (right_two > left_two) {
        side_trace = 1;
        //left
    }
    else
        side_trace = 0;
}
бля забыл функцию
Код:
Expand Collapse Copy
float GetBackwardYaw(player_t* player) {
    return math::calculate_angle(player->m_vecOrigin(), player->m_vecOrigin()).y;
}
Ты и забыл GetEyePosition нам сюда докинуть
upd:LineOut, у меня нету проста этай функции
 
ты

Ты и забыл GetEyePosition нам сюда докинуть
upd:LineOut, у меня нету проста этай функции
хз у меня всё есть
ты

Ты и забыл GetEyePosition нам сюда докинуть
upd:LineOut, у меня нету проста этай функции

C++:
Expand Collapse Copy
    Vector GetEyePosition() {
        Vector Origin = *(Vector*)((DWORD)this + 0x138);
        Vector View = *(Vector*)((DWORD)this + 0x108);
        return(Origin + View);
    }
в IClientEntity
 
хз у меня всё есть


C++:
Expand Collapse Copy
    Vector GetEyePosition() {
        Vector Origin = *(Vector*)((DWORD)this + 0x138);
        Vector View = *(Vector*)((DWORD)this + 0x108);
        return(Origin + View);
    }
в IClientEntity
Та я знаю что куда пихать, пащю не первый месяц и учу си плюс плюс по немногу
UPD:всёравно спасибо
 
Этот способ не работает у меня.
Что может быть не так?
Значение сайда всегда == 0
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
void resolver::detectsides(player_t* player, int* side)
{
if (!g_ctx.local() || !g_ctx.local()->is_alive() || !g_ctx.local()->m_hActiveWeapon())
return;

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;

filter.pSkip = player;
src3D = player->get_eye_pos();
dst3D = src3D + (forward * 384);

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

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

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

if (left_two > right_two) {
*side = 1;
}
else if (right_two > left_two) {
*side = -1;
}
else
*side = 1;
}
 
void resolver::detectsides(player_t* player, int* side)
{
if (!g_ctx.local() || !g_ctx.local()->is_alive() || !g_ctx.local()->m_hActiveWeapon())
return;

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;

filter.pSkip = player;
src3D = player->get_eye_pos();
dst3D = src3D + (forward * 384);

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

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

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

if (left_two > right_two) {
*side = 1;
}
else if (right_two > left_two) {
*side = -1;
}
else
*side = 1;
}
че нахуй
Код:
Expand Collapse Copy
if (left_two > right_two) {
*side = 1;
}
else if (right_two > left_two) {
*side = -1;
}
else
*side = 1;
}
 
Назад
Сверху Снизу