Начинающий
- Статус
- Онлайн
- Регистрация
- 18 Июн 2020
- Сообщения
- 20
- Реакции
- 2
До апдейта было все гуд, а после все сломалсь. Обновив оффсеты, починился лишь триггер, а esp например нет :(
Менял 112 на 120, а так же 0х70 0х78 - толку нету.
Но и понимания в чем мой прокол тоже нету.
Лишь начинаю познавать этот мир...
Моё предположение, ошибки на 6 и 18 строке, но я не уверен...
Менял 112 на 120, а так же 0х70 0х78 - толку нету.
Но и понимания в чем мой прокол тоже нету.
Лишь начинаю познавать этот мир...
Моё предположение, ошибки на 6 и 18 строке, но я не уверен...
shit code:
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 });
}