Originally Posted by
mmbob
It's client info with a different name .
yeah that's correct .
Code:
class cLocaleMgr
{
public:
char _0x0000[4];
__int32 Index; //0x0004
char _0x0008[8];
char pName[12]; //0x0010
char _0x001C[12];
int* Object; //0x0028
__int32 pKills; //0x002C
__int32 pDeaths; //0x0030
char _0x0034[48];
__int32 pFTMission; //0x0064 FireTeam Misson
char _0x0068[8];
__int32 pTeam; //0x0070
char _0x0074[4];
BYTE pIsDead; //0x0078
char _0x0079[307];
__int32 pRank; //0x01AC
char _0x01B0[80];
__int32 pFTScore; //0x0200 FiteTeam Score
char _0x0204[4];
__int32 pFTLongestLife; //0x0208 FireTeam LongestLife : Value / 60 = time
__int32 pFTKill; //0x020C FireTeam Kill score
char _0x0210[80];
cLocaleMgr* PlayerNext; //0x0260
};//Size=0x0264
class cClientInfoMgr
{
public:
DWORD Unk;
cLocaleMgr* First;
unsigned int LocalIndex; //0x0008
char unknown2[48];
__int32 iAlphaScore;
__int32 iBravoScore;
char unknown5[12];
__int32 iGameMode;
inline cLocaleMgr* GetClientByID( int Index )
{
cLocaleMgr* pPlayer = First;
while( pPlayer )
{
if( pPlayer->Index == Index )
return pPlayer;
pPlayer = pPlayer->PlayerNext ;
}
return NULL;
}
};
who to use :
Code:
cClientInfoMgr* ClientInfo = (cClientInfoMgr*)(*(DWORD*)UlThis\ LocaleMgr);
cLocaleMgr* pLocal = ClientInfo->GetClientByID(ClientInfo->LocalIndex);
for (int i = 0; i < 16; i++)
{
cLocaleMgr* pPlayer = ClientInfo->GetClientByID( i );
//etc...
ILocaleMgr Pattern :
Code:
DWORD cAddresses::GetMyILocaleMgr()
{
DWORD Address;
Address = Tools.FindPattern((DWORD)GetModuleHandle(L"CShell.dll"),0x72C000,(PBYTE)"\x8B\x0D\x00\x00\x00\x00\xE8\x00\x00\x00\x00\x0F\xB6\x4E\x51","xx????x????xxxx");
if(Address)
return *(DWORD*)(Address + 0x2);
return 0;
}
Have fun.