Addresses -
Code:
#define ADDR_TAGS1 0x372FC62A
#define ADDR_TAGS2 0x372FC6AD
#define ADDR_GETPLAYERBYINDEX 0x371549E0
#define ADDR_LOCALPLAYER 0x37155860
#define ADDR_CLIENTINFO 0x377D952C
#define ADDR_MTBWCRET 0x373CE197
#define ADDR_LTCLIENT 0x377DA848
#define ADDR_WEAPONMGR 0x378208BC
#define ADDR_LOCALPTR 0x37826730
#define ADDR_BUILDFONT 0x3757B680
#define ADDR_FILLFONT 0x3757C310
#define ADDR_FONTECX 0x3783776C
#define ADDR_GETFONTHAND 0x37483B30
#define ADDR_GETCONSOLEINT 0x3738CE00
#define ADDR_GCS 0x37823F50
#define ADDR_LTCOMMON 0x3781EE68
#define ADDR_S_BULLETS 0x3741BFED
#define ADDR_REMOTEKILL1 0x37421741
#define ADDR_REMOTEKILL2 0x37421742
#define ADDR_REMOTEKILL3 0x37421AC1
#define ADDR_REMOTEKILL4 0x37421AC2
#define ADDR_WEAPON_RANGE1 0x37421619
#define ADDR_WEAPON_RANGE2 0x37421999
#define ADDR_RAPIDFIRE1 0x37418F27
#define ADDR_RAPIDFIRE2 0x3742208E
#define ADDR_RAPIDFIRE3 0x3741DF07
#define ADDR_RAPIDFIRE4 0x37422095
#define ADDR_RAPIDFIRE5 0x37421EC8
#define ADDR_FORCEFPS 0x377DA8D8
#define ADDR_L***BASE 0x377DA830
#define ADDR_GAMEMODE 0x377FD148
#define OFF_FPS 0x14EF8
#define ADDR_W2S 0x4915C0
#define ADDR_INTERSECT 0x470C90
#define ADDR_D3D 0x9116A0
#define ADDR_DRAWPRIM 0x805774
#define ADDR_CURSORCENTER 0x7EFA4C
#define ADDR_SETCVAR 0x486010
Functions -
Code:
int gameMode()
{
return *(int*)ADDR_GAMEMODE;
}
typedef bool (*IsConnected_t)(void);
bool inGame()
{
DWORD* LTBase = (DWORD*)ADDR_LTCLIENT;
IsConnected_t pConnected = *(IsConnected_t*)(*LTBase + 0x8C);
return pConnected();
}
D3DXVECTOR3 IntToObject(int* obj)
{
return *(D3DXVECTOR3*)(obj + 0x4);
}
bool ValidPointer(void* p)
{
return !IsBadReadPtr(p, 4) && p;
}
void SetLocalPlayerPosition(int* Int)
{
D3DXVECTOR3 Pos = IntToObject(Int);
DWORD dwClientFxEntry = (DWORD)GetModuleHandleA(MODULE_CLIENTFX);
DWORD dwClass = *(DWORD*)(dwClientFxEntry + 0x66F34);
if(!dwClass) return;
*(float*)(dwClass + 0xC8) = (Pos.x);
*(float*)(dwClass + 0xCC) = (Pos.y);
*(float*)(dwClass + 0xD0) = (Pos.z);
}
void MemEdit(PVOID dwAdd, void *val, int bytes)
{
DWORD d, ds;
VirtualProtect(dwAdd, bytes, PAGE_EXECUTE_READWRITE, &d);
memcpy(dwAdd, val, bytes);
VirtualProtect(dwAdd,bytes,d,&ds);
}
Good Telekill -
Code:
DWORD ulThis;
PlayerInfo* pPlayer;
PlayerInfo* pLocal;
typedef PlayerInfo* (__thiscall *lpGetPlayerByIndex)(DWORD ulThis,int index, int unk);
lpGetPlayerByIndex GetPlayerByIndex;
typedef PlayerInfo* (__thiscall *lpGetLocalPlayer)(DWORD ulThis);
lpGetLocalPlayer GetLocalPlayer;
bool gotTarget, TKInitiated;
void DoTelekill(int Status)
{
if(Status)
{
if(inGame())
{
if(!TKInitiated)
{
GetPlayerByIndex = (lpGetPlayerByIndex)(ADDR_GETPLAYERBYINDEX);
ulThis = *(DWORD*)(ADDR_CLIENTINFO);
GetLocalPlayer = (lpGetLocalPlayer)(ADDR_LOCALPLAYER);
TKInitiated = true;
return;
}
else
{
pLocal = GetLocalPlayer(ulThis);
if(!gotTarget)
{
Target++;
if(Target > 16)
Target = 0;
pPlayer = GetPlayerByIndex(ulThis, Target, 0);
if(pLocal && Tools.ValidPointer(pLocal) && pPlayer && Tools.ValidPointer(pPlayer) && pPlayer->pTeam != pLocal->pTeam && Player->pName != pLocal->pName && !pPlayer->pIsDead && !pLocal->pIsDead)
gotTarget = true;
else return;
}
else
{
if(pLocal && Tools.ValidPointer(pLocal) && pPlayer && Tools.ValidPointer(pPlayer) && pPlayer->pTeam != pLocal->pTeam && Player->pName != pLocal->pName && !pPlayer->pIsDead && !pLocal->pIsDead)
{
if(Tools.Hotkey(0x58, true))
SetLocalPlayerPosition(pPlayer->Object);
if(Tools.Hotkey(0x43))
{
gotTarget = false;
return;
}
}
else
{
gotTarget = false;
return;
}
}
}
}
else
{
TKInitiated = false;
gotTarget = false;
}
}
else
{
gotTarget = false;
return;
}
}
Good Rapid Fire-
Code:
bool rRapidfire, SetRapidFire;
float EndWait;
void DoRapidFire(int Status)
{
if(Status)
{
if(GetAsyncKeyState(VK_MBUTTON)<0)
{
if(clock() < EndWait)
{
MemEdit((PBYTE)ADDR_RAPIDFIRE1, (PBYTE)"\x74\x09", 2);
MemEdit((PBYTE)ADDR_RAPIDFIRE2, (PBYTE)"\x80\xBE\xE0\x00\x00\x00\x00", 7);
MemEdit((PBYTE)ADDR_RAPIDFIRE3, (PBYTE)"\x7E\x15", 2);
MemEdit((PBYTE)ADDR_RAPIDFIRE4, (PBYTE)"\x74\x3E", 2);
MemEdit((PBYTE)ADDR_RAPIDFIRE5, (PBYTE)"\x8B\x86\xEC\x00\x00\x00", 6);
}
else
{
EndWait = clock() + 0.09 * CLOCKS_PER_SEC;
MemEdit((PBYTE)ADDR_RAPIDFIRE1, (PBYTE)"\x90\x90", 2);
MemEdit((PBYTE)ADDR_RAPIDFIRE2, (PBYTE)"\x90\x90\x90\x90\x90\x90\x90", 7);
MemEdit((PBYTE)ADDR_RAPIDFIRE3, (PBYTE)"\x90\x90", 2);
MemEdit((PBYTE)ADDR_RAPIDFIRE4, (PBYTE)"\x90\x90", 2);
MemEdit((PBYTE)ADDR_RAPIDFIRE5, (PBYTE)"\x90\x90\x90\x90\x90\x90", 6);
}
SetRapidFire = true;
}
else
{
if(SetRapidFire)
{
MemEdit((PBYTE)ADDR_RAPIDFIRE1, (PBYTE)"\x74\x09", 2);
MemEdit((PBYTE)ADDR_RAPIDFIRE2, (PBYTE)"\x80\xBE\xE0\x00\x00\x00\x00", 7);
MemEdit((PBYTE)ADDR_RAPIDFIRE3, (PBYTE)"\x7E\x15", 2);
MemEdit((PBYTE)ADDR_RAPIDFIRE4, (PBYTE)"\x74\x3E", 2);
MemEdit((PBYTE)ADDR_RAPIDFIRE5, (PBYTE)"\x8B\x86\xEC\x00\x00\x00", 6);
SetRapidFire = false;
}
}
rRapidfire = true;
}
else
{
if(rRapidfire)
{
MemEdit((PBYTE)ADDR_RAPIDFIRE1, (PBYTE)"\x74\x09", 2);
MemEdit((PBYTE)ADDR_RAPIDFIRE2, (PBYTE)"\x80\xBE\xE0\x00\x00\x00\x00", 7);
MemEdit((PBYTE)ADDR_RAPIDFIRE3, (PBYTE)"\x7E\x15", 2);
MemEdit((PBYTE)ADDR_RAPIDFIRE4, (PBYTE)"\x74\x3E", 2);
MemEdit((PBYTE)ADDR_RAPIDFIRE5, (PBYTE)"\x8B\x86\xEC\x00\x00\x00", 6);
rRapidfire = false;
}
}
}
Credits -
Gellin`
0xE9
Atomic`