Начинающий
- Статус
- Оффлайн
- Регистрация
- 14 Июл 2022
- Сообщения
- 16
- Реакции
- 0
C++:
if (!client) return;
uintptr_t vmAddr = client + cs2_dumper::offsets::client_dll::dwViewMatrix;
if (!vmAddr) return;
float (*ViewMatrix)[4][4] = (float(*)[4][4])vmAddr;
uintptr_t localPawn = *(uintptr_t*)(client + cs2_dumper::offsets::client_dll::dwLocalPlayerPawn);
uintptr_t entityList = *(uintptr_t*)(client + cs2_dumper::offsets::client_dll::dwEntityList);
int localTeam = *(int*)(client + cs2_dumper::schemas::client_dll::C_BaseEntity::m_iTeamNum);
if (!localPawn || !entityList) return;
for (int i = 1; i < 64; i++) {
uintptr_t list_entry = *(uintptr_t*)(entityList + (8 * (i >> 9) + 16));
if (!list_entry) continue;
uintptr_t controller_identity = list_entry + (112 * (i & 0x1FF));
if (!controller_identity) continue;
uintptr_t controller = *(uintptr_t*)(controller_identity);
if (controller <= 0x1000) continue;
uintptr_t namePtr = *(uintptr_t*)(controller + cs2_dumper::schemas::client_dll::CCSPlayerController::m_sSanitizedPlayerName);
const char* playerName = (namePtr > 0x1000) ? (const char*)namePtr : "?";
uint32_t pawnHandle = *(uint32_t*)(controller + cs2_dumper::schemas::client_dll::CCSPlayerController::m_hPlayerPawn);
if (pawnHandle == 0xFFFFFFFF) continue;
int pawnIndex = pawnHandle & 0x7FFF;
uintptr_t p_chunk_ptr = *(uintptr_t*)(entityList + (8 * (pawnIndex >> 9) + 16));
if (!p_chunk_ptr) continue;
uintptr_t pawn_identity = p_chunk_ptr + (112 * (pawnIndex & 0x1FF));
if (!pawn_identity) continue;
uintptr_t current_pawn = *(uintptr_t*)(pawn_identity);
if (current_pawn <= 0x1000 || current_pawn == localPawn) continue;
int currentTeamNum = *(int*)(current_pawn + cs2_dumper::schemas::client_dll::C_BaseEntity::m_iTeamNum);
if (!currentTeamNum) continue;
if (currentTeamNum == localTeam) continue;
int health = *(int*)(current_pawn + cs2_dumper::schemas::client_dll::C_BaseEntity::m_iHealth);
if (health <= 0 || health > 100) continue;