Difference between revisions of "Memory Addresses (GTA4)"
Jump to navigation
Jump to search
Line 35: | Line 35: | ||
NOTE: work in progress | NOTE: work in progress | ||
− | <source lang="cpp"> | + | <source lang="cpp">class CWeaponInfo // size: 0x110 (1.0.7.0) |
{ | { | ||
// weapontype (index of array element) | // weapontype (index of array element) | ||
− | int weapontype; | + | int weapontype; // 0x0 | 0 |
// slottype (index of array element) | // slottype (index of array element) | ||
− | + | int slot; // 0x4 | 4 | |
// firetype (index of array element) | // firetype (index of array element) | ||
− | int firetype; | + | int firetype; // 0x8 | 8 |
// damagetype (index of array element) | // damagetype (index of array element) | ||
− | int damagetype; | + | int damagetype; // 0xC | 12 |
// group (index of array element) | // group (index of array element) | ||
− | int group; | + | 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) | // Weaponflags stored as bitflags. Refer to corresponding array. (if n-th bit is 1, array element n is true) | ||
− | DWORD weaponflags; | + | DWORD weaponflags; // 0x20 | 32 |
− | float aimaccuracy; | + | DWORD modelhash; // 0x24 | 36 |
− | float offset_x; | + | |
− | float offset_y; | + | float aimaccuracy; // 0x34 | 52 |
− | float offset_z; | + | float aimaccuracyfps; // 0x38 | 52 |
− | float crouchoffset_x; | + | |
− | float crouchoffset_y; | + | float offset_x; // 0x40 | 64 |
− | float crouchoffset_z; | + | float offset_y; // 0x44 | 68 |
− | float reticule_standing; // 0x64 | 100 | + | float offset_z; // 0x48 | 72 |
− | float reticule_ducked; | + | float crouchoffset_x; // 0x50 | 80 |
− | float reticule_scale; | + | float crouchoffset_y; // 0x54 | 84 |
− | int rumbleduration; | + | float crouchoffset_z; // 0x58 | 88 |
− | float rumbleintensity; | + | float reticule_standing; // 0x64 | 100 |
− | int pickup_regentime; | + | 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: | ||
− | + | short damage; // 0x82 | 130 | |
+ | short damagefps; // 0x84 | 132 | ||
− | short clipsize | + | short clipsize // 0x86 | 132 |
− | + | short ammomax; // 0x88 | 136 | |
− | int timebetweenshots; | + | int timebetweenshots; // 0x8C | 140 |
− | float physicsforce; | + | float physicsforce; // 0x90 | 144 |
− | int reloadtime_normal; | + | int reloadtime_normal; // 0x94 | 150 |
− | int reloadtime_fast; | + | int reloadtime_fast; // 0x98 | 154 |
− | int reloadtime_crouch; | + | 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; | + | float networkplayermod; // 0xF0 | 240 |
− | float networkpedmod; | + | 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
Contents
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
- GTAForums: Documenting GTAIV memory addresses
- GTAForums: IV Limits