class CPlayer;
class CVehicle;
class CPlayerInfo;
class CServer;
class CLocal;
class CPlayer
{
public:
char unk_char0[50228]; // 0x0000
DWORD dwTmpPtr0; // 0xC434
float fRecoil1; // 0xC438
char unk_char1[4]; // 0xC43C
float fRecoil2; // 0xC440
char unk_char2[4]; // 0xC444
float fRecoil3; // 0xC448
char unk_char3[68]; // 0xC44C
BYTE bIndex; // 0xC490
char unk_char4[19]; // 0xC491
float fGravityX; // 0xC4A4
float fGravityY; // 0xC4A8
float fGravityZ; // 0xC4AC
CVehicle* pVehicle; // 0xC4B0
char unk_char5[4]; // 0xC4B4
DWORD dwTmpPtr1; // 0xC4B8
DWORD dwTmpPtr2; // 0xC4BC
DWORD dwTmpPtr3; // 0xC4C0
char unk_char6[15428]; // 0xC4C4
BYTE bWeaponIndex; // 0x10108
char unk_char7[143]; // 0x10109
float fPitch; // 0x10198
char unk_char8[24]; // 0x1019C
float fYaw; // 0x101B4
char unk_char9[8]; // 0x101B8
float fPosX_; // 0x101C0
float fPosY_; // 0x101C4
float fPosZ_; // 0x101C8
char unk_char10[12]; // 0x101CC
WORD wWeapon; // 0x101D8
WORD wWeapon2; // 0x101DA
WORD wPlayerModel; // 0x101DC
WORD wSelectedSlot; // 0x101DE
char unk_char11[88]; // 0x101E0
BYTE bState; // 0x10238
char unk_char12[43]; // 0x10239
float fHeadPosX; // 0x10264
float fHeadPosY; // 0x10268
float fHeadPosZ; // 0x1026C
char unk_char13[100]; // 0x10270
float fNoFallDmg; // 0x102D4
char unk_char14[20]; // 0x102D8
float fPosX; // 0x102EC
char unk_char15[4]; // 0x102F0
float fPosY; // 0x102F4
char unk_char16[4]; // 0x102F8
float fPosZ; // 0x102FC
char unk_char17[52]; // 0x10300
}; // Size: 0x10334 (66356)
class CVehicle
{
public:
char unk_char0[56]; // 0x0000
BYTE bType; // 0x0038
char unk_char1[31]; // 0x0039
char szName[16]; // 0x0058
char unk_char2[240]; // 0x0068
BYTE bMaxSeats; // 0x0158
char unk_char3[15]; // 0x0159
BYTE bPassangers; // 0x0168
}; // Size: 0x0169 (361)
class CPlayerInfo
{
public:
char unk_char0[8]; // 0x0000
__int32 iPremium; // 0x0008
char unk_char1[716]; // 0x000C
char szName[16]; // 0x02D8
char unk_char2[984]; // 0x02E8
__int32 iPing; // 0x06C0
char unk_char3[20]; // 0x06C4
char szIP[16]; // 0x06D8
char unk_char4[132]; // 0x06E8
__int32 iLevel; // 0x076C
__int32 iExp; // 0x0770
char unk_char5[12]; // 0x0774
__int32 iDinar; // 0x0780
char unk_char6[4]; // 0x0784
__int32 iTotalKills; // 0x0788
__int32 iTotalDeaths; // 0x078C
char unk_char7[564]; // 0x0790
char szNickName[16]; // 0x09C4
char unk_char8[500]; // 0x09D4
char szClanName[16]; // 0x0BC8
char unk_char9[3988]; // 0x0BD8
__int32 iPoints; // 0x1B6C
char unk_char10[24]; // 0x1B70
__int32 iKills; // 0x1B88
__int32 iDeaths; // 0x1B8C
__int32 iFlags; // 0x1B90
__int32 iHealth; // 0x1B94
__int32 iMaxHealth; // 0x1B98
char unk_char11[4]; // 0x1B9C
__int32 iClass; // 0x1BA0
char unk_char12[140]; // 0x1BA4
BYTE bIsReady; // 0x1C30
char unk_char13[175]; // 0x1C31
BYTE bTeam; // 0x1CE0
char unk_char14[4]; // 0x1CE1
char unk_char15[19]; // 0x1CE5
}; // Size: 0x1CF8 (7416)
class CServer
{
public:
char unk_char0[36]; // 0x0000
char szServerName[16]; // 0x0024
char unk_char1[252]; // 0x0034
__int32 iPing; // 0x0130
char unk_char2[1112]; // 0x0134
__int32 iPremium; // 0x058C
char unk_char3[96]; // 0x0590
__int32 iServerTick; // 0x05F0
char unk_char4[17716]; // 0x05F4
char szServerIP[16]; // 0x4B28
char unk_char5[1003160]; // 0x4B38
DWORD dwPacket; // 0xF99D0
char unk_char6[12036]; // 0xF99D4
__int32 iGameType; // 0xFC8D8
char unk_char7[48]; // 0xFC8DC
char szRoomName[32]; // 0xFC90C
char unk_char8[1000]; // 0xFC92C
__int32 iMapNumber; // 0xFCD14
__int32 iRound; // 0xFCD18
char unk_char9[20]; // 0xFCD1C
__int32 iAutoStart; // 0xFCD30
__int32 iMaxPlayers; // 0xFCD34
char unk_char10[1064]; // 0xFCD38
__int32 iRoomMasterSlot; // 0xFD160
char unk_char11[20564]; // 0xFD164
BYTE bSlot1; // 0x1021B8
BYTE bSlot2; // 0x1021B9
BYTE bSlot3; // 0x1021BA
BYTE bSlot4; // 0x1021BB
BYTE bSlot5; // 0x1021BC
BYTE bSlot6; // 0x1021BD
BYTE bSlot7; // 0x1021BE
BYTE bSlot8; // 0x1021BF
char unk_char12[98516]; // 0x1021C0
__int32 iLevel; // 0x11A294
__int32 iExp; // 0x11A298
char unk_char13[12]; // 0x11A29C
__int32 iDinar; // 0x11A2A8
char unk_char14[4]; // 0x11A2AC
__int32 iKills; // 0x11A2B0
__int32 iDeaths; // 0x11A2B4
char unk_char15[4]; // 0x11A2B8
__int32 iInvisible; // 0x11A2BC
char unk_char16[12]; // 0x11A2C0
char szGameServer[16]; // 0x11A2CC
char unk_char17[16]; // 0x11A2DC
char szUserName[16]; // 0x11A2EC
char unk_char18[496]; // 0x11A2FC
char szNickName[16]; // 0x11A4EC
char unk_char19[500]; // 0x11A4FC
char szClanName[16]; // 0x11A6F0
char unk_char20[4348]; // 0x11A700
__int32 iRoomNumber; // 0x11B7FC
__int32 iSlot; // 0x11B800
__int32 iTeam; // 0x11B804
char unk_char21[140]; // 0x11B808
}; // Size: 0x11B894 (1161364)
class CLocal
{
public:
char unk_char0[32]; // 0x0000
float fPosX; // 0x0020
float fPosY; // 0x0024
float fPosZ; // 0x0028
char unk_char1[36]; // 0x002C
float fPitch; // 0x0050
float fYaw; // 0x0054
float fRoll; // 0x0058
char unk_char2[12]; // 0x005C
float fDown; // 0x0068
float fUp; // 0x006C
float fFovX; // 0x0070
float fFovY; // 0x0074
}; // Size: 0x0078 (120)
CPlayerInfo* CPlayerManager::GetPlayerInfoByIndex( int index )
{
if( index > 32 ) return NULL;
return (CPlayerInfo*)( 0x00A57A20 + ( index * sizeof( CPlayerInfo ) ) );
}
BYTE CPlayerManager::GetState( CPlayer* pPlayer )
{
BYTE status = pPlayer->state;
if( status == 0x47 )
return STANDS;
if( status == 0x38 || status == 0x3d || status == 0x3b || status == 0x3e || status == 0x3c )
return PRONES;
if( status == 0x4b || status == 0x4a || status == 0x4c || status == 0x4d )
return MOVES;
if( status == 0x57 || status == 0x5d || status == 0x5c || status == 0x5e || status == 0x5f )
return KNEES;
if( status == 0x46 )
return RUNS;
if( status == 0x54 )
return JUMPS;
if( status == 0x25 )
return ROLLS;
return 0;
}
if( g_pLocalPlayer ) //do some player stuff
{
g_pLocalPlayer->NoFallDmg = -2000; // no damage from falling
g_pLocalPlayer->PosY += 100; //superjumping
//....
}
if( g_pServer ) //Server stuff
{
g_pServer->Slot5 = 1; //enable slot5/6..
g_pServer->Slot6 = 1;
}
for( int i = 0; i < 32; i++ )
{
CPlayerInfo* pInfo = GetPlayerInfoByIndex( i );
//pInfo->Health
//pInfo->NickName
//pInfo->Class
//...
}
g_pLocalPlayer = (CPlayer*)*(DWORD*)0x00AA6DB8;
g_pLocal = (CLocal*)*(DWORD*)0x00A01330;
g_pServer = (CServer*)*(DWORD*)0x00A01784;
Alles unbrauchbar weil alles falsch ist.Quote:
Not tested!
Structs
FunctionsCode:class CPlayer; class CVehicle; class CPlayerInfo; class CServer; class CLocal; class CPlayer { public: char unk_char0[50228]; // 0x0000 DWORD dwTmpPtr0; // 0xC434 float fRecoil1; // 0xC438 char unk_char1[4]; // 0xC43C float fRecoil2; // 0xC440 char unk_char2[4]; // 0xC444 float fRecoil3; // 0xC448 char unk_char3[68]; // 0xC44C BYTE bIndex; // 0xC490 char unk_char4[19]; // 0xC491 float fGravityX; // 0xC4A4 float fGravityY; // 0xC4A8 float fGravityZ; // 0xC4AC CVehicle* pVehicle; // 0xC4B0 char unk_char5[4]; // 0xC4B4 DWORD dwTmpPtr1; // 0xC4B8 DWORD dwTmpPtr2; // 0xC4BC DWORD dwTmpPtr3; // 0xC4C0 char unk_char6[15428]; // 0xC4C4 BYTE bWeaponIndex; // 0x10108 char unk_char7[143]; // 0x10109 float fPitch; // 0x10198 char unk_char8[24]; // 0x1019C float fYaw; // 0x101B4 char unk_char9[8]; // 0x101B8 float fPosX_; // 0x101C0 float fPosY_; // 0x101C4 float fPosZ_; // 0x101C8 char unk_char10[12]; // 0x101CC WORD wWeapon; // 0x101D8 WORD wWeapon2; // 0x101DA WORD wPlayerModel; // 0x101DC WORD wSelectedSlot; // 0x101DE char unk_char11[88]; // 0x101E0 BYTE bState; // 0x10238 char unk_char12[43]; // 0x10239 float fHeadPosX; // 0x10264 float fHeadPosY; // 0x10268 float fHeadPosZ; // 0x1026C char unk_char13[100]; // 0x10270 float fNoFallDmg; // 0x102D4 char unk_char14[20]; // 0x102D8 float fPosX; // 0x102EC char unk_char15[4]; // 0x102F0 float fPosY; // 0x102F4 char unk_char16[4]; // 0x102F8 float fPosZ; // 0x102FC char unk_char17[52]; // 0x10300 }; // Size: 0x10334 (66356) class CVehicle { public: char unk_char0[56]; // 0x0000 BYTE bType; // 0x0038 char unk_char1[31]; // 0x0039 char szName[16]; // 0x0058 char unk_char2[240]; // 0x0068 BYTE bMaxSeats; // 0x0158 char unk_char3[15]; // 0x0159 BYTE bPassangers; // 0x0168 }; // Size: 0x0169 (361) class CPlayerInfo { public: char unk_char0[8]; // 0x0000 __int32 iPremium; // 0x0008 char unk_char1[716]; // 0x000C char szName[16]; // 0x02D8 char unk_char2[984]; // 0x02E8 __int32 iPing; // 0x06C0 char unk_char3[20]; // 0x06C4 char szIP[16]; // 0x06D8 char unk_char4[132]; // 0x06E8 __int32 iLevel; // 0x076C __int32 iExp; // 0x0770 char unk_char5[12]; // 0x0774 __int32 iDinar; // 0x0780 char unk_char6[4]; // 0x0784 __int32 iTotalKills; // 0x0788 __int32 iTotalDeaths; // 0x078C char unk_char7[564]; // 0x0790 char szNickName[16]; // 0x09C4 char unk_char8[500]; // 0x09D4 char szClanName[16]; // 0x0BC8 char unk_char9[3988]; // 0x0BD8 __int32 iPoints; // 0x1B6C char unk_char10[24]; // 0x1B70 __int32 iKills; // 0x1B88 __int32 iDeaths; // 0x1B8C __int32 iFlags; // 0x1B90 __int32 iHealth; // 0x1B94 __int32 iMaxHealth; // 0x1B98 char unk_char11[4]; // 0x1B9C __int32 iClass; // 0x1BA0 char unk_char12[140]; // 0x1BA4 BYTE bIsReady; // 0x1C30 char unk_char13[175]; // 0x1C31 BYTE bTeam; // 0x1CE0 char unk_char14[4]; // 0x1CE1 char unk_char15[19]; // 0x1CE5 }; // Size: 0x1CF8 (7416) class CServer { public: char unk_char0[36]; // 0x0000 char szServerName[16]; // 0x0024 char unk_char1[252]; // 0x0034 __int32 iPing; // 0x0130 char unk_char2[1112]; // 0x0134 __int32 iPremium; // 0x058C char unk_char3[96]; // 0x0590 __int32 iServerTick; // 0x05F0 char unk_char4[17716]; // 0x05F4 char szServerIP[16]; // 0x4B28 char unk_char5[1003160]; // 0x4B38 DWORD dwPacket; // 0xF99D0 char unk_char6[12036]; // 0xF99D4 __int32 iGameType; // 0xFC8D8 char unk_char7[48]; // 0xFC8DC char szRoomName[32]; // 0xFC90C char unk_char8[1000]; // 0xFC92C __int32 iMapNumber; // 0xFCD14 __int32 iRound; // 0xFCD18 char unk_char9[20]; // 0xFCD1C __int32 iAutoStart; // 0xFCD30 __int32 iMaxPlayers; // 0xFCD34 char unk_char10[1064]; // 0xFCD38 __int32 iRoomMasterSlot; // 0xFD160 char unk_char11[20564]; // 0xFD164 BYTE bSlot1; // 0x1021B8 BYTE bSlot2; // 0x1021B9 BYTE bSlot3; // 0x1021BA BYTE bSlot4; // 0x1021BB BYTE bSlot5; // 0x1021BC BYTE bSlot6; // 0x1021BD BYTE bSlot7; // 0x1021BE BYTE bSlot8; // 0x1021BF char unk_char12[98516]; // 0x1021C0 __int32 iLevel; // 0x11A294 __int32 iExp; // 0x11A298 char unk_char13[12]; // 0x11A29C __int32 iDinar; // 0x11A2A8 char unk_char14[4]; // 0x11A2AC __int32 iKills; // 0x11A2B0 __int32 iDeaths; // 0x11A2B4 char unk_char15[4]; // 0x11A2B8 __int32 iInvisible; // 0x11A2BC char unk_char16[12]; // 0x11A2C0 char szGameServer[16]; // 0x11A2CC char unk_char17[16]; // 0x11A2DC char szUserName[16]; // 0x11A2EC char unk_char18[496]; // 0x11A2FC char szNickName[16]; // 0x11A4EC char unk_char19[500]; // 0x11A4FC char szClanName[16]; // 0x11A6F0 char unk_char20[4348]; // 0x11A700 __int32 iRoomNumber; // 0x11B7FC __int32 iSlot; // 0x11B800 __int32 iTeam; // 0x11B804 char unk_char21[140]; // 0x11B808 }; // Size: 0x11B894 (1161364) class CLocal { public: char unk_char0[32]; // 0x0000 float fPosX; // 0x0020 float fPosY; // 0x0024 float fPosZ; // 0x0028 char unk_char1[36]; // 0x002C float fPitch; // 0x0050 float fYaw; // 0x0054 float fRoll; // 0x0058 char unk_char2[12]; // 0x005C float fDown; // 0x0068 float fUp; // 0x006C float fFovX; // 0x0070 float fFovY; // 0x0074 }; // Size: 0x0078 (120)
How 2 useCode:CPlayerInfo* CPlayerManager::GetPlayerInfoByIndex( int index ) { if( index > 32 ) return NULL; return (CPlayerInfo*)( 0x00A57A20 + ( index * sizeof( CPlayerInfo ) ) ); } BYTE CPlayerManager::GetState( CPlayer* pPlayer ) { BYTE status = pPlayer->state; if( status == 0x47 ) return STANDS; if( status == 0x38 || status == 0x3d || status == 0x3b || status == 0x3e || status == 0x3c ) return PRONES; if( status == 0x4b || status == 0x4a || status == 0x4c || status == 0x4d ) return MOVES; if( status == 0x57 || status == 0x5d || status == 0x5c || status == 0x5e || status == 0x5f ) return KNEES; if( status == 0x46 ) return RUNS; if( status == 0x54 ) return JUMPS; if( status == 0x25 ) return ROLLS; return 0; }
Credits to ZeaSCode:if( g_pLocalPlayer ) //do some player stuff { g_pLocalPlayer->NoFallDmg = -2000; // no damage from falling g_pLocalPlayer->PosY += 100; //superjumping //.... } if( g_pServer ) //Server stuff { g_pServer->Slot5 = 1; //enable slot5/6.. g_pServer->Slot6 = 1; } for( int i = 0; i < 32; i++ ) { CPlayerInfo* pInfo = GetPlayerInfoByIndex( i ); //pInfo->Health //pInfo->NickName //pInfo->Class //... } g_pLocalPlayer = (CPlayer*)*(DWORD*)0x00AA6DB8; g_pLocal = (CLocal*)*(DWORD*)0x00A01330; g_pServer = (CServer*)*(DWORD*)0x00A01784;
Quote:
struct CPlayer
{
char xUnknown1[50236];//0x00
float NoRecoil1;//0xC43C
float NoRecoil2;//0xC440
float NoRecoil3;//0xC444
char xUnknown2[69];//0xC448
BYTE index;//0xC490
char xUnknown3[22];//0xC48E
float GravityX;//0xC4A4
float GravityY;//0xC4A8
float GravityZ;//0xC4AC
char xUnknown4[12];//0xC4B0
int WeaponState;//0xC4BC
char xUnknown5[15420];//0xC4C0
float NoSpread;//0x100FC
float FastNadeBlast;//0x10100
char xUnknown6[144];//0x10104
float Pitch;//0x10194
char xUnknown7[24];//0x10198
float Yaw;//0x101B0
char xUnknown8[12];//0x101B4
float ViewX;//0x101C0
float ViewY;//0x101C4
float ViewZ;//0x101C8
char xUnknown9[12];//0x101CC
WORD Weapon1;//0x101D8
WORD Weapon2;//0x101DA
WORD Weapon3;//0x101DC
char xUnknown10[90];//0x101DE
BYTE PlayerState;//0x10238
char xUnknown11[155];//0x10239
float NoFallDamage;//0x102D4
char xUnknown12[20];//0x102D8
float PosX;//0x102EC
char xUnknown13[12];//0x102F0
float PosZ;//0x102E4
char xUnknown14[12];//0x102E8
float PosY;//0x102F4
char xUnknown15[96];//0x102F8
DWORD AutoPlant;//0x10358
DWORD AutoDefuse;//0x1035C
char xUnknown16[14];//0x10360
DWORD AutoShot;//0x1036E
char xUnknown17[106];//0x10372
float NoM134Idle;//0x103DC
};
struct CPlayerInfo//Up to date FULLY WORKING
{
char unknown0[8]; //0x0000000 (8)
int Premium; //0x0000008 (4)
char unknown1[712]; //0x000000C (2C8)
char MainName[20]; //0x00002D4 (14)
char unknown2[108]; //0x00002E8 (6C)
char FuckingShit[100]; //0x0000354 (64)
char unknown3[772]; //0x00003B8 (304)
__int32 ping; //0x00006BC (4)
char unknown4[20]; //0x00006C0 (14)
char ip[16]; //0x00006D4 (10)
char unknown5[24]; //0x00006E4 (18)
char routerip[16]; //0x00006FC (10)
char unknown6[24]; //0x000070C (18)
char ip2[16]; //0x0000724 (10)
char unknown7[56]; //0x0000734 (38)
int currentlevel; //0x000076C (4)
int exp; //0x0000770 (4)
char unknown8[12]; //0x0000774 (C)
int dinar; //0x0000780 (4)
char unknown9[4]; //0x0000784 (4)
int totalkills; //0x0000788 (4)
int totaldeaths; //0x000078C (4)
char unknown10[20]; //0x0000790 (14)
char GameServer[32]; //0x00007A4 (20)
char unknown32[512]; //0x00007C4 (200)
char name[20]; //0x00009C4 (14)
char unknown11[496]; //0x00009D8 (1F0)
char clan[48]; //0x0000BC8 (30)
char unknown12[3956]; //0x0000BF8 (F74)
int points; //0x0001B6C (4)
char unknown13[24]; //0x0001B70 (18)
int kills; //0x0001B84 (4)
int deaths; //0x0001B88 (4)
int flags; //0x0001B8C (4)
int Health; //0x0001B90 (4)
int maxhealth; //0x0001B94 (4)
char unknown14[4]; //0x0001B98 (4)
int pclass; //0x0001B9C (4)
char unknown15[140]; //0x0001BA0 (8C)
BYTE isready; //0x0001C24 (1)
char unknown16[175]; //0x0001C25 (AB)
BYTE Team; //0x0001CD0 (1)
char unknown17[23]; //0x0001CD1 (2F)
};//1CF8(7416)
struct CLocal
{
char xJumpToAdress0[32];//0x00
float PosX;//0x20
float PosY;//0x24
float PosZ;//0x28
char xJumpToAdress1[36];//0x2C
float Pitch;//0x50
float Yaw;//0x54
};
struct CMatrix
{
D3DXMATRIX Project;//0x00
D3DXMATRIX View;//0x40
};
struct CBase
{
CPlayer* plocal; //0x000000
char unknown0[1171732];//0x000004
CPlayer** player; //0x11E170
};
CPlayerInfo* GetPlayerInfo(int index)
{
if (index > 32) return NULL;
return (CPlayerInfo*)(ADR_BASEPOINTER + (index * 0x1CF8));
}
CPlayerInfo* GetGlobalInfo( int dwPlayerIndex )
{
if( dwPlayerIndex > 32 ) return 0;
return (CPlayerInfo*)(ADR_BASEPOINTER+(0x1CF8*dwPlayerInd ex));
}
INT GetLocalInfo()
{
DWORD *dwServPtr = (DWORD*)ADR_SERVERPOINTER;
return *(INT*)((*dwServPtr)+ADR_OFFSET_LOCALPLAYERSIZE);
}
CLocal* p_Local = NULL;
CBase* pBase = (CBase*)ADR_PLAYERPOINTER;
CMatrix* p_Matrix = (CMatrix*)ADR_POINTER_MATRIX;
Der Sinn einer Klasse ist, dass es Private Element gibt, auf die nur die Klassenmodule zugreifen können. Wenn du alles Public schreibst, kannst du gleich struct verwenden meiner Meinung nach.Quote:
Not tested!
Structs
FunctionsCode:class CPlayer; class CVehicle; class CPlayerInfo; class CServer; class CLocal; class CPlayer { public: char unk_char0[50228]; // 0x0000 DWORD dwTmpPtr0; // 0xC434 float fRecoil1; // 0xC438 char unk_char1[4]; // 0xC43C float fRecoil2; // 0xC440 char unk_char2[4]; // 0xC444 float fRecoil3; // 0xC448 char unk_char3[68]; // 0xC44C BYTE bIndex; // 0xC490 char unk_char4[19]; // 0xC491 float fGravityX; // 0xC4A4 float fGravityY; // 0xC4A8 float fGravityZ; // 0xC4AC CVehicle* pVehicle; // 0xC4B0 char unk_char5[4]; // 0xC4B4 DWORD dwTmpPtr1; // 0xC4B8 DWORD dwTmpPtr2; // 0xC4BC DWORD dwTmpPtr3; // 0xC4C0 char unk_char6[15428]; // 0xC4C4 BYTE bWeaponIndex; // 0x10108 char unk_char7[143]; // 0x10109 float fPitch; // 0x10198 char unk_char8[24]; // 0x1019C float fYaw; // 0x101B4 char unk_char9[8]; // 0x101B8 float fPosX_; // 0x101C0 float fPosY_; // 0x101C4 float fPosZ_; // 0x101C8 char unk_char10[12]; // 0x101CC WORD wWeapon; // 0x101D8 WORD wWeapon2; // 0x101DA WORD wPlayerModel; // 0x101DC WORD wSelectedSlot; // 0x101DE char unk_char11[88]; // 0x101E0 BYTE bState; // 0x10238 char unk_char12[43]; // 0x10239 float fHeadPosX; // 0x10264 float fHeadPosY; // 0x10268 float fHeadPosZ; // 0x1026C char unk_char13[100]; // 0x10270 float fNoFallDmg; // 0x102D4 char unk_char14[20]; // 0x102D8 float fPosX; // 0x102EC char unk_char15[4]; // 0x102F0 float fPosY; // 0x102F4 char unk_char16[4]; // 0x102F8 float fPosZ; // 0x102FC char unk_char17[52]; // 0x10300 }; // Size: 0x10334 (66356) class CVehicle { public: char unk_char0[56]; // 0x0000 BYTE bType; // 0x0038 char unk_char1[31]; // 0x0039 char szName[16]; // 0x0058 char unk_char2[240]; // 0x0068 BYTE bMaxSeats; // 0x0158 char unk_char3[15]; // 0x0159 BYTE bPassangers; // 0x0168 }; // Size: 0x0169 (361) class CPlayerInfo { public: char unk_char0[8]; // 0x0000 __int32 iPremium; // 0x0008 char unk_char1[716]; // 0x000C char szName[16]; // 0x02D8 char unk_char2[984]; // 0x02E8 __int32 iPing; // 0x06C0 char unk_char3[20]; // 0x06C4 char szIP[16]; // 0x06D8 char unk_char4[132]; // 0x06E8 __int32 iLevel; // 0x076C __int32 iExp; // 0x0770 char unk_char5[12]; // 0x0774 __int32 iDinar; // 0x0780 char unk_char6[4]; // 0x0784 __int32 iTotalKills; // 0x0788 __int32 iTotalDeaths; // 0x078C char unk_char7[564]; // 0x0790 char szNickName[16]; // 0x09C4 char unk_char8[500]; // 0x09D4 char szClanName[16]; // 0x0BC8 char unk_char9[3988]; // 0x0BD8 __int32 iPoints; // 0x1B6C char unk_char10[24]; // 0x1B70 __int32 iKills; // 0x1B88 __int32 iDeaths; // 0x1B8C __int32 iFlags; // 0x1B90 __int32 iHealth; // 0x1B94 __int32 iMaxHealth; // 0x1B98 char unk_char11[4]; // 0x1B9C __int32 iClass; // 0x1BA0 char unk_char12[140]; // 0x1BA4 BYTE bIsReady; // 0x1C30 char unk_char13[175]; // 0x1C31 BYTE bTeam; // 0x1CE0 char unk_char14[4]; // 0x1CE1 char unk_char15[19]; // 0x1CE5 }; // Size: 0x1CF8 (7416) class CServer { public: char unk_char0[36]; // 0x0000 char szServerName[16]; // 0x0024 char unk_char1[252]; // 0x0034 __int32 iPing; // 0x0130 char unk_char2[1112]; // 0x0134 __int32 iPremium; // 0x058C char unk_char3[96]; // 0x0590 __int32 iServerTick; // 0x05F0 char unk_char4[17716]; // 0x05F4 char szServerIP[16]; // 0x4B28 char unk_char5[1003160]; // 0x4B38 DWORD dwPacket; // 0xF99D0 char unk_char6[12036]; // 0xF99D4 __int32 iGameType; // 0xFC8D8 char unk_char7[48]; // 0xFC8DC char szRoomName[32]; // 0xFC90C char unk_char8[1000]; // 0xFC92C __int32 iMapNumber; // 0xFCD14 __int32 iRound; // 0xFCD18 char unk_char9[20]; // 0xFCD1C __int32 iAutoStart; // 0xFCD30 __int32 iMaxPlayers; // 0xFCD34 char unk_char10[1064]; // 0xFCD38 __int32 iRoomMasterSlot; // 0xFD160 char unk_char11[20564]; // 0xFD164 BYTE bSlot1; // 0x1021B8 BYTE bSlot2; // 0x1021B9 BYTE bSlot3; // 0x1021BA BYTE bSlot4; // 0x1021BB BYTE bSlot5; // 0x1021BC BYTE bSlot6; // 0x1021BD BYTE bSlot7; // 0x1021BE BYTE bSlot8; // 0x1021BF char unk_char12[98516]; // 0x1021C0 __int32 iLevel; // 0x11A294 __int32 iExp; // 0x11A298 char unk_char13[12]; // 0x11A29C __int32 iDinar; // 0x11A2A8 char unk_char14[4]; // 0x11A2AC __int32 iKills; // 0x11A2B0 __int32 iDeaths; // 0x11A2B4 char unk_char15[4]; // 0x11A2B8 __int32 iInvisible; // 0x11A2BC char unk_char16[12]; // 0x11A2C0 char szGameServer[16]; // 0x11A2CC char unk_char17[16]; // 0x11A2DC char szUserName[16]; // 0x11A2EC char unk_char18[496]; // 0x11A2FC char szNickName[16]; // 0x11A4EC char unk_char19[500]; // 0x11A4FC char szClanName[16]; // 0x11A6F0 char unk_char20[4348]; // 0x11A700 __int32 iRoomNumber; // 0x11B7FC __int32 iSlot; // 0x11B800 __int32 iTeam; // 0x11B804 char unk_char21[140]; // 0x11B808 }; // Size: 0x11B894 (1161364) class CLocal { public: char unk_char0[32]; // 0x0000 float fPosX; // 0x0020 float fPosY; // 0x0024 float fPosZ; // 0x0028 char unk_char1[36]; // 0x002C float fPitch; // 0x0050 float fYaw; // 0x0054 float fRoll; // 0x0058 char unk_char2[12]; // 0x005C float fDown; // 0x0068 float fUp; // 0x006C float fFovX; // 0x0070 float fFovY; // 0x0074 }; // Size: 0x0078 (120)
How 2 useCode:CPlayerInfo* CPlayerManager::GetPlayerInfoByIndex( int index ) { if( index > 32 ) return NULL; return (CPlayerInfo*)( 0x00A57A20 + ( index * sizeof( CPlayerInfo ) ) ); } BYTE CPlayerManager::GetState( CPlayer* pPlayer ) { BYTE status = pPlayer->state; if( status == 0x47 ) return STANDS; if( status == 0x38 || status == 0x3d || status == 0x3b || status == 0x3e || status == 0x3c ) return PRONES; if( status == 0x4b || status == 0x4a || status == 0x4c || status == 0x4d ) return MOVES; if( status == 0x57 || status == 0x5d || status == 0x5c || status == 0x5e || status == 0x5f ) return KNEES; if( status == 0x46 ) return RUNS; if( status == 0x54 ) return JUMPS; if( status == 0x25 ) return ROLLS; return 0; }
Credits to ZeaSCode:if( g_pLocalPlayer ) //do some player stuff { g_pLocalPlayer->NoFallDmg = -2000; // no damage from falling g_pLocalPlayer->PosY += 100; //superjumping //.... } if( g_pServer ) //Server stuff { g_pServer->Slot5 = 1; //enable slot5/6.. g_pServer->Slot6 = 1; } for( int i = 0; i < 32; i++ ) { CPlayerInfo* pInfo = GetPlayerInfoByIndex( i ); //pInfo->Health //pInfo->NickName //pInfo->Class //... } g_pLocalPlayer = (CPlayer*)*(DWORD*)0x00AA6DB8; g_pLocal = (CLocal*)*(DWORD*)0x00A01330; g_pServer = (CServer*)*(DWORD*)0x00A01784;
bool SkyPatch = false;
float origGravityZ;
if(SkyWalk != 0)
{
if(!SkyPatch)
{
origGravityZ = *(float*)(ADR_PLAYERPOINTER + OFS_GravityZ);
*(float*)(ADR_PLAYERPOINTER + OFS_GravityZ) = 0;
SkyPatch = true;
}
*(float*)(ADR_PLAYERPOINTER + OFS_Z) = (100 * SkyWalk);
}else{
if(SkyPatch)
{
*(float*)(ADR_PLAYERPOINTER + OFS_GravityZ) = origGravityZ;
SkyPatch = false;
}
}
struct cPosition
{
float x;
char JMP[8];
float z;
char JMP2[8];
float y;
};
struct CPlayer{
char JMP1[50236]; // Jump (C43C)
D3DXVECTOR3 NoRecoil;
char JMP2[96]; // Jump (C4A4)
D3DXVECTOR3 Gravity;
char JMP3[12]; // Jump (C4B8)
BYTE PlayerState; // C4B8
char JMP4[15580]; // Jump (10194)
float Pitch; // 10194
char JMP5[28]; // Jump (101B0)
float Yaw; // 101B0
char JMP6[16]; // Jump (101C0)
D3DXVECTOR3 View;
char JMP7[16]; // Jump (101D8)
WORD Weapon1; // 101D8
WORD Weapon2; // 101DA
WORD Weapon3; // 101DC
char JMP8[248]; // Jump (102D4)
float NFD; // 102D4
char JMP9[24]; // Jump (102EC)
cPosition Position;
};
struct CServer{
char JMP1[1420]; // Jump (58C)
int Prem; // 58C
char JMP2[1055788]; // Jump (1021B8)
int Slot1; // 1021B8
char JMP3[1]; // Jump (1021B9)
int Slot2; // 1021B9
char JMP4[1]; // Jump (1021BA)
int Slot3; // 1021BA
char JMP5[1]; // Jump (1021BB)
int Slot4; // 1021BB
char JMP6[1]; // Jump (1021BC)
int Slot5; // 1021BC
char JMP7[1]; // Jump (1021BD)
int Slot6; // 1021BD
char JMP8[1]; // Jump (1021BE)
int Slot7; // 1021BE
char JMP9[1]; // Jump (1021BF)
int Slot8; // 1021BF
char JMP10[98521]; // Jump (11A298)
long Level; // 11A298
char JMP11[16]; // Jump (11A2A8)
long Dinar; // 11A2A8
};
Ah ok, jetzt verstehe ich wie du das gemeint hast..Quote:
Diese Struct cPosition wird dann sozusagen an CPlayer angehängt an der Position. Ist kein großer Unterschied zu D3DXVECTOR3 bis auf das ich hier noch Jump-Chars reingepackt habe ;)