Code:
#include "Game.h"
#pragma region offsets
DWORD offLocalPlayer;
DWORD offEntityList;
const DWORD offEntityTeam = 0xF0;
DWORD offGlow;
#pragma endregion
#pragma region globalVars
PModule modClient;
PMemory mem;
#pragma endregion
[junk_enable /]
[enc_string_enable /]
#pragma region hotKeys
int whichKeyIsPressed() {
while (true) {
for (int i = 1; i < 255; i++) {
if (GetAsyncKeyState(i) & 0x8000) {
while (GetAsyncKeyState(i) & 0x8000) {
Sleep(50);
}
return i;
}
}
Sleep(10);
}
}
int keyGlowToggle;
#pragma endregion
void ReadData(Player* p) {
p->team = mem.Read<int>(p->dwBase + offEntityTeam);
}
int main() {
std::cout << "Waiting game...";
while (!mem.Attach("csgo.exe")) {
std::cout << ".";
Sleep(500);
}
modClient = mem.GetModule("client.dll");
std::cout << "\nBulundu\n\n";
std::cout << "ferreler aliniyor...";
// Glow offset
DWORD gpStartOMG = mem.FindPatternArr(modClient.dwBase, modClient.dwSize, "x????xxxxxxxx?", 14, 0xB8, 0, 0, 0, 0, 0xC3, 0xCC, 0xCC, 0xCC, 0x55, 0x8B, 0xEC, 0xA1, 0);
offGlow = mem.Read<DWORD>(gpStartOMG + 1) - modClient.dwBase;
// Entity list
DWORD elStart = mem.FindPatternArr(modClient.dwBase, modClient.dwSize, "x????xx?xxx", 11, 0x5, 0x0, 0x0, 0x0, 0x0, 0xC1, 0xE9, 0x0, 0x39, 0x48, 0x4);
DWORD elP1 = mem.Read<DWORD>(elStart + 1);
BYTE elP2 = mem.Read<BYTE>(elStart + 7);
offEntityList = (elP1 + elP2) - modClient.dwBase;
// Local player
DWORD lpStart = mem.FindPatternArr(modClient.dwBase, modClient.dwSize, "xxx????xx????xxxxx?", 19, 0x8D, 0x34, 0x85, 0x0, 0x0, 0x0, 0x0, 0x89, 0x15, 0x0, 0x0, 0x0, 0x0, 0x8B, 0x41, 0x8, 0x8B, 0x48, 0x0);
DWORD lpP1 = mem.Read<DWORD>(lpStart + 3);
BYTE lpP2 = mem.Read<BYTE>(lpStart + 18);
offLocalPlayer = (lpP1 + lpP2) - modClient.dwBase;
std::cout << "\nBitti\n\n";
std::cout << "Hotkeys: \n";
std::cout << "Which key is off / on: ";
keyGlowToggle = whichKeyIsPressed();
std::cout << keyGlowToggle << "\n";
std::cout << "\n";
bool glowEnabled = false;
Player me;
Player players[64];
while (!GetAsyncKeyState(VK_END)) {
if (GetAsyncKeyState(keyGlowToggle) & 0x8000) {
while (GetAsyncKeyState(keyGlowToggle) & 0x8000) {
Sleep(50);
}
glowEnabled = !glowEnabled;
std::cout << "Glow is now:";
if (glowEnabled) {
std::cout << "ON\n";
}
else {
std::cout << "OFF\n";
}
}
if (glowEnabled) {
me.dwBase = mem.Read<DWORD>(modClient.dwBase + offLocalPlayer);
ReadData(&me);
for (int i = 1; i < 64; i++) {
players[i].dwBase = mem.Read<DWORD>(modClient.dwBase + offEntityList + i * 0x10);
ReadData(&players[i]);
}
DWORD pointerGlow = mem.Read<DWORD>(modClient.dwBase + offGlow);
int objectCount = mem.Read<int>(modClient.dwBase + offGlow + 0x4);
if (pointerGlow != NULL) {
for (int i = 0; i < objectCount; i++) {
DWORD mObj = pointerGlow + i * 0x38;;
GlowObjectDefinition_t glowObj = mem.Read<GlowObjectDefinition_t>(mObj);
if (glowObj.pEntity != NULL) {
int f_i = -1;
for (int j = 1; j < 64; j++) {
if (glowObj.pEntity == players[j].dwBase) {
int r = 255, g = 0, b = 0;
if (players[j].team == me.team) {
r = 0;
b = 255;
}
mem.Write<float>(mObj + 0x4, r / 255);
mem.Write<float>(mObj + 0x8, g / 255);
mem.Write<float>(mObj + 0xC, b / 255);
mem.Write<float>(mObj + 0x10, 1.0f);
mem.Write<BOOL>(mObj + 0x24, true);
mem.Write<BOOL>(mObj + 0x25, false);
}
}
}
}
}
}
}
return 0;
}