Difference between revisions of "Memory Addresses (GTA4)"

From GTAMods Wiki
Jump to navigation Jump to search
Line 35: Line 35:
 
NOTE: work in progress
 
NOTE: work in progress
  
<source lang="cpp">struct CWeaponInfo // size: 0x110 (1.0.7.0)
+
<source lang="cpp">class CWeaponInfo // size: 0x110 (1.0.7.0)
 
{
 
{
 
         // weapontype (index of array element)
 
         // weapontype (index of array element)
         int weapontype;         // 0x0 | 0
+
         int weapontype;           // 0x0 | 0
  
 
         // slottype (index of array element)
 
         // slottype (index of array element)
    int slot;               // 0x4 | 4
+
        int slot;                 // 0x4 | 4
 
 
 
         // firetype (index of array element)     
 
         // firetype (index of array element)     
         int firetype;           // 0x8 | 8
+
         int firetype;             // 0x8 | 8
  
 
         // damagetype (index of array element)
 
         // damagetype (index of array element)
         int damagetype;         // 0xC | 12
+
         int damagetype;           // 0xC | 12
  
 
         // group (index of array element)
 
         // group (index of array element)
         int group;               // 0x10 | 16
+
         int group;                 // 0x10 | 16
 +
 
 +
        float targetrange;        // 0x14 | 20
 +
        float weaponrange;        // 0x18 | 24
 +
        int stattype;              // 0x1C | 28 (From SA, Always 0xFFFFFF)
  
        float targetrange;      // 0x14 | 20
 
        float weaponrange;      // 0x18 | 24
 
        0xFFFFFF // 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)
         DWORD weaponflags;       // 0x20 | 32
+
         DWORD weaponflags;         // 0x20 | 32
         float aimaccuracy;       // 0x34 | 52
+
        DWORD modelhash;          // 0x24 | 36
         float offset_x;         // 0x40 | 64
+
 
         float offset_y;         // 0x44 | 68
+
         float aimaccuracy;         // 0x34 | 52
         float offset_z;         // 0x48 | 72
+
        float aimaccuracyfps;      // 0x38 | 52
         float crouchoffset_x;   // 0x50 | 80
+
 
         float crouchoffset_y;   // 0x54 | 84
+
         float offset_x;           // 0x40 | 64
         float crouchoffset_z;   // 0x58 | 88
+
         float offset_y;           // 0x44 | 68
         float reticule_standing; // 0x64 | 100
+
         float offset_z;           // 0x48 | 72
         float reticule_ducked;   // 0x68 | 104
+
         float crouchoffset_x;     // 0x50 | 80
         float reticule_scale;   // 0x6C | 108
+
         float crouchoffset_y;     // 0x54 | 84
         int rumbleduration;     // 0x70 | 112
+
         float crouchoffset_z;     // 0x58 | 88
         float rumbleintensity;   // 0x74 | 116
+
         float reticule_standing;   // 0x64 | 100
         int pickup_regentime;   // 0x78 | 120  
+
         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:
 
         // damage:
         int damage;              // 0x82 | 130
+
         short damage;              // 0x82 | 130
 +
        short damagefps;          // 0x84 | 132
 
          
 
          
         short clipsize           // 0x86 | 132
+
         short clipsize             // 0x86 | 132
         int ammomax;            // 0x88 | 136
+
         short ammomax;            // 0x88 | 136
         int timebetweenshots;   // 0x8C | 140
+
         int timebetweenshots;     // 0x8C | 140
         float physicsforce;     // 0x90 | 144
+
         float physicsforce;       // 0x90 | 144
         int reloadtime_normal;   // 0x94 | 150
+
         int reloadtime_normal;     // 0x94 | 150
         int reloadtime_fast;     // 0x98 | 154
+
         int reloadtime_fast;       // 0x98 | 154
         int reloadtime_crouch;   // 0x9C | 160
+
         int reloadtime_crouch;     // 0x9C | 160
 +
        int projectiletype;        // 0xA0
 +
        int projectilefusetime;    // 0xA4
 +
 
 +
        float projectilephysicsexplodeimpactthreshold // 0xD0
 +
        float projectilephysicsexplodeimpactwithvehiclethreshold // 0xD4
 +
        float projectilephysicsvehiclevelocity // 0xD8
  
 
         // damage, continued:
 
         // damage, continued:
         float networkplayermod; // 0xF0 | 240
+
         float networkplayermod;   // 0xF0 | 240
         float networkpedmod;     // 0xF4 | 244
+
         float networkpedmod;       // 0xF4 | 244
 +
        float aimingaccuracytime;  // 0xF8
 +
        int  aimingpellets;      // 0xFC
 
};</source>
 
};</source>
  

Revision as of 14:34, 26 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 (From SA, Always 0xFFFFFF)

        // 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