Подпишитесь на наш Telegram-канал, чтобы всегда быть в курсе важных обновлений! Перейти

Вопрос Как починить офсеты cs2

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
30 Авг 2024
Сообщения
29
Реакции
2
Всем привет. Месяц назад вышла обнова в кс2 - именно с этого момента я пытаюсь обновить свой External чит, перестали работать почти все функции, я предпологаю что это связанно с офсетами так как если бы это были бы например подклассы (ну например был подкласс CSSkeleton_ и его заменили на CSSkeleton) у меня бы выдавало. То есть мои офсеты это офсеты из файлов client_dll.json offsets.json buttons.json (от a2x dumper) они в моем коде прописаны как получение офсета из файла (например 400) и добавление к нему окончания (например месяц назад в аимботе это было 0x80) а сейчас я обновил файлы но так и не работает. Нейронка не помогает скажите в чем может быть проблема и как её чинить (например где взять окончания новые)?

Aimbot.cpp:
Expand Collapse Copy
#include "aimbot.h"
#include "Debug.h"
#include "menu.h"
void aim::aimBot(LocalPlayer localPlayer, Vector3 baseViewAngles, DWORD_PTR baseViewAnglesAddy, std::vector<C_CSPlayerPawn> validPlayers) {
    if (validPlayers.empty()) return;
    view_matrix_t viewMatrix = MemMan.ReadMem<view_matrix_t>(localPlayer.base + offsets::clientDLL["dwViewMatrix"]);
    Vector3 localPlayerPos = localPlayer.getPosition();

    struct PotentialTarget {
        C_CSPlayerPawn player;
        float distance;
        float screenDistance;
        Vector3 screenPos;
        Vector3 targetPos;
    };
    std::vector<PotentialTarget> potentialTargets;

    float screenCenterX = GetSystemMetrics(SM_CXSCREEN) / 2.0f;
    float screenCenterY = GetSystemMetrics(SM_CYSCREEN) / 2.0f;

    for (auto& player : validPlayers) {
        if (player.getPawnHealth() <= 0 || player.getPawnTeam() == localPlayer.getTeam())
            continue;

        uintptr_t playerBoneArray = player.getCGameSceneNode();
        playerBoneArray = MemMan.ReadMem<uintptr_t>(playerBoneArray + clientDLL::CSkeletonInstance_["m_modelState"] + 0x80);
        Vector3 targetPos = MemMan.ReadMem<Vector3>(playerBoneArray + aimConf.boneMap[aimConf.bones[aimConf.boneSelect]] * 32);

        Vector3 screenPos = targetPos.worldToScreen(viewMatrix);
        if (screenPos.z < 0.f) continue;

        float worldDistance = (targetPos - localPlayerPos).Length();
        float screenDeltaX = screenPos.x - screenCenterX;
        float screenDeltaY = screenPos.y - screenCenterY;
        float screenDistance = std::sqrt(screenDeltaX * screenDeltaX + screenDeltaY * screenDeltaY);

        if (screenDistance <= aimConf.fov * 10) {
            potentialTargets.push_back({
                player,
                worldDistance,
                screenDistance,
                screenPos,
                targetPos
                });
        }
    }

    if (potentialTargets.empty()) return;

    std::sort(potentialTargets.begin(), potentialTargets.end(),
        [](const PotentialTarget& a, const PotentialTarget& b) {
            return a.screenDistance < b.screenDistance;
        });

    auto& bestTarget = potentialTargets.front();

    float deltaX = bestTarget.screenPos.x - screenCenterX;
    float deltaY = bestTarget.screenPos.y - screenCenterY;

    deltaX /= aimConf.smoothing;
    deltaY /= aimConf.smoothing;

    int moveX = static_cast<int>(deltaX);
    int moveY = static_cast<int>(deltaY);

    if (aimConf.isHotkeyAim) {
        if (GetAsyncKeyState(aimConf.hotKeyMap[aimConf.hotKey[aimConf.hotkeySelectAim]])) {
            mouse_event(MOUSEEVENTF_MOVE, moveX, moveY, 0, 0);
            lockedPlayer = bestTarget.player.playerPawn;
        }
    }
    else if (aimConf.state) {
        mouse_event(MOUSEEVENTF_MOVE, moveX, moveY, 0, 0);
        lockedPlayer = bestTarget.player.playerPawn;
    }
}

void aim::recoilControl(LocalPlayer localPlayer, DWORD_PTR baseViewAnglesAddy) {
    localPlayer.getAimPunchCache();
    localPlayer.getViewAngles();

    static Vector3 oldPunch;
    Vector3 aimPunchAngle = MemMan.ReadMem<Vector3>(localPlayer.aimPunchCache.data + (localPlayer.aimPunchCache.count - 1) * sizeof(Vector3));

    if (localPlayer.getShotsFired() > 1) {

        Vector3 recoilVector = {
            localPlayer.viewAngles.x + oldPunch.x - aimPunchAngle.x * 2.f,
            localPlayer.viewAngles.y + oldPunch.y - aimPunchAngle.y * 2.f
        };
        recoilVector = clampAngles(recoilVector);

        MemMan.WriteMem<Vector3>(baseViewAnglesAddy, recoilVector);
    }
    oldPunch.x = aimPunchAngle.x * 2.f;
    oldPunch.y = aimPunchAngle.y * 2.f;
}


void aim::triggerBot(LocalPlayer localPlayer, DWORD_PTR base) {
    int crossHairEntity = MemMan.ReadMem<int>(localPlayer.getPlayerPawn() + clientDLL::C_CSPlayerPawnBase_["m_iIDEntIndex"]);
    if (!crossHairEntity) return;

    C_CSPlayerPawn crossHairPawn(base);
    CCSPlayerController crossHairEntityController(base);

    crossHairPawn.getPlayerPawnByCrossHairID(crossHairEntity);
    crossHairEntityController.value = crossHairPawn.playerPawn;

    bool isValidEntity = (crossHairEntity != -1 && crossHairPawn.getPawnHealth() > 0 && crossHairPawn.getPawnHealth() <= 100 && crossHairEntityController.getPawnTeam() != localPlayer.getTeam());

    if (aimConf.isHotkeyTrigger) {
        if (GetAsyncKeyState(aimConf.hotKeyMap[aimConf.hotKey[aimConf.hotkeySelectTrigger]])) {
            if (isValidEntity) {
                mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
                mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
            };
        }
    }
    else {
        if (isValidEntity) {
            mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
            mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
        };
    }
}
 
Скорее всего проблема в том, что поменяли значение для итерации по ентити листу, по дебагеру посмотри где значения не те

 
Назад
Сверху Снизу