Подведи собственные итоги года совместно с YOUGAME и забери ценные призы! Перейти

Вопрос Csgosimple movement fix

Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Код:
Expand Collapse Copy
void CMovement::MovementFix(CUserCmd* pCmd, QAngle angWishAngles) {
    Vector view_fwd, view_right, view_up, cmd_fwd, cmd_right, cmd_up;

    Math::AngleVectors(angWishAngles, view_fwd, view_right, view_up);
    Math::AngleVectors(pCmd->angViewPoint, cmd_fwd, cmd_right, cmd_up);

    const float v8 = std::sqrtf(view_fwd.x * view_fwd.x + view_fwd.y * view_fwd.y);
    const float v10 = std::sqrtf(view_right.x * view_right.x + view_right.y * view_right.y);
    const float v12 = std::sqrtf(view_up.z * view_up.z);

    const Vector norm_view_fwd(1.f / v8 * view_fwd.x, 1.f / v8 * view_fwd.y, 0.f);
    const Vector norm_view_right(1.f / v10 * view_right.x, 1.f / v10 * view_right.y, 0.f);
    const Vector norm_view_up(0.f, 0.f, 1.f / v12 * view_up.z);

    const float v14 = std::sqrtf(cmd_fwd.x * cmd_fwd.x + cmd_fwd.y * cmd_fwd.y);
    const float v16 = std::sqrtf(cmd_right.x * cmd_right.x + cmd_right.y * cmd_right.y);
    const float v18 = std::sqrtf(cmd_up.z * cmd_up.z);

    const Vector norm_cmd_fwd(1.f / v14 * cmd_fwd.x, 1.f / v14 * cmd_fwd.y, 0.f);
    const Vector norm_cmd_right(1.f / v16 * cmd_right.x, 1.f / v16 * cmd_right.y, 0.f);
    const Vector norm_cmd_up(0.f, 0.f, 1.f / v18 * cmd_up.z);

    const float v22 = norm_view_fwd.x * pCmd->flForwardMove;
    const float v26 = norm_view_fwd.y * pCmd->flForwardMove;
    const float v28 = norm_view_fwd.z * pCmd->flForwardMove;
    const float v24 = norm_view_right.x * pCmd->flSideMove;
    const float v23 = norm_view_right.y * pCmd->flSideMove;
    const float v25 = norm_view_right.z * pCmd->flSideMove;
    const float v30 = norm_view_up.x * pCmd->flUpMove;
    const float v27 = norm_view_up.z * pCmd->flUpMove;
    const float v29 = norm_view_up.y * pCmd->flUpMove;

    pCmd->flForwardMove = norm_cmd_fwd.x * v24 + norm_cmd_fwd.y * v23 + norm_cmd_fwd.z * v25
        + (norm_cmd_fwd.x * v22 + norm_cmd_fwd.y * v26 + norm_cmd_fwd.z * v28)
        + (norm_cmd_fwd.y * v30 + norm_cmd_fwd.x * v29 + norm_cmd_fwd.z * v27);

    pCmd->flSideMove = norm_cmd_right.x * v24 + norm_cmd_right.y * v23 + norm_cmd_right.z * v25
        + (norm_cmd_right.x * v22 + norm_cmd_right.y * v26 + norm_cmd_right.z * v28)
        + (norm_cmd_right.x * v29 + norm_cmd_right.y * v30 + norm_cmd_right.z * v27);

    pCmd->flUpMove = norm_cmd_up.x * v23 + norm_cmd_up.y * v24 + norm_cmd_up.z * v25
        + (norm_cmd_up.x * v26 + norm_cmd_up.y * v22 + norm_cmd_up.z * v28)
        + (norm_cmd_up.x * v30 + norm_cmd_up.y * v29 + norm_cmd_up.z * v27);

    pCmd->flForwardMove = std::clamp(pCmd->flForwardMove, -450.f, 450.f);
    pCmd->flSideMove = std::clamp(pCmd->flSideMove, -450.f, 450.f);
    pCmd->flUpMove = std::clamp(pCmd->flUpMove, -320.f, 320.f);
}
 
