/dell

Начинающий
Статус
Оффлайн
Регистрация
5 Май 2023
Сообщения
13
Реакции[?]
1
Поинты[?]
1K
Пытась повторить norcs сделаный через setviewangles но при помощи mouse_event
функция 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);
    }
w2c

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;
        }
Сама попытка rcs
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;
    }
clampAngles результат не как не меняет
проверка if (recoilVector_pos_2d2.x != 0 || recoilVector_pos_2d2.y != 0) тоже

результат нефиг не робит
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Похожие темы
Сверху Снизу