Вопрос Anim resolver.

Модератор форума
Модератор
Статус
Оффлайн
Регистрация
26 Янв 2020
Сообщения
378
Реакции[?]
157
Поинты[?]
9K
Есть вот такой пример кода, и вот в чем загвоздка. Он просто не фиксит слоуволк. В чем проблема? Или может быть трабл в фикс велосити в лагкомпе?
C++:
    if (*(float*)(animstate_zx + 0xF8) < 0.f)
        {
            speed_rkk = 0.0;
        }
        else
        {
            speed_rkk = fminf(*(DWORD*)(animstate_zx + 0xF8), 1.0f);
        }

        float flYawModifier = (*(float*)(animstate_zx + 0x11C) * -0.30000001 - 0.19999999) * speed_rkk;
        flYawModifier += 1.0f;

        if (*(float*)(animstate_zx + 0xA4) > 0.0 && *(float*)(animstate_zx + 0xFC) >= 0.0)
            flYawModifier = fminf(*(float*)(uintptr_t(animstate_zx) + 0xFC), 1.0f);

        float m_flMaxBodyYaw = *(float*)(uintptr_t(animstate_zx) + 0x334) * flYawModifier;
        float m_flMinBodyYaw = *(float*)(uintptr_t(animstate_zx) + 0x330) * flYawModifier;

        float ResolvedYaw = animstate_zx->m_eye_yaw;

        float delta = std::abs(animstate_zx->m_eye_yaw - animstate_zx->m_abs_yaw);

        if (m_flMaxBodyYaw < delta)
        {
            ResolvedYaw = animstate_zx->m_eye_yaw - std::abs(m_flMaxBodyYaw);
        }
        else if (m_flMinBodyYaw > delta)
        {
            ResolvedYaw = animstate_zx->m_eye_yaw + std::abs(m_flMinBodyYaw);
        }
 
Последнее редактирование:
Пользователь
Статус
Оффлайн
Регистрация
9 Мар 2021
Сообщения
272
Реакции[?]
42
Поинты[?]
2K
Есть вот такой пример кода, и вот в чем загвоздка. Он просто не фиксит слоуволк. В чем проблема? Или может быть трабл в фикс велосити в лагкомпе?
C++:
    if (*(float*)(animstate_zx + 0xF8) < 0.f)
        {
            speed_rkk = 0.0;
        }
        else
        {
            speed_rkk = fminf(*(DWORD*)(animstate_zx + 0xF8), 1.0f);
        }

        float flYawModifier = (*(float*)(animstate_zx + 0x11C) * -0.30000001 - 0.19999999) * speed_rkk;
        flYawModifier += 1.0f;

        if (*(float*)(animstate_zx + 0xA4) > 0.0 && *(float*)(animstate_zx + 0xFC) >= 0.0)
            flYawModifier = fminf(*(float*)(uintptr_t(animstate_zx) + 0xFC), 1.0f);

        float m_flMaxBodyYaw = *(float*)(uintptr_t(animstate_zx) + 0x334) * flYawModifier;
        float m_flMinBodyYaw = *(float*)(uintptr_t(animstate_zx) + 0x330) * flYawModifier;

        float ResolvedYaw = animstate_zx->m_eye_yaw;

        float delta = std::abs(animstate_zx->m_eye_yaw - animstate_zx->m_abs_yaw);

        if (m_flMaxBodyYaw < delta)
        {
            ResolvedYaw = animstate_zx->m_eye_yaw - std::abs(m_flMaxBodyYaw);
        }
        else if (m_flMinBodyYaw > delta)
        {
            ResolvedYaw = animstate_zx->m_eye_yaw + std::abs(m_flMinBodyYaw);
        }
с таким кодом он мало что пофиксит
C++:
//credit: onetap
const auto slow_walking = animationstate->m_flFeetYawRate >= 0.01f && animationstate->m_flFeetYawRate <= 0.8f;
if (slow_walking)
    {
        if (animationstate->m_flGoalFeetYaw != animationstate->m_flCurrentFeetYaw)
            animationstate->m_flGoalFeetYaw = animationstate->m_flCurrentFeetYaw;
    }
я не знаю работает ли оно или же нет, но код из дампа в3
с таким кодом он мало что пофиксит
C++:
//credit: onetap
const auto slow_walking = animationstate->m_flFeetYawRate >= 0.01f && animationstate->m_flFeetYawRate <= 0.8f;
if (slow_walking)
    {
        if (animationstate->m_flGoalFeetYaw != animationstate->m_flCurrentFeetYaw)
            animationstate->m_flGoalFeetYaw = animationstate->m_flCurrentFeetYaw;
    }
я не знаю работает ли оно или же нет, но код из дампа в3
и это проверки, оно не фиксит лоудельту
 
Последнее редактирование:
Участник
Статус
Оффлайн
Регистрация
26 Апр 2018
Сообщения
852
Реакции[?]
181
Поинты[?]
0
с таким кодом он мало что пофиксит
C++:
//credit: onetap
const auto slow_walking = animationstate->m_flFeetYawRate >= 0.01f && animationstate->m_flFeetYawRate <= 0.8f;
if (slow_walking)
    {
        if (animationstate->m_flGoalFeetYaw != animationstate->m_flCurrentFeetYaw)
            animationstate->m_flGoalFeetYaw = animationstate->m_flCurrentFeetYaw;
    }
я не знаю работает ли оно или же нет, но код из дампа в3

и это проверки, оно не фиксит лоудельту
поправь меня, я вроде бы видел
float delta = std::abs(animstate_zx->m_eye_yaw - animstate_zx->m_abs_yaw * 1000) в3
 
Keine panik!
Эксперт
Статус
Оффлайн
Регистрация
29 Апр 2020
Сообщения
812
Реакции[?]
417
Поинты[?]
49K
Есть вот такой пример кода
Это какой то кошмар, замени хотя бы
animstate_zx + 0xF8 -> m_flSpeedAsPortionOfWalkTopSpeed
animstate_zx + 0xFC -> m_flSpeedAsPortionOfCrouchTopSpeed
animstate_zx + 0x11C -> m_flWalkToRunTransition
animstate_zx + 0x330 -> m_flAimYawMin
animstate_zx + 0x334 -> m_flAimYawMax
А то пиздец смотреть страшно, глаза вытекают.
 
Сверху Снизу