Код:
Expand Collapse Copy
void CMovement::MovementFix(CUserCmd* pCmd, QAngle angWishAngles) {
    Vector view_fwd, view_right, view_up, cmd_fwd, cmd_right, cmd_up;

    Math::AngleVectors(angWishAngles, view_fwd, view_right, view_up);
    Math::AngleVectors(pCmd->angViewPoint, cmd_fwd, cmd_right, cmd_up);

    const float v8 = std::sqrtf(view_fwd.x * view_fwd.x + view_fwd.y * view_fwd.y);
    const float v10 = std::sqrtf(view_right.x * view_right.x + view_right.y * view_right.y);
    const float v12 = std::sqrtf(view_up.z * view_up.z);

    const Vector norm_view_fwd(1.f / v8 * view_fwd.x, 1.f / v8 * view_fwd.y, 0.f);
    const Vector norm_view_right(1.f / v10 * view_right.x, 1.f / v10 * view_right.y, 0.f);
    const Vector norm_view_up(0.f, 0.f, 1.f / v12 * view_up.z);

    const float v14 = std::sqrtf(cmd_fwd.x * cmd_fwd.x + cmd_fwd.y * cmd_fwd.y);
    const float v16 = std::sqrtf(cmd_right.x * cmd_right.x + cmd_right.y * cmd_right.y);
    const float v18 = std::sqrtf(cmd_up.z * cmd_up.z);

    const Vector norm_cmd_fwd(1.f / v14 * cmd_fwd.x, 1.f / v14 * cmd_fwd.y, 0.f);
    const Vector norm_cmd_right(1.f / v16 * cmd_right.x, 1.f / v16 * cmd_right.y, 0.f);
    const Vector norm_cmd_up(0.f, 0.f, 1.f / v18 * cmd_up.z);

    const float v22 = norm_view_fwd.x * pCmd->flForwardMove;
    const float v26 = norm_view_fwd.y * pCmd->flForwardMove;
    const float v28 = norm_view_fwd.z * pCmd->flForwardMove;
    const float v24 = norm_view_right.x * pCmd->flSideMove;
    const float v23 = norm_view_right.y * pCmd->flSideMove;
    const float v25 = norm_view_right.z * pCmd->flSideMove;
    const float v30 = norm_view_up.x * pCmd->flUpMove;
    const float v27 = norm_view_up.z * pCmd->flUpMove;
    const float v29 = norm_view_up.y * pCmd->flUpMove;

    pCmd->flForwardMove = norm_cmd_fwd.x * v24 + norm_cmd_fwd.y * v23 + norm_cmd_fwd.z * v25
        + (norm_cmd_fwd.x * v22 + norm_cmd_fwd.y * v26 + norm_cmd_fwd.z * v28)
        + (norm_cmd_fwd.y * v30 + norm_cmd_fwd.x * v29 + norm_cmd_fwd.z * v27);

    pCmd->flSideMove = norm_cmd_right.x * v24 + norm_cmd_right.y * v23 + norm_cmd_right.z * v25
        + (norm_cmd_right.x * v22 + norm_cmd_right.y * v26 + norm_cmd_right.z * v28)
        + (norm_cmd_right.x * v29 + norm_cmd_right.y * v30 + norm_cmd_right.z * v27);

    pCmd->flUpMove = norm_cmd_up.x * v23 + norm_cmd_up.y * v24 + norm_cmd_up.z * v25
        + (norm_cmd_up.x * v26 + norm_cmd_up.y * v22 + norm_cmd_up.z * v28)
        + (norm_cmd_up.x * v30 + norm_cmd_up.y * v29 + norm_cmd_up.z * v27);

    pCmd->flForwardMove = std::clamp(pCmd->flForwardMove, -450.f, 450.f);
    pCmd->flSideMove = std::clamp(pCmd->flSideMove, -450.f, 450.f);
    pCmd->flUpMove = std::clamp(pCmd->flUpMove, -320.f, 320.f);
}
Неработает, мб неправильно подкорректировал?
C++:
Expand Collapse Copy
void MovementFix::CreateMove(CUserCmd* cmd, QAngle angWishAngles) {
    Vector view_fwd, view_right, view_up, cmd_fwd, cmd_right, cmd_up;

    Math::AngleVectors(angWishAngles, view_fwd, view_right, view_up);
    Math::AngleVectors(cmd->viewangles, cmd_fwd, cmd_right, cmd_up);

    const float v8 = std::sqrtf(view_fwd.x * view_fwd.x + view_fwd.y * view_fwd.y);
    const float v10 = std::sqrtf(view_right.x * view_right.x + view_right.y * view_right.y);
    const float v12 = std::sqrtf(view_up.z * view_up.z);

    const Vector norm_view_fwd(1.f / v8 * view_fwd.x, 1.f / v8 * view_fwd.y, 0.f);
    const Vector norm_view_right(1.f / v10 * view_right.x, 1.f / v10 * view_right.y, 0.f);
    const Vector norm_view_up(0.f, 0.f, 1.f / v12 * view_up.z);

    const float v14 = std::sqrtf(cmd_fwd.x * cmd_fwd.x + cmd_fwd.y * cmd_fwd.y);
    const float v16 = std::sqrtf(cmd_right.x * cmd_right.x + cmd_right.y * cmd_right.y);
    const float v18 = std::sqrtf(cmd_up.z * cmd_up.z);

    const Vector norm_cmd_fwd(1.f / v14 * cmd_fwd.x, 1.f / v14 * cmd_fwd.y, 0.f);
    const Vector norm_cmd_right(1.f / v16 * cmd_right.x, 1.f / v16 * cmd_right.y, 0.f);
    const Vector norm_cmd_up(0.f, 0.f, 1.f / v18 * cmd_up.z);

    const float v22 = norm_view_fwd.x * cmd->forwardmove;
    const float v26 = norm_view_fwd.y * cmd->forwardmove;
    const float v28 = norm_view_fwd.z * cmd->forwardmove;
    const float v24 = norm_view_right.x * cmd->sidemove;
    const float v23 = norm_view_right.y * cmd->sidemove;
    const float v25 = norm_view_right.z * cmd->sidemove;
    const float v30 = norm_view_up.x * cmd->upmove;
    const float v27 = norm_view_up.z * cmd->upmove;
    const float v29 = norm_view_up.y * cmd->upmove;

    cmd->forwardmove = norm_cmd_fwd.x * v24 + norm_cmd_fwd.y * v23 + norm_cmd_fwd.z * v25
        + (norm_cmd_fwd.x * v22 + norm_cmd_fwd.y * v26 + norm_cmd_fwd.z * v28)
        + (norm_cmd_fwd.y * v30 + norm_cmd_fwd.x * v29 + norm_cmd_fwd.z * v27);

    cmd->sidemove = norm_cmd_right.x * v24 + norm_cmd_right.y * v23 + norm_cmd_right.z * v25
        + (norm_cmd_right.x * v22 + norm_cmd_right.y * v26 + norm_cmd_right.z * v28)
        + (norm_cmd_right.x * v29 + norm_cmd_right.y * v30 + norm_cmd_right.z * v27);

    cmd->upmove = norm_cmd_up.x * v23 + norm_cmd_up.y * v24 + norm_cmd_up.z * v25
        + (norm_cmd_up.x * v26 + norm_cmd_up.y * v22 + norm_cmd_up.z * v28)
        + (norm_cmd_up.x * v30 + norm_cmd_up.y * v29 + norm_cmd_up.z * v27);

    cmd->forwardmove = std::clamp(cmd->forwardmove, -450.f, 450.f);
    cmd->sidemove = std::clamp(cmd->sidemove, -450.f, 450.f);
    cmd->upmove = std::clamp(cmd->upmove, -320.f, 320.f);
}
 
