Difference between revisions of "Memory Addresses (GTA4)"

From GTAMods Wiki
Jump to navigation Jump to search
Line 54: Line 54:
 
         float targetrange;        // 0x14 | 20
 
         float targetrange;        // 0x14 | 20
 
         float weaponrange;        // 0x18 | 24
 
         float weaponrange;        // 0x18 | 24
         int stattype;              // 0x1C | 28 (From SA, Always 0xFFFFFF)
+
         int stattype;              // 0x1C | 28
  
 
         // Weaponflags stored as bitflags. Refer to corresponding array. (if n-th bit is 1, array element n is true)
 
         // Weaponflags stored as bitflags. Refer to corresponding array. (if n-th bit is 1, array element n is true)

Revision as of 11:46, 27 April 2011

GTA4 for PC Memory Addresses

Structures

A list of Structures that occur in GTA IV's memory.

VECTOR

struct VECTOR
{
	float	x;	// 0x0 | 0
	float	y;	// 0x4 | 4
	float	z;	// 0x8 | 8
	float	unk;
};

CVector

struct CVector
{
	VECTOR	bodyHeading;		// 0x0 | 0
	VECTOR	visionHeading;		// 0x10 | 16
	VECTOR	unkVector;			// 0x20 | 32
	VECTOR	position;			// 0x30 | 48
};

CWeaponInfo

See List_of_Weapons_(GTA4) for the arrays referred to in the struct.

Array of CWeaponInfo's can be found at GTAIV.exe+0x1540A20 (1.0.7.0).

CWeaponInfo g_weaponInfos[60];

NOTE: work in progress

class CWeaponInfo // size: 0x110 (1.0.7.0)
{
        // weapontype (index of array element)
        int weapontype;            // 0x0 | 0

        // slottype (index of array element)
        int slot;                  // 0x4 | 4
	
        // firetype (index of array element)     
        int firetype;              // 0x8 | 8

        // damagetype (index of array element)
        int damagetype;            // 0xC | 12

        // group (index of array element)
        int group;                 // 0x10 | 16

        float targetrange;         // 0x14 | 20
        float weaponrange;         // 0x18 | 24
        int stattype;              // 0x1C | 28

        // Weaponflags stored as bitflags. Refer to corresponding array. (if n-th bit is 1, array element n is true)
        DWORD weaponflags;         // 0x20 | 32
        DWORD modelhash;           // 0x24 | 36

        float aimaccuracy;         // 0x34 | 52
        float aimaccuracyfps;      // 0x38 | 52

        float offset_x;            // 0x40 | 64
        float offset_y;            // 0x44 | 68
        float offset_z;            // 0x48 | 72
        float crouchoffset_x;      // 0x50 | 80
        float crouchoffset_y;      // 0x54 | 84
        float crouchoffset_z;      // 0x58 | 88
        float reticule_standing;   // 0x64 | 100
        float reticule_ducked;     // 0x68 | 104
        float reticule_scale;      // 0x6C | 108
        int rumbleduration;        // 0x70 | 112
        float rumbleintensity;     // 0x74 | 116
        int pickup_regentime;      // 0x78 | 120
        short pickup_ammoonstreet; // 0x80 | 124 
        
        // damage:
        short damage;              // 0x82 | 130
        short damagefps;           // 0x84 | 132
        
        short clipsize             // 0x86 | 132
        short ammomax;             // 0x88 | 136
        int timebetweenshots;      // 0x8C | 140
        float physicsforce;        // 0x90 | 144
        int reloadtime_normal;     // 0x94 | 150
        int reloadtime_fast;       // 0x98 | 154
        int reloadtime_crouch;     // 0x9C | 160
        int projectiletype;        // 0xA0
        int projectilefusetime;    // 0xA4

        float projectilephysicsexplodeimpactthreshold // 0xD0
        float projectilephysicsexplodeimpactwithvehiclethreshold // 0xD4
        float projectilephysicsvehiclevelocity // 0xD8

        // damage, continued:
        float networkplayermod;    // 0xF0 | 240
        float networkpedmod;       // 0xF4 | 244
        float aimingaccuracytime;  // 0xF8
        int   aimingpellets;       // 0xFC
};

Classes

A list of Classes that occur in GTA IV's memory.

scrThread

class scrThread
{
public:
	virtual ~scrThread();
	virtual int reset(int i1,int i2,int i3);
	virtual int run(int i1);
	virtual int loop(int i1);
	virtual int closeDown();

	DWORD	threadId;
	DWORD	scriptHash;
	DWORD	state;
	DWORD	IP;
	DWORD	currentFrame;
	DWORD	SP;
	DWORD	timerA;
	DWORD	timerB;
	DWORD	timerC;
	float	waitTime;
	BYTE	zPadding1[28];
	DWORD	exIP;
	DWORD	exFrameSP;
	BYTE	zPadding2[4];
	void*	stack;
	BYTE	zPadding3[4];
	void*	XLiveBuffer;
	BYTE	zPadding4[8];
	char*	exitMessage;
	char	programName[54];
	BYTE	zPadding5[14];
	bool	saveScript;
	bool	playerControlOnInMissionCleanup;
	bool	clearHelpInMissionCleanup;
	BYTE	zPadding6[1];
	bool	allowNonMinigameTextMessages;
	BYTE	zPadding7[1];
	bool	errorInScript;
	bool	canBePaused;
	BYTE	zPadding8[3];
	bool	canRemoveBlipsCreatedByAnyScript;
	BYTE	zPadding9[7];
	DWORD	flags;
};

Functions

A list of Functions that occur in GTA IV's memory.

/* 0x4581C0 */ unsigned int __cdecl CRC32(char* text,unsigned int mask); // 1.0.2.0

Variables

A list of Variables that occur in GTA IV's memory.

/* 0xF56BC4 */ BYTE AESEncryptionKey[32]; // 1.0.2.0
/* 0x15AD8B4 */ DWORD* globalVariablesPool; // 1.0.2.0

External Links