I had this laying around, it's the best way to get SFXMgr pointer.
Addresses are up2date.
These are the current classes:
Code:
class cPlayerInfo
{
public:
__int32 Index; //0x0000
union
{
cObject* pObject; //0x0004
int *Object; //0x0004
};
unsigned char bIsDead; //0x0008
char pad_0x0009[0x3]; //0x0009
__int32 TeamID; //0x000C
char pad_0x0010[0x8]; //0x0010
__int32 ClientID; //0x0018
char pad_0x001C[0xC]; //0x001C
char cName[16]; //0x0028
char pad_0x0038[0x8]; //0x0038
__int32 Kills; //0x0040
__int32 Deaths; //0x0044
__int32 KillCombo; //0x0048
__int32 TotalDeaths; //0x004C
__int32 TotalKills; //0x0050
char pad_0x0054[0x4]; //0x0054
__int32 Suicides; //0x0058
__int32 HeadShots; //0x005C
char pad_0x0060[0x174]; //0x0060
__int32 ExpReceived; //0x01D4
__int32 GPReceived; //0x01D8
char pad_0x01DC[0x84]; //0x01DC
__int32 RankID; //0x0260
char pad_0x0264[0x70]; //0x0264
__int32 CountryID; //0x02D4
char pad_0x02D8[0x30]; //0x02D8
__int32 KillAssists; //0x0308
char pad_0x030C[0x48]; //0x030C
cPlayerInfo* pPlayerPrev; //0x0354
cPlayerInfo* pPlayerNext; //0x0358
char pad_0x035C[0x2CE4]; //0x035C
};//Size=0x3040
class cCharacterFX
{
public:
char pad_0x0000[0x4]; //0x0000
float fTick; //0x0004
char pad_0x0008[0x8]; //0x0008
union
{
cObject *pObject; //0x0010
int *Object; //0x0010
};
char pad_0x0014[0x2C]; //0x0014
__int32 isPlayer; //0x0040
char pad_0x0044[0x34]; //0x0044
BYTE spacer_Unknown00; //0x0078
char pad_0x0079[0x4DF]; //0x0079
unsigned char spacer_Unknown01; //0x0558
unsigned char bIsDead; //0x0559
bool bSpawnShield; //0x055A
char pad_0x055B[0x9]; //0x055B
union
{
cHitbox *pHitbox; //0x0564
int *Hitbox; //0x0564
};
char pad_0x0568[0x64]; //0x0568
WORD Health; //0x05CC
WORD Armor; //0x05CE
char pad_0x05D0[0x2]; //0x05D0
unsigned char spacer_Unknown02; //0x05D2
unsigned char spacer_Unknown03; //0x05D3
__int32 Index; //0x05D4
char pad_0x05D8[0x6AA]; //0x05D8
};//Size=0x0C82
Engine Function:
Code:
typedef DWORD(__thiscall* oGetSFXMgr)(DWORD dwThis);
oGetSFXMgr GetSFXMgr;
* This engine function is the fastest way to get SFXMgr pointer WITHOUT GameClientShell *
Usage:
Code:
// Addresses (Up2Date)
DWORD dw_SFXThisCall = 0x37ACEAB0;
DWORD dw_SFXFunc = 0x371C7830;
// Assign Address
GetSFXMgr = (oGetSFXMgr)dw_SFXFunc;
// Call Function (& Get pointer back)
dw_SFXMgr = GetSFXMgr((*(DWORD*)dw_SFXThisCall));
// Pointer Usage
cSFXMgr *p_SFXMgr = (cSFXMgr*)dw_SFXMgr;
Credits:
- M4L1F1C