Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Вопрос Фикс автострейфа supremacy

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
11 Авг 2021
Сообщения
27
Реакции
4
По немногу создаю свой чит, пастил автострейф из аирфлоу (да, да, использовать базу аирплова в 2к26), я немного упростил код от проверок if else и после инжекта и теста увидел что автострейф работает только вперёд.

Я пытался его пофиксить пару дней, и пробовал разные автострейфы но так и не понял в чём проблема.

autostrafe:
Expand Collapse Copy
void movement::autostrafe(user_cmd* cmd) noexcept
{
    if (!cmd || !cmd->commandNumber) return;

    uintptr_t client = (uintptr_t)(GetModuleHandle("client.dll"));
    uintptr_t local = *(uintptr_t*)(client + offsets::dwLocalPlayer);

    if (!local || (*(int*)(local + netvars::m_fFlags) & player_flags::FL_ONGROUND)) return;

    vector3 velocity = *(vector3*)(local + netvars::m_vecVelocity);
    float speed = velocity.length_2d();

    float x = (cmd->buttons & cmd_buttons::IN_MOVELEFT ? 1.f : 0.f) - (cmd->buttons & cmd_buttons::IN_MOVERIGHT ? 1.f : 0.f);
    float z = (cmd->buttons & cmd_buttons::IN_FORWARD ? 1.f : 0.f) - (cmd->buttons & cmd_buttons::IN_BACK ? 1.f : 0.f);

    if (cmd->buttons & cmd_buttons::IN_BACK)
        cmd->forwardMove = 0.f;

    float angle = RAD2DEG(atan2f(x, z));
    float smooth = (1.f - (0.15f * (strafe_smooth * 0.01f)));
    float forward_speed = 450.f;

    cmd->headAngles.y += math::normalize_yaw(angle);

    if (speed <= 0.5f)
    {
        cmd->forwardMove = forward_speed;
        return;
    }

    const auto diff = math::normalize_yaw(cmd->headAngles.y - RAD2DEG(atan2f(velocity.y, velocity.x)));
    cmd->forwardMove = std::clamp((5850.f / speed), -forward_speed, forward_speed);
    cmd->sideMove = (diff > 0.f) ? -forward_speed : forward_speed;

    cmd->headAngles.y = math::normalize_yaw(cmd->headAngles.y - diff * smooth);
}
 
По немногу создаю свой чит, пастил автострейф из аирфлоу (да, да, использовать базу аирплова в 2к26), я немного упростил код от проверок if else и после инжекта и теста увидел что автострейф работает только вперёд.

Я пытался его пофиксить пару дней, и пробовал разные автострейфы но так и не понял в чём проблема.

autostrafe:
Expand Collapse Copy
void movement::autostrafe(user_cmd* cmd) noexcept
{
    if (!cmd || !cmd->commandNumber) return;

    uintptr_t client = (uintptr_t)(GetModuleHandle("client.dll"));
    uintptr_t local = *(uintptr_t*)(client + offsets::dwLocalPlayer);

    if (!local || (*(int*)(local + netvars::m_fFlags) & player_flags::FL_ONGROUND)) return;

    vector3 velocity = *(vector3*)(local + netvars::m_vecVelocity);
    float speed = velocity.length_2d();

    float x = (cmd->buttons & cmd_buttons::IN_MOVELEFT ? 1.f : 0.f) - (cmd->buttons & cmd_buttons::IN_MOVERIGHT ? 1.f : 0.f);
    float z = (cmd->buttons & cmd_buttons::IN_FORWARD ? 1.f : 0.f) - (cmd->buttons & cmd_buttons::IN_BACK ? 1.f : 0.f);

    if (cmd->buttons & cmd_buttons::IN_BACK)
        cmd->forwardMove = 0.f;

    float angle = RAD2DEG(atan2f(x, z));
    float smooth = (1.f - (0.15f * (strafe_smooth * 0.01f)));
    float forward_speed = 450.f;

    cmd->headAngles.y += math::normalize_yaw(angle);

    if (speed <= 0.5f)
    {
        cmd->forwardMove = forward_speed;
        return;
    }

    const auto diff = math::normalize_yaw(cmd->headAngles.y - RAD2DEG(atan2f(velocity.y, velocity.x)));
    cmd->forwardMove = std::clamp((5850.f / speed), -forward_speed, forward_speed);
    cmd->sideMove = (diff > 0.f) ? -forward_speed : forward_speed;

    cmd->headAngles.y = math::normalize_yaw(cmd->headAngles.y - diff * smooth);
}
как минимум тебе нужно использовать viewangles вместо headAngles
 
зачем ты устанавливаешь forwardMove ?
Opai'а спроси. Но вроде чтобы было постоянное ускорение, ибо скорость теряется если ставить просто sideMove.
как минимум тебе нужно использовать viewangles вместо headAngles
Оно одинаковое, и даже если буду менять на viewangle тоже самое.
 
Оно одинаковое, и даже если буду менять на viewangle тоже самое.
давай начнем с того что оно не одинаковое
и используется для ругих вещей
Пожалуйста, авторизуйтесь для просмотра ссылки.

также у тебя как то странно высчитывается strafe angles
ака
float x = (cmd->buttons & cmd_buttons::IN_MOVELEFT ? 1.f : 0.f) - (cmd->buttons & cmd_buttons::IN_MOVERIGHT ? 1.f : 0.f); float z = (cmd->buttons & cmd_buttons::IN_FORWARD ? 1.f : 0.f) - (cmd->buttons & cmd_buttons::IN_BACK ? 1.f : 0.f);
 
Назад
Сверху Снизу