Неработает, мб неправильно подкорректировал?
C++:
Expand Collapse Copy
void MovementFix::CreateMove(CUserCmd* cmd, QAngle angWishAngles) {
    Vector view_fwd, view_right, view_up, cmd_fwd, cmd_right, cmd_up;

    Math::AngleVectors(angWishAngles, view_fwd, view_right, view_up);
    Math::AngleVectors(cmd->viewangles, cmd_fwd, cmd_right, cmd_up);

    const float v8 = std::sqrtf(view_fwd.x * view_fwd.x + view_fwd.y * view_fwd.y);
    const float v10 = std::sqrtf(view_right.x * view_right.x + view_right.y * view_right.y);
    const float v12 = std::sqrtf(view_up.z * view_up.z);

    const Vector norm_view_fwd(1.f / v8 * view_fwd.x, 1.f / v8 * view_fwd.y, 0.f);
    const Vector norm_view_right(1.f / v10 * view_right.x, 1.f / v10 * view_right.y, 0.f);
    const Vector norm_view_up(0.f, 0.f, 1.f / v12 * view_up.z);

    const float v14 = std::sqrtf(cmd_fwd.x * cmd_fwd.x + cmd_fwd.y * cmd_fwd.y);
    const float v16 = std::sqrtf(cmd_right.x * cmd_right.x + cmd_right.y * cmd_right.y);
    const float v18 = std::sqrtf(cmd_up.z * cmd_up.z);

    const Vector norm_cmd_fwd(1.f / v14 * cmd_fwd.x, 1.f / v14 * cmd_fwd.y, 0.f);
    const Vector norm_cmd_right(1.f / v16 * cmd_right.x, 1.f / v16 * cmd_right.y, 0.f);
    const Vector norm_cmd_up(0.f, 0.f, 1.f / v18 * cmd_up.z);

    const float v22 = norm_view_fwd.x * cmd->forwardmove;
    const float v26 = norm_view_fwd.y * cmd->forwardmove;
    const float v28 = norm_view_fwd.z * cmd->forwardmove;
    const float v24 = norm_view_right.x * cmd->sidemove;
    const float v23 = norm_view_right.y * cmd->sidemove;
    const float v25 = norm_view_right.z * cmd->sidemove;
    const float v30 = norm_view_up.x * cmd->upmove;
    const float v27 = norm_view_up.z * cmd->upmove;
    const float v29 = norm_view_up.y * cmd->upmove;

    cmd->forwardmove = norm_cmd_fwd.x * v24 + norm_cmd_fwd.y * v23 + norm_cmd_fwd.z * v25
        + (norm_cmd_fwd.x * v22 + norm_cmd_fwd.y * v26 + norm_cmd_fwd.z * v28)
        + (norm_cmd_fwd.y * v30 + norm_cmd_fwd.x * v29 + norm_cmd_fwd.z * v27);

    cmd->sidemove = norm_cmd_right.x * v24 + norm_cmd_right.y * v23 + norm_cmd_right.z * v25
        + (norm_cmd_right.x * v22 + norm_cmd_right.y * v26 + norm_cmd_right.z * v28)
        + (norm_cmd_right.x * v29 + norm_cmd_right.y * v30 + norm_cmd_right.z * v27);

    cmd->upmove = norm_cmd_up.x * v23 + norm_cmd_up.y * v24 + norm_cmd_up.z * v25
        + (norm_cmd_up.x * v26 + norm_cmd_up.y * v22 + norm_cmd_up.z * v28)
        + (norm_cmd_up.x * v30 + norm_cmd_up.y * v29 + norm_cmd_up.z * v27);

    cmd->forwardmove = std::clamp(cmd->forwardmove, -450.f, 450.f);
    cmd->sidemove = std::clamp(cmd->sidemove, -450.f, 450.f);
    cmd->upmove = std::clamp(cmd->upmove, -320.f, 320.f);
}
ты его вызвал?
 
Назад
Сверху Снизу