MW2 OFFSETS & STRUCTS
Since I lost interest in finishing my multihack, I might as well post my offsets & structs
Don't forget to give credits
FAQ
Q: WTF Is this?
A: This is only for cheat coding. If you don't understand it, ignore it, or if you don't know how to use them, read question 2
Q: How do I use this?
A: Learn C++: Buy some books about it & read them.
Please forgive me if an offset doesn't work, I haven't tested all of them yet, but they should be correct.
Also, it could be possible that I fucked up somewhere while copying the offsets from my hack, but everything seems OK for me
Some Functions
Code:
GetTagPos = 0x0048E6E0; GetTagPtr = 0x0056B770; RegisterTag = 0x005399E0; Com_Error = 0x569F50; DrawEngineText = 0x004C5600; ShowConsole = 0x5CB490;
Rendering Stuff
Code:
R_DrawStretchPic = 0x4BBFE0; R_RegisterShader = 0x0040FD60; R_RegisterFont = 0x004C58E0;
Network Functions
Code:
CL_WritePacket = 0x004C09C0; CL_GetUserCmd = 0x0004BBAC0; CL_GetSnapshot = 0x004BBB40; CL_ParseServerMessage = 0x004CA980;
CG Functions
Code:
CG_Obituary = 0048F2B0; CG_Trace = 0x004BB0D0; CG_Draw2D = 0x488420; CG_Init = 0x00498930; CG_FireWeapon = 0x004B9E90;
Struct Offsets
Code:
cgs_t = 0x0089D3A0; cg_t = 0x008A0E50; refdef_t = 0x90B5C8; viewMatrix_t = 0xBC7690; input_t = 0x00AB2B18; cl_cmdNumber = 0x00BC8ADC; usercmd_t = 0xBC76DC; entity_t = 0x9A4090; SIZE=0x204 clientInfo_t = 0x997860; SIZE = 0x52C
Typedefs
Code:
typedef int(__cdecl* tDrawStretchPic)(float x, float y, float w, float h, float a5, float a6, float a7, float a8, float* color, int* shader); typedef int*(__cdecl* tRegisterShader)(char* szName); typedef void(__cdecl* tCGTrace)(trace_t* trace, vec3 start, vec3 end, int clientNum, int mask); typedef void*(__cdecl* tGetTagPtr)(int clientNum); typedef int(__cdecl* tGetTagPos)(entity_t* ent, void* tagPtr, int id, float* out); typedef int(__cdecl* tRegisterTag)(char* szName); typedef void(__cdecl* tComError)(int error, const char* msg, ...); typedef void(__cdecl* tDrawEngineText)(char* text, int len, void* font, float x, float y, float scaleX, float scaleY, float* color, int style); typedef void*(__cdecl* tRegisterFont)(char* szName);
Some Structs
Code:
typedef struct
{
char pad_0x0000[0x2]; //0x0000
BYTE Valid; //0x0002
char pad_0x0003[0x15]; //0x0003
vec3 Origin; //0x0018
char pad_0x0024[0x48]; //0x0024
__int32 Pose; //0x006C
char pad_0x0070[0x18]; //0x0070
vec3 unkOrigin; //0x0088
char pad_0x0094[0x48]; //0x0094
__int32 ClientNumber; //0x00DC
__int32 EntityType; //0x00E0
char pad_0x00E4[0x4]; //0x00E4
BYTE PlayerPose; //0x00E8
BYTE Shooting; //0x00E9
BYTE Zoomed; //0x00EA
char pad_0x00EB[0x19]; //0x00EB
vec3 unkOrigin2; //0x0104
char pad_0x0110[0x98]; //0x0110
__int16 WeaponNum; //0x01A8
char pad_0x01AA[0x32]; //0x01AA
__int32 IsAlive; //0x01DC
} entity_t;
typedef struct
{
__int32 ServerTime; //0x0000 Safe
BYTE Buttons; //0x0004 Safe
BYTE Zoom; //0x0005 Maybe?
BYTE Zoom1; //0x0006 Maybe?
char pad_0x0007[0x1]; //0x0007
__int32 ViewAngles[3]; //Safe
WORD Weapon; //0x0014 Maybe?
char pad_0x0016[0x4]; //0x0016
BYTE MoveButtonX; //0x001A Safe
BYTE MoveButtonY; //0x001B Safe
char pad_0x001C[0xC]; //0x001C
}usercmd_t;
typedef struct
{
char unk1[0x8]; //0x0000
__int32 width; //0x0008 safe
__int32 height; //0x000C safe
float fovX; //0x0010 probably
float fovY; //0x0014 probably
vec3 vOrg; //0x0018 safe
vec3 viewAxis[3]; //0x0024 safe
char unk2[16]; //0x0048
char unk3[16148]; //0x0058
vec3 ViewAngles; //0x3F6C Safe
char unk4[24]; //0x3F78
float WeaponViewAngleX; //0x3F90 Maybe
float WeaponViewAngleY; //0x3F94 Maybe
} refdef_t;
typedef struct
{
__int32 Valid;
char unk[8];
char Name[16]; //0x0000
__int32 Team; //0x0010
__int32 SomeOtherTeamVar; //0x0014
} clientInfo_t;
typedef struct
{
vec3 Recoil; //0x0000 safe
vec3 Origin; //0x000C safe
char pad_0x0018[0xC]; //0x0018
float readViewAngleX; //0x0024 safe
float readViewAngleY; //0x0028 safe
char pad_0x002C[0x14]; //0x002C
float writeViewAngleX; //0x0040 safe
float writeVireAngleY; //0x0044 safe
} viewMatrix_t;
typedef struct
{
__int32 ServerTime; //0x0000
char pad_0x0004[0xC]; //0x0004
__int32 IsPlaying; //0x0010
char pad_0x0014[0x4]; //0x0014
__int32 iVelocity; //0x0018
vec3 Origin; //0x001C
vec3 Velocity; //0x0028
char pad_0x0034[0x7C]; //0x0034
__int32 Pose; //0x00B0
char pad_0x00B4[0x50]; //0x00B4
__int32 ClientNumber; //0x0104
char pad_0x0108[0x4]; //0x0108
float ViewAngleX; //0x010C
float ViewAngleY; //0x0110
char pad_0x0114[0x14]; //0x0114
__int32 unknown; //0x0128
char pad_0x012C[0x24]; //0x012C
__int32 Health; //0x0150
} cg_t;
typedef struct
{
char pad_0x0000[0x8]; //0x0000
__int32 Width; //0x0008
__int32 Height; //0x000C
char pad_0x0010[0x10]; //0x0010
char Gametype[3]; //0x0020
} cgs_t;
Don't forget to give credits

FAQ
Q: WTF Is this?
A: This is only for cheat coding. If you don't understand it, ignore it, or if you don't know how to use them, read question 2
Q: How do I use this?
A: Learn C++: Buy some books about it & read them.
Please forgive me if an offset doesn't work, I haven't tested all of them yet, but they should be correct.
Also, it could be possible that I fucked up somewhere while copying the offsets from my hack, but everything seems OK for me


