-
Автор темы
- #1
Пытась повторить norcs сделаный через setviewangles но при помощи mouse_event
функция move_to (ей двигаю мышку, работает она правильно та как аим работает правильно)
w2c
Сама попытка rcs
clampAngles результат не как не меняет
проверка if (recoilVector_pos_2d2.x != 0 || recoilVector_pos_2d2.y != 0) тоже
результат нефиг не робит
функция move_to (ей двигаю мышку, работает она правильно та как аим работает правильно)
C++:
int width = GetSystemMetrics(SM_CXSCREEN);
int height = GetSystemMetrics(SM_CYSCREEN);
auto move_to(float x, float y) -> void {
float center_x = width / 2;
float center_y = height / 2;
float smooth = 10;
float target_x = 0.f;
float target_y = 0.f;
if (x != 0.f) {
if (x > center_x) {
target_x = -(center_x - x);
target_x /= smooth;
if (target_x + center_x > center_x * 2.f) target_x = 0.f;
}
if (x < center_x) {
target_x = x - center_x;
target_x /= smooth;
if (target_x + center_x < 0.f) target_x = 0.f;
}
}
if (y != 0.f) {
if (y > center_y) {
target_y = -(center_y - y);
target_y /= smooth;
if (target_y + center_y > center_y * 2.f) target_y = 0.f;
}
if (y < center_y) {
target_y = y - center_y;
target_y /= smooth;
if (target_y + center_y < 0.f) target_y = 0.f;
}
}
mouse_event(MOUSEEVENTF_MOVE, static_cast<DWORD>(target_x), static_cast<DWORD>(target_y), 0, 0);
}
C++:
bool world_to_screen(const view_matrix_t& view_matrix, vec3_t world, vec2_t& screen) {
const view_matrix_t& m_vMatrix = view_matrix;
float w = m_vMatrix[3][0] * world.x + m_vMatrix[3][1] * world.y + m_vMatrix[3][2] * world.z + m_vMatrix[3][3];
if (w < 0.01f)
return false;
screen.x = m_vMatrix[0][0] * world.x + m_vMatrix[0][1] * world.y + m_vMatrix[0][2] * world.z + m_vMatrix[0][3];
screen.y = m_vMatrix[1][0] * world.x + m_vMatrix[1][1] * world.y + m_vMatrix[1][2] * world.z + m_vMatrix[1][3];
float invw = 1.0f / w;
screen.x *= invw;
screen.y *= invw;
float x = width / 2;
float y = height / 2;
x += 0.5 * screen.x * width + 0.5;
y -= 0.5 * screen.y * height + 0.5;
screen.x = x;
screen.y = y;
return true;
}
C++:
void run() {
const auto entity_list = m_cs2.get_entity_list();
if (!entity_list)
return;
const auto local_player = m_cs2.get_local_player();
if (!local_player)
return;
view_matrix_t view_matrix = m_cs2.get_viewmatrix();
static vec3_t oldPunch;
vec3_t aimPunchAngle = g_memory.read_t<vec3_t>(local_player->get_aim_punch_chashe().data + (local_player->get_aim_punch_chashe().count - 1) * sizeof(vec3_t));
if (local_player->get_shots_fired() > 1) {
vec3_t recoilVector = {
local_player->get_viwe_ang().x + oldPunch.x - aimPunchAngle.x * 2.f,
local_player->get_viwe_ang().y + oldPunch.y - aimPunchAngle.y * 2.f,
local_player->get_viwe_ang().z + 0
};
//recoilVector = clampAngles(recoilVector);
vec2_t recoilVector_pos_2d2{};
if (!g_sdk.world_to_screen(view_matrix, recoilVector, recoilVector_pos_2d2))
return;
//if (recoilVector_pos_2d2.x != 0 || recoilVector_pos_2d2.y != 0) {
this->move_to(recoilVector_pos_2d2.x, recoilVector_pos_2d2.y);
//}
}
oldPunch.x = aimPunchAngle.x * 2.f;
oldPunch.y = aimPunchAngle.y * 2.f;
}
проверка if (recoilVector_pos_2d2.x != 0 || recoilVector_pos_2d2.y != 0) тоже
результат нефиг не робит
Пожалуйста, авторизуйтесь для просмотра ссылки.