Вопрос Resolver

yoo bro, i see a big paster)()
Начинающий
Статус
Оффлайн
Регистрация
29 Июл 2019
Сообщения
257
Реакции[?]
26
Поинты[?]
0
Приет всем, делаю ресольвер для лв, такой вопрос: как можно его доделать/исправить?
C++:
void resolver::resolve_yaw()
{
    player_info_t player_info;

    if (!m_engine()->GetPlayerInfo(player->EntIndex(), &player_info))
        return;

#if RELEASE
    if (player_info.fakeplayer || !g_ctx.local()->is_alive() || player->m_iTeamNum() == g_ctx.local()->m_iTeamNum()) //-V807
#else
    if (!g_ctx.local()->is_alive() || player->m_iTeamNum() == g_ctx.local()->m_iTeamNum())
#endif
    {
        player_record->side = RESOLVER_ORIGINAL;
        return;
    }
    if (g_ctx.globals.missed_shots[player->EntIndex()]) {

            switch (g_ctx.globals.missed_shots[player->EntIndex()] % 2)
            {

            case RESOLVER_FIRST:
              
                player_record->type = BRUTEFORCE;
                player_record->side == was_second_bruteforce * RESOLVER_SECOND;
                was_first_bruteforce = true;
                break;
            case RESOLVER_SECOND:
              
                player_record->type = BRUTEFORCE;
                player_record->side == was_first_bruteforce * RESOLVER_FIRST;
                was_second_bruteforce = true;
                break;
            }

        }
  

    auto animstate = player->get_animation_state();

    if (!animstate)
    {
        player_record->side = RESOLVER_ORIGINAL;
        return;
    }

    if (fabs(original_pitch) > 85.0f)
        fake = true;
    else if (!fake)
    {
        player_record->side = RESOLVER_ORIGINAL;
        return;
    }

    auto delta = math::normalize_yaw(player->m_angEyeAngles().y - animstate->m_flGoalFeetYaw);
    auto valid_lby = true;

    if (animstate->m_velocity > 0.1f || fabs(animstate->flUpVelocity) > 100.f)
        valid_lby = animstate->m_flTimeSinceStartedMoving < 0.22f;

    if (fabs(delta) > 29.0f && valid_lby)
    {
        if (g_ctx.globals.missed_shots[player->EntIndex()])
            delta = -delta;

        if (delta < 29.0f)
        {
            player_record->type = LBY;
            player_record->side = RESOLVER_LOW_FIRST;
        }
        else if (delta > -29.0f)
        {
            player_record->type = LBY;
            player_record->side = RESOLVER_LOW_SECOND;
        }
    } 
}

upd:
C++:
 case RESOLVER_FIRST:
            animstate->m_flGoalFeetYaw = math::normalize_yaw(e->m_angEyeAngles().y + flMaxBodyYaw);
 
Забаненный
Статус
Оффлайн
Регистрация
6 Ноя 2022
Сообщения
22
Реакции[?]
3
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Приет всем, делаю ресольвер для лв, такой вопрос: как можно его доделать/исправить?
C++:
void resolver::resolve_yaw()
{
    player_info_t player_info;

    if (!m_engine()->GetPlayerInfo(player->EntIndex(), &player_info))
        return;

#if RELEASE
    if (player_info.fakeplayer || !g_ctx.local()->is_alive() || player->m_iTeamNum() == g_ctx.local()->m_iTeamNum()) //-V807
#else
    if (!g_ctx.local()->is_alive() || player->m_iTeamNum() == g_ctx.local()->m_iTeamNum())
#endif
    {
        player_record->side = RESOLVER_ORIGINAL;
        return;
    }
    if (g_ctx.globals.missed_shots[player->EntIndex()]) {

            switch (g_ctx.globals.missed_shots[player->EntIndex()] % 2)
            {

            case RESOLVER_FIRST:
             
                player_record->type = BRUTEFORCE;
                player_record->side == was_second_bruteforce * RESOLVER_SECOND;
                was_first_bruteforce = true;
                break;
            case RESOLVER_SECOND:
             
                player_record->type = BRUTEFORCE;
                player_record->side == was_first_bruteforce * RESOLVER_FIRST;
                was_second_bruteforce = true;
                break;
            }

        }
 

    auto animstate = player->get_animation_state();

    if (!animstate)
    {
        player_record->side = RESOLVER_ORIGINAL;
        return;
    }

    if (fabs(original_pitch) > 85.0f)
        fake = true;
    else if (!fake)
    {
        player_record->side = RESOLVER_ORIGINAL;
        return;
    }

    auto delta = math::normalize_yaw(player->m_angEyeAngles().y - animstate->m_flGoalFeetYaw);
    auto valid_lby = true;

    if (animstate->m_velocity > 0.1f || fabs(animstate->flUpVelocity) > 100.f)
        valid_lby = animstate->m_flTimeSinceStartedMoving < 0.22f;

    if (fabs(delta) > 29.0f && valid_lby)
    {
        if (g_ctx.globals.missed_shots[player->EntIndex()])
            delta = -delta;

        if (delta < 29.0f)
        {
            player_record->type = LBY;
            player_record->side = RESOLVER_LOW_FIRST;
        }
        else if (delta > -29.0f)
        {
            player_record->type = LBY;
            player_record->side = RESOLVER_LOW_SECOND;
        }
    }
}

upd:
C++:
 case RESOLVER_FIRST:
            animstate->m_flGoalFeetYaw = math::normalize_yaw(e->m_angEyeAngles().y + flMaxBodyYaw);
переделай под лв, лучше не найдёшь
 
Забаненный
Статус
Оффлайн
Регистрация
6 Ноя 2022
Сообщения
22
Реакции[?]
3
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
в каком смысле, это и есть лв
ссылку не прекрепил
 
yoo bro, i see a big paster)()
Начинающий
Статус
Оффлайн
Регистрация
29 Июл 2019
Сообщения
257
Реакции[?]
26
Поинты[?]
0
ссылку не прекрепил
А зачем мне быссмысленно пастить что-то, я хочу получить совет как можно улучшить
 
Пользователь
Статус
Оффлайн
Регистрация
19 Ноя 2019
Сообщения
263
Реакции[?]
50
Поинты[?]
2K
А зачем мне быссмысленно пастить что-то, я хочу получить совет как можно улучшить
my god there are like 1000 posts on resolvers, does it really hurt to search???

OT: properly fix anims then try to make an resolver (basic side detection and safepoints should do the job)
 
Эксперт
Статус
Оффлайн
Регистрация
29 Мар 2021
Сообщения
1,596
Реакции[?]
605
Поинты[?]
46K
Сверху Снизу