Вопрос Как исправить передвижение при silent aim ?

Начинающий
Статус
Оффлайн
Регистрация
5 Сен 2021
Сообщения
76
Реакции[?]
5
Поинты[?]
1K
При использовании строчки :
cmd->viewangles = angle;
в аиме при нацеливании, игрок двигается только относительно цели, то есть при движении вперед и смотря в противоположную сторону от цели игрок все равно движется к цели.
 
Начинающий
Статус
Оффлайн
Регистрация
18 Мар 2021
Сообщения
68
Реакции[?]
29
Поинты[?]
1K
Зачем /del, вдруг кому то нужно будет, лучше объясни как пофиксил
 
Начинающий
Статус
Оффлайн
Регистрация
5 Сен 2021
Сообщения
76
Реакции[?]
5
Поинты[?]
1K
Зачем /del, вдруг кому то нужно будет, лучше объясни как пофиксил
Function:
void CorrectMovement(vec3_t vOldAngles, c_usercmd* pCmd, float fOldForward, float fOldSidemove)
{
    float deltaView = pCmd->viewangles.y - vOldAngles.y;
    float f1;
    float f2;

    if (vOldAngles.y < 0.f)
        f1 = 360.0f + vOldAngles.y;
    else
        f1 = vOldAngles.y;

    if (pCmd->viewangles.y < 0.0f)
        f2 = 360.0f + pCmd->viewangles.y;
    else
        f2 = pCmd->viewangles.y;

    if (f2 < f1)
        deltaView = abs(f2 - f1);
    else
        deltaView = 360.0f - abs(f1 - f2);
    deltaView = 360.0f - deltaView;

    pCmd->forwardmove = cos(math::deg2rad(deltaView)) * fOldForward + cos(math::deg2rad(deltaView + 90.f)) * fOldSidemove;
    pCmd->sidemove = sin(math::deg2rad(deltaView)) * fOldForward + sin(math::deg2rad(deltaView + 90.f)) * fOldSidemove;
}
Usage:
vec3_t old = cmd->viewangles;
cmd->viewangles = NewAngle;
CorrectMovement(old, cmd, cmd->forwardmove, cmd->sidemove);
 
Тьомчик
Участник
Статус
Оффлайн
Регистрация
30 Июн 2020
Сообщения
731
Реакции[?]
150
Поинты[?]
58K
Function:
void CorrectMovement(vec3_t vOldAngles, c_usercmd* pCmd, float fOldForward, float fOldSidemove)
{
    float deltaView = pCmd->viewangles.y - vOldAngles.y;
    float f1;
    float f2;

    if (vOldAngles.y < 0.f)
        f1 = 360.0f + vOldAngles.y;
    else
        f1 = vOldAngles.y;

    if (pCmd->viewangles.y < 0.0f)
        f2 = 360.0f + pCmd->viewangles.y;
    else
        f2 = pCmd->viewangles.y;

    if (f2 < f1)
        deltaView = abs(f2 - f1);
    else
        deltaView = 360.0f - abs(f1 - f2);
    deltaView = 360.0f - deltaView;

    pCmd->forwardmove = cos(math::deg2rad(deltaView)) * fOldForward + cos(math::deg2rad(deltaView + 90.f)) * fOldSidemove;
    pCmd->sidemove = sin(math::deg2rad(deltaView)) * fOldForward + sin(math::deg2rad(deltaView + 90.f)) * fOldSidemove;
}
Usage:
vec3_t old = cmd->viewangles;
cmd->viewangles = NewAngle;
CorrectMovement(old, cmd, cmd->forwardmove, cmd->sidemove);
Да, правильно я тоже задавался таким вопросом пока не вспомнил про мувментфикс
 
Сверху Снизу