Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Вопрос Маленькая проблема

Начинающий
Начинающий
Статус
Онлайн
Регистрация
18 Июн 2020
Сообщения
20
Реакции
2
До апдейта было все гуд, а после все сломалсь. Обновив оффсеты, починился лишь триггер, а esp например нет :(

Менял 112 на 120, а так же 0х70 0х78 - толку нету.
Но и понимания в чем мой прокол тоже нету.

Лишь начинаю познавать этот мир...

Моё предположение, ошибки на 6 и 18 строке, но я не уверен...
shit code:
Expand Collapse Copy
for (int i = 1; i < 64; i++) {
    // отсюда
    uintptr_t listEntry = mem.Read<uintptr_t>(entityList + (8 * (i & 0x1FF) >> 9) + 16);
    if (!listEntry) continue;

    uintptr_t controller = mem.Read<uintptr_t>(listEntry + 112 * (i & 0x1FF));
    if (!controller) continue;
    char nameBuffer[128];
    mem.ReadRaw(controller + 0x6E8, nameBuffer, sizeof(nameBuffer));
    std::string playerName = nameBuffer;

    uint32_t pawnHandle = mem.Read<uint32_t>(controller + 0x6B4);
    if (!pawnHandle) continue;

    uintptr_t listEntry2 = mem.Read<uintptr_t>(entityList + 8 * ((pawnHandle & 0x7FFF) >> 9) + 16);
    if (!listEntry2) continue;

    uintptr_t pawnAddr = mem.Read<uintptr_t>(listEntry2 + 112 * (pawnHandle & 0x1FF));        
    if (!pawnAddr || pawnAddr == localPlayer) continue;
    // сюда

    // get weapon
    std::string weaponName = "Unknown";
    uintptr_t weaponService = mem.Read<uintptr_t>(pawnAddr + sch::C_BasePlayerPawn::m_pWeaponServices);
    if (weaponService) {
        uintptr_t activeWeaponHandle = mem.Read<uintptr_t>(weaponService + sch::CPlayer_WeaponServices::m_hActiveWeapon);
        if (activeWeaponHandle && activeWeaponHandle != 0xFFFFFFFF) {
            uint32_t weaponIndex = activeWeaponHandle & 0x7FFF;
            uint32_t weaponChunk = weaponIndex >> 9;
            uint32_t weaponInChunk = weaponIndex & 0x1FF;

            uintptr_t weaponListEntry = mem.Read<uintptr_t>(entityList + 0x10 + 0x8 * weaponChunk);
            if (weaponListEntry) {
                uintptr_t weaponEntity = mem.Read<uintptr_t>(weaponListEntry + 0x70 * weaponInChunk);
                if (weaponEntity) {
                    uintptr_t attributeManager = weaponEntity + sch::C_EconEntity::m_AttributeManager;
                    uint16_t itemDefIndex = mem.Read<uint16_t>(attributeManager + sch::C_AttributeContainer::m_Item + sch::C_EconItemView::m_iItemDefinitionIndex);
                    weaponName = weapon_names::getWeaponName(itemDefIndex);
                }
            }
        }
    }

    int health = mem.Read<int>(pawnAddr + sch::C_BaseEntity::m_iHealth);
    int armour = mem.Read<int>(pawnAddr + sch::C_CSPlayerPawn::m_ArmorValue);
    int team = mem.Read<int>(pawnAddr + sch::C_BaseEntity::m_iTeamNum);
    if (health <= 0 || health > 100 || team == myTeam) continue;

    uintptr_t sceneNode = mem.Read<uintptr_t>(pawnAddr + 0x330);
    Vector3 origin = mem.Read<Vector3>(sceneNode + 0xD0);

    std::map<int, BoneJoint> tempBones;
    uintptr_t boneArray = mem.Read<uintptr_t>(sceneNode + 0x210);
    if (boneArray) {
        char buffer[4000];
        if (mem.ReadRaw(boneArray, buffer, sizeof(buffer))) {
            for (int id : boneIds) {
                Vector3 bPos = *(Vector3*)(buffer + (id * 32));
                tempBones[id] = { bPos, false, {0, 0} };
            }
        }
    }

    tempEntities.push_back({ pawnAddr, origin, {origin.x, origin.y, origin.z + 75.f}, health, team, tempBones, playerName, armour, weaponName });
}
 
Назад
Сверху Снизу