Вопрос Resolver functions

Начинающий
Статус
Оффлайн
Регистрация
17 Апр 2020
Сообщения
236
Реакции[?]
24
Поинты[?]
2K
Всем привет , решил я написать свою мега супериор пасту, только вот не задача, не могу понять за что отвечают и как работают данные фунции в ресольвере:
m_flGoalFeetYaw
normalize_yaw
m_angEyeAngles
get_max_desync_delta
Сурс Lw v3(Просьба не писать по поводу того что сурс калл ,он мне удобен, а также пж не пишете про анимфикс)
 
Пользователь
Статус
Оффлайн
Регистрация
12 Фев 2024
Сообщения
64
Реакции[?]
31
Поинты[?]
36K
Всем привет , решил я написать свою мега супериор пасту, только вот не задача, не могу понять за что отвечают и как работают данные фунции в ресольвере:
m_flGoalFeetYaw
normalize_yaw
m_angEyeAngles
get_max_desync_delta
Сурс Lw v3(Просьба не писать по поводу того что сурс калл ,он мне удобен, а также пж не пишете про анимфикс)
m_flGoalFeetYaw -> позиция пяточек на сере и на клиенте они разные так же зависят от min/max body yaw modifier(
Пожалуйста, авторизуйтесь для просмотра ссылки.
)
так же m_flGoalFeetYaw меняет свою позицию в зависимости от твоего движения p.s чека на m_bOnGround уже давно нет если что(
Пожалуйста, авторизуйтесь для просмотра ссылки.
)
из-за рассинхронизации m_flGoalFeetYaw на клиенте и на сервере в принципе и произошла десинхронизация

normalize_yaw -> нормализирует значение от -180 к 180 либо к -360 к 360( полезно если значение выходит за предел допустимого игрой )

m_angEyeAngles -> наши глаза

get_max_desync_delta -> возвращает макс десинк дельту в зависимости от max body yaw modifier
полезная вещь если ты не хочешь использовать 60
но лучше все же спастить полное вычисление чем делать такое( код ниже )

C++:
float eye_feet_delta = AngleDiff(m_flEyeYaw, m_flGoalFeetYaw);

    float flRunningSpeed = clamp(m_flRunningSpeed, 0.0f, 1.0f);

    float flYawModifier = (((m_flGroundFraction * -0.3f) - 0.2f) * flRunningSpeed) + 1.0f;

    if (m_fDuckAmount > 0.0f)
    {
        float flDuckingSpeed = clamp(m_flDuckingSpeed, 0.0f, 1.0f);
        flYawModifier = flYawModifier + ((m_fDuckAmount * flDuckingSpeed) * (0.5f - flYawModifier));
    }

    float flMaxYawModifier = flYawModifier * m_flMaxYaw;
    float flMinYawModifier = flYawModifier * m_flMinYaw;

    if (eye_feet_delta <= flMaxYawModifier)
    {
        if (flMinYawModifier > eye_feet_delta)
            m_flGoalFeetYaw = fabs(flMinYawModifier) + m_flEyeYaw;
    }
    else
    {
        m_flGoalFeetYaw = m_flEyeYaw - fabs(flMaxYawModifier);
    }

    NormalizeAngle(m_flGoalFeetYaw);
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
17 Апр 2020
Сообщения
236
Реакции[?]
24
Поинты[?]
2K
m_flGoalFeetYaw -> позиция пяточек на сере и на клиенте они разные так же зависят от min/max body yaw modifier(
Пожалуйста, авторизуйтесь для просмотра ссылки.
)
так же m_flGoalFeetYaw меняет свою позицию в зависимости от твоего движения p.s чека на m_bOnGround уже давно нет если что(
Пожалуйста, авторизуйтесь для просмотра ссылки.
)
из-за рассинхронизации m_flGoalFeetYaw на клиенте и на сервере в принципе и произошла десинхронизация

normalize_yaw -> нормализирует значение от -180 к 180 либо к -360 к 360( полезно если значение выходит за предел допустимого игрой )

m_angEyeAngles -> наши глаза

get_max_desync_delta -> возвращает макс десинк дельту в зависимости от max body yaw modifier
полезная вещь если ты не хочешь использовать 60
но лучше все же спастить полное вычисление чем делать такое( код ниже )

C++:
float eye_feet_delta = AngleDiff(m_flEyeYaw, m_flGoalFeetYaw);

    float flRunningSpeed = clamp(m_flRunningSpeed, 0.0f, 1.0f);

    float flYawModifier = (((m_flGroundFraction * -0.3f) - 0.2f) * flRunningSpeed) + 1.0f;

    if (m_fDuckAmount > 0.0f)
    {
        float flDuckingSpeed = clamp(m_flDuckingSpeed, 0.0f, 1.0f);
        flYawModifier = flYawModifier + ((m_fDuckAmount * flDuckingSpeed) * (0.5f - flYawModifier));
    }

    float flMaxYawModifier = flYawModifier * m_flMaxYaw;
    float flMinYawModifier = flYawModifier * m_flMinYaw;

    if (eye_feet_delta <= flMaxYawModifier)
    {
        if (flMinYawModifier > eye_feet_delta)
            m_flGoalFeetYaw = fabs(flMinYawModifier) + m_flEyeYaw;
    }
    else
    {
        m_flGoalFeetYaw = m_flEyeYaw - fabs(flMaxYawModifier);
    }

    NormalizeAngle(m_flGoalFeetYaw);
Огромное тебе спасибо!!!
как он может быть тебе удобен если ты его даже не знаешь
Не знаю что? Легендвар? Сурс простейший для понимания
 
Пользователь
Статус
Оффлайн
Регистрация
12 Фев 2024
Сообщения
64
Реакции[?]
31
Поинты[?]
36K
Огромное тебе спасибо!!!

Не знаю что? Легендвар? Сурс простейший для понимания
да нет
легендвар это максимальный плохой исходник
для того времени( 2020 ) это был хорошенький исходник для изучения

так как имел те фиксы которые не имели другие исходники тот же рекалькулейт велосити по 11 анимлееру, фейк апдейт чек, лбу ребилд, лэнд фикс
етсс
имел достаточно неплохие эксплоиты like skeet & ot
 
Сверху Снизу