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
но лучше все же спастить полное вычисление чем делать такое( код ниже )
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);