Начинающий
- Статус
- Оффлайн
- Регистрация
- 11 Авг 2021
- Сообщения
- 27
- Реакции
- 4
По немногу создаю свой чит, пастил автострейф из аирфлоу (да, да, использовать базу аирплова в 2к26), я немного упростил код от проверок if else и после инжекта и теста увидел что автострейф работает только вперёд.
Я пытался его пофиксить пару дней, и пробовал разные автострейфы но так и не понял в чём проблема.
Я пытался его пофиксить пару дней, и пробовал разные автострейфы но так и не понял в чём проблема.
autostrafe:
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);
}