-
Автор темы
- #1
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
в общем, аимбот отказывается работать из за кода ниже. при включенном аимботе и попытке выстрела в радиус фова прицел перемещается на центр экрана, а в консоль кс го спамит сообщением в заголовке. был бы невероятно признателен за помощь :)
мувмент фикс:
клэмп:
normalize:
мувмент фикс:
void math::movement_fix(c_usercmd* cmd):
vec3_t wish_fwd, wish_right, wish_up;
math::angle_vectors_alternative(csgo::original_angles, &wish_fwd, &wish_right, &wish_up);
vec3_t view_fwd, view_right, view_up;
math::angle_vectors_alternative(cmd->viewangles, &view_fwd, &view_right, &view_up);
const float v8 = std::sqrt(wish_fwd.x * wish_fwd.x + wish_fwd.y * wish_fwd.y);
const float v10 = std::sqrt(wish_right.x * wish_right.x + wish_right.y * wish_right.y);
const float v12 = std::sqrt(wish_up.z * wish_up.z);
const vec3_t norm_wish_fwd(1.0f / v8 * wish_fwd.x, 1.0f / v8 * wish_fwd.y, 0.0f);
const vec3_t norm_wish_right(1.0f / v10 * wish_right.x, 1.0f / v10 * wish_right.y, 0.0f);
const vec3_t norm_wish_up(0.0f, 0.0f, 1.0f / v12 * wish_up.z);
const float v14 = std::sqrt(view_fwd.x * view_fwd.x + view_fwd.y * view_fwd.y);
const float v16 = std::sqrt(view_right.x * view_right.x + view_right.y * view_right.y);
const float v18 = std::sqrt(view_up.z * view_up.z);
const vec3_t norm_view_fwd(1.0f / v14 * view_fwd.x, 1.0f / v14 * view_fwd.y, 0.0f);
const vec3_t norm_view_right(1.0f / v16 * view_right.x, 1.0f / v16 * view_right.y, 0.0f);
const vec3_t norm_view_up(0.0f, 0.0f, 1.0f / v18 * view_up.z);
const float v22 = norm_wish_fwd.x * cmd->forwardmove;
const float v26 = norm_wish_fwd.y * cmd->forwardmove;
const float v28 = norm_wish_fwd.z * cmd->forwardmove;
const float v24 = norm_wish_right.x * cmd->sidemove;
const float v23 = norm_wish_right.y * cmd->sidemove;
const float v25 = norm_wish_right.z * cmd->sidemove;
const float v30 = norm_wish_up.x * cmd->upmove;
const float v27 = norm_wish_up.z * cmd->upmove;
const float v29 = norm_wish_up.y * cmd->upmove;
cmd->forwardmove = norm_view_fwd.x * v24 + norm_view_fwd.y * v23 + norm_view_fwd.z * v25 +
(norm_view_fwd.x * v22 + norm_view_fwd.y * v26 + norm_view_fwd.z * v28) +
(norm_view_fwd.y * v30 + norm_view_fwd.x * v29 + norm_view_fwd.z * v27);
cmd->sidemove = norm_view_right.x * v24 + norm_view_right.y * v23 + norm_view_right.z * v25 +
(norm_view_right.x * v22 + norm_view_right.y * v26 + norm_view_right.z * v28) +
(norm_view_right.x * v29 + norm_view_right.y * v30 + norm_view_right.z * v27);
cmd->upmove = norm_view_up.x * v23 + norm_view_up.y * v24 + norm_view_up.z * v25 +
(norm_view_up.x * v26 + norm_view_up.y * v22 + norm_view_up.z * v28) +
(norm_view_up.x * v30 + norm_view_up.y * v29 + norm_view_up.z * v27);
cmd->forwardmove = std::clamp(cmd->forwardmove, -450.0f, 450.0f);
cmd->sidemove = std::clamp(cmd->sidemove, -450.0f, 450.0f);
cmd->upmove = std::clamp(cmd->upmove, -320.0f, 320.0f);
bool math::clamp_angles(vec3_t& angles):
if (std::isfinite(angles.x) && std::isfinite(angles.y) && std::isfinite(angles.z)) {
angles.x = std::clamp(angles.x, -89.0f, 89.0f);
angles.y = std::clamp(angles.y, -180.0f, 180.0f);
angles.z = 0.0f;
return true;
}
return false;
bool math::normalize_angles(vec3_t& angles):
if (std::isfinite(angles.x) && std::isfinite(angles.y) && std::isfinite(angles.z)) {
angles.x = std::remainder(angles.x, 360.0f);
angles.y = std::remainder(angles.y, 360.0f);
return true;
}
return false;