Game Client (BO2): Difference between revisions
mNo edit summary |
No edit summary |
||
| (3 intermediate revisions by 2 users not shown) | |||
| Line 51: | Line 51: | ||
}; | }; | ||
struct | /* playerState_s->stats[4] */ | ||
enum statIndex_t | |||
{ | |||
STAT_HEALTH = 0x0, | |||
STAT_DEAD_YAW = 0x1, | |||
STAT_MAX_HEALTH = 0x2, | |||
STAT_SPAWN_COUNT = 0x3, | |||
MAX_STATS = 0x4, | |||
}; | |||
struct PlayerVehicleState | |||
{ | { | ||
float origin[3];//0 | float origin[3];//0 | ||
| Line 63: | Line 73: | ||
int entity;//0x48 | int entity;//0x48 | ||
int flags;//0x4C | int flags;//0x4C | ||
bool fullPhysics | |||
}; | }; | ||
| Line 82: | Line 93: | ||
int transIndex; //0x8 | int transIndex; //0x8 | ||
int flags; //0xC | int flags; //0xC | ||
}; | |||
struct objective_t | |||
{ | |||
objectiveState_t state; | |||
vec3_t origin; | |||
__int16 entNum; | |||
vec2_t size; | |||
int icon; | |||
__int16 ownerNum; | |||
unsigned __int16 name; | |||
__int16 teamMask; | |||
char progress; | |||
int clientUseMask[1]; | |||
char gamemodeFlags; | |||
char flags; | |||
char teamNum; | |||
}; | |||
struct PlayerHeldWeapon | |||
{ | |||
int weapon; | |||
int options; | |||
float heatPercent; | |||
int fuelTankTime; | |||
int adsZoomSelect; | |||
bool overHeating; | |||
bool needsRechamber; | |||
bool heldBefore; | |||
bool quickReload; | |||
bool blockWeaponPickup; | |||
char model; | |||
}; | |||
struct AmmoPool | |||
{ | |||
int count; | |||
}; | |||
struct AmmoClip | |||
{ | |||
int count; | |||
}; | }; | ||
| Line 93: | Line 146: | ||
int otherFlags;//0x18 | int otherFlags;//0x18 | ||
int pm_time;//0x1C | int pm_time;//0x1C | ||
unsigned int loopSoundId;//0x20 | |||
int loopSoundFade;//0x24 | |||
vec3_t origin;//0x28 | vec3_t origin;//0x28 | ||
vec3_t velocity;//0x34 | vec3_t velocity;//0x34 | ||
int | int remoteEyesEnt; //0x40 | ||
int | int remoteEyesTagnam; //0x44 | ||
int remoteControlEnt; //0x48 | |||
int weaponTime;//0x4C | int weaponTime;//0x4C | ||
int weaponDelay;//0x50 | int weaponDelay;//0x50 | ||
int weaponTimeLeft;//0x54 | int weaponTimeLeft;//0x54 | ||
int weaponDelayLeft;//0x58 | |||
int weaponIdleTime;//0x5C | int weaponIdleTime;//0x5C | ||
int grenadeTimeLeft;//0x60 | int grenadeTimeLeft;//0x60 | ||
| Line 110: | Line 162: | ||
int throwBackGrenadeTimeLeft;//0x68 | int throwBackGrenadeTimeLeft;//0x68 | ||
int weaponRestrictKickTime;//0x6C | int weaponRestrictKickTime;//0x6C | ||
bool mountAvailable;//0x70 | |||
bool bRunLeftGun;//0x71 | |||
bool bCarryingTurret;//0x72 | |||
float mountPos[3];//0x74 | |||
float mountDir;//0x80 | |||
bool bThirdPerson;//0x84 | bool bThirdPerson;//0x84 | ||
int foliageSoundTime;//0x88 | int foliageSoundTime;//0x88 | ||
| Line 120: | Line 176: | ||
int moverEntityNum;//0xA8 | int moverEntityNum;//0xA8 | ||
int moverTimestamp;//0xAC | int moverTimestamp;//0xAC | ||
int groundType;//0xB0 | |||
float vLadderVec[3];//0xB4 | float vLadderVec[3];//0xB4 | ||
int jumpTime;//0xC0 | int jumpTime;//0xC0 | ||
| Line 128: | Line 184: | ||
int legsTimer;//0xD0 | int legsTimer;//0xD0 | ||
int torsoTimer;//0xD4 | int torsoTimer;//0xD4 | ||
short legsAnim;//0xD8 | |||
short torsoAnim;//0xDA | |||
int legsAnimDuration;//0xE0 | |||
int torsoAnimDuration | |||
int damageTimer;//0xE4 | int damageTimer;//0xE4 | ||
int damageDuration;//0xE8 | int damageDuration;//0xE8 | ||
| Line 139: | Line 196: | ||
int eFlags;//0xFC | int eFlags;//0xFC | ||
int eFlags2;//0x100 | int eFlags2;//0x100 | ||
PlayerVehicleState vehicleState;//0x104 | |||
short predictableEventSequence;//0x158 | short predictableEventSequence;//0x158 | ||
short predictableEventSequenceOld;//0x15A | short predictableEventSequenceOld;//0x15A | ||
int predictableEvents[4];//0x15C | int predictableEvents[4];//0x15C | ||
int predictableEventParms[4];//0x16C | unsigned int predictableEventParms[4];//0x16C | ||
short unpredictableEventSequence; //0x17C | short unpredictableEventSequence; //0x17C | ||
short oldUnpredictableEventSequence;//0x17E | short oldUnpredictableEventSequence;//0x17E | ||
int unpredictableEvents[4];//0x180 | int unpredictableEvents[4];//0x180 | ||
int unpredictableEventParms[4];//0x190 | unsigned int unpredictableEventParms[4];//0x190 | ||
int clientNum;//0x1A0 | int clientNum;//0x1A0 | ||
int offHandWeapon;//0x1A4 | int offHandWeapon;//0x1A4 | ||
| Line 156: | Line 212: | ||
int momentum;//0x1B4 | int momentum;//0x1B4 | ||
int weapon;//0x1B8 | int weapon;//0x1B8 | ||
int lastStandPrevWeapon;//0x1BC | |||
int lastWeaponAltModeSwitch;//0x1C0 | int lastWeaponAltModeSwitch;//0x1C0 | ||
int stowedWeapon;//0x1C4 | |||
char unusedCompatibilityPadding;//0x1C8 | |||
unsigned int meleeWeapon;//0x1CC | unsigned int meleeWeapon;//0x1CC | ||
int weaponstate;//0x1D0 | int weaponstate;//0x1D0 | ||
int weaponstateLeft;//0x1D4 | int weaponstateLeft;//0x1D4 | ||
unsigned int weaponShotCount;//0x1D8 | unsigned int weaponShotCount;//0x1D8 | ||
int weaponShotCountLeft;//0x1DC | unsigned int weaponShotCountLeft;//0x1DC | ||
float fWeaponPosFrac;//0x1E0 | float fWeaponPosFrac;//0x1E0 | ||
int adsDelayTime;//0x1E4 | int adsDelayTime;//0x1E4 | ||
int spreadOverride;//0x1E8 | int spreadOverride;//0x1E8 | ||
int spreadOverrideState;//0x1EC | int spreadOverrideState;//0x1EC | ||
float weaponSpinLerp;//0x1F0 | |||
int viewmodelIndex;//0x1F4 | int viewmodelIndex;//0x1F4 | ||
float viewangles[3];//0x1F8 | float viewangles[3];//0x1F8 | ||
| Line 183: | Line 239: | ||
int damagePitch;//0x230 | int damagePitch;//0x230 | ||
int damageCount;//0x234 | int damageCount;//0x234 | ||
int | int stats[4]; | ||
PlayerHeldWeapon heldWeapon[0xF];//0x248 | |||
AmmoPool ammo[0xF];//0x3EC | |||
AmmoClip ammoClip[0xF];//0x428 | |||
float proneDirection;//0x464 | float proneDirection;//0x464 | ||
float proneDirectionPitch;//0x468 | float proneDirectionPitch;//0x468 | ||
| Line 205: | Line 252: | ||
int vehicleAnimBoneIndex;//0x480 | int vehicleAnimBoneIndex;//0x480 | ||
int linkFlags;//0x484 | int linkFlags;//0x484 | ||
float linkAngles[3];//0x488 | |||
int cursorHint;//0x494 | int cursorHint;//0x494 | ||
int cursorHintString;//0x498 | int cursorHintString;//0x498 | ||
| Line 211: | Line 258: | ||
int cursorHintWeapon;//0x4A0 | int cursorHintWeapon;//0x4A0 | ||
int iCompassPlayerInfo;//0x4A4 | int iCompassPlayerInfo;//0x4A4 | ||
int spyplaneTypeEnabled;//0x4A8 | unsigned int spyplaneTypeEnabled;//0x4A8 | ||
int satelliteTypeEnabled;//0x4AC | unsigned int satelliteTypeEnabled;//0x4AC | ||
int locationSelectionInfo;//0x4B0 | int locationSelectionInfo;//0x4B0 | ||
int locationSelectionType;//0x4B4 | int locationSelectionType;//0x4B4 | ||
| Line 234: | Line 281: | ||
int vehicleAnimStage;//0x520 | int vehicleAnimStage;//0x520 | ||
int vehicleEntryPoint;//0x524 | int vehicleEntryPoint;//0x524 | ||
int scriptedAnim;//0x528 | unsigned int scriptedAnim;//0x528 | ||
int scriptedAnimTime;//0x52C | |||
int meleeChargeEnt;//0x530 | int meleeChargeEnt;//0x530 | ||
int meleeChargeDist;//0x534 | int meleeChargeDist;//0x534 | ||
| Line 241: | Line 288: | ||
int weapLockFlags;//0x53C | int weapLockFlags;//0x53C | ||
int weapLockedEntnum;//0x540 | int weapLockedEntnum;//0x540 | ||
unsigned int airburstMarkDistance;//0x544 | |||
int perks[2];//0x548 | unsigned int perks[2];//0x548 | ||
int actionSlotType[4];//0x550 | int actionSlotType[4];//0x550 | ||
int actionSlotParam[4];//0x560 | int actionSlotParam[4];//0x560 | ||
| Line 267: | Line 314: | ||
char unk12[0xC];//0x5B8 | char unk12[0xC];//0x5B8 | ||
int adsZoomSelect;//0x5C4 | int adsZoomSelect;//0x5C4 | ||
int adsZoomLatchTime;//0x5C8 | |||
bool adsZoomLatchState;//0x5CC | |||
int adsPrevZoomSelect;//0x5D0 | int adsPrevZoomSelect;//0x5D0 | ||
int adsPrevZoomSelectTime;//0x5D4 | int adsPrevZoomSelectTime;//0x5D4 | ||
| Line 274: | Line 321: | ||
float visionSetLerpRatio;//0x5DC | float visionSetLerpRatio;//0x5DC | ||
int poisoned;//0x5E0 | int poisoned;//0x5E0 | ||
int | int binoculars;//0x5E4 | ||
int scriptCursorHintString; //0x5E8 | |||
objective_t objective[32]; | |||
int deltaTime; //0xBEC | int deltaTime; //0xBEC | ||
int killCamEntity; //0xBF0 | int killCamEntity; //0xBF0 | ||
int killCamTargetEntity; //0xBF4 | int killCamTargetEntity; //0xBF4 | ||
int | int introShotsFired; //0xBF8 | ||
struct | struct | ||
{ | { | ||
hudelem_s current[31]; //0xBFC | hudelem_s current[31]; //0xBFC | ||
hudelem_s archival[31]; // | hudelem_s archival[31]; //0x1B00 | ||
}hud; | }hud; | ||
}; | char unknown15[0xC]; // most likely padding | ||
}; // 0x2A10 | |||
struct button_t | struct button_t | ||
| Line 296: | Line 345: | ||
{ | { | ||
int serverTime; //0x0 | int serverTime; //0x0 | ||
button_t | button_t button_bits; //0x4 | ||
int | int angles[3]; //0xC | ||
int weapon; // 0x18 | int weapon; // 0x18 | ||
int | int offHandWeapon; //0x1C | ||
int lastWeaponAltModeSwitch; //0x20 | |||
char forwardmove; //0x24 | |||
char rightmove; //0x25 | |||
char upmove; //0x26 | |||
char forwardlook; //0x27 | |||
char rightlook; //0x28 | |||
char uplook; //0x29 | |||
char unk2[0x12]; //0x2A | char unk2[0x12]; //0x2A | ||
}; | }; | ||
| Line 315: | Line 364: | ||
}; | }; | ||
struct | union val64 | ||
{ | |||
__int64 value | |||
struct | |||
{ | |||
int high; //0x0 | |||
int low; //0x4 | |||
}; | |||
}; | |||
struct score_s | |||
{ | { | ||
int ping; | |||
int status_icon; | |||
int place; | |||
int score; | |||
int kills; | |||
int assists; | |||
int deaths; | |||
int wagerWinnings; | |||
int scoreboardColumns[5]; | |||
int downs; | |||
int revives; | |||
int headshots; | |||
int scoreMultiplier; | |||
int currentStreak; | |||
}; | }; | ||
| Line 327: | Line 398: | ||
team_t ffaTeam; //0x8 | team_t ffaTeam; //0x8 | ||
int modelindex; //0xC | int modelindex; //0xC | ||
int riotShieldNext; //0x10 | |||
int attachModelIndex[6]; //0x14 | int attachModelIndex[6]; //0x14 | ||
int attachTagIndex[6]; //0x2C | int attachTagIndex[6]; //0x2C | ||
| Line 333: | Line 404: | ||
float maxSprintTimeMultiplier; //0x64 | float maxSprintTimeMultiplier; //0x64 | ||
int rank; //0x68 | int rank; //0x68 | ||
int prestige; | union | ||
{ | |||
int prestige; | |||
int lastDaysPlayed; | |||
}; | |||
int lastDamageTime; //0x70 | int lastDamageTime; //0x70 | ||
int lastStandStartTime; //0x74 | int lastStandStartTime; //0x74 | ||
| Line 341: | Line 416: | ||
val64 leagueTeamID64; //0x88 | val64 leagueTeamID64; //0x88 | ||
int leagueDivisionID; //0x90 | int leagueDivisionID; //0x90 | ||
val64 leagueSubdivisionID64; //0x98 | val64 leagueSubdivisionID64; //0x98 | ||
int leagueSubdivisionRank; //0xA0 | int leagueSubdivisionRank; //0xA0 | ||
int perks[2]; //0xA4 | unsigned int perks[2]; //0xA4 | ||
int voiceConnectivityBits; //0xAC | int voiceConnectivityBits; //0xAC | ||
char clanAbbrev[8]; //0xB0 | char clanAbbrev[8]; //0xB0 | ||
| Line 352: | Line 426: | ||
int clanAbbrevEV; //0xC4 | int clanAbbrevEV; //0xC4 | ||
int vehAnimState; //0xC8 | int vehAnimState; //0xC8 | ||
score_s score; //0xCC | |||
int clientUIVisibilityFlags; //0x114 | int clientUIVisibilityFlags; //0x114 | ||
int offhandWeaponVisible; //0x118 | int offhandWeaponVisible; //0x118 | ||
| Line 376: | Line 434: | ||
{ | { | ||
sessionState_t sessionState; //0x0 | sessionState_t sessionState; //0x0 | ||
int | int forceSpectatorClient; //0x4 | ||
int killcamEntity; //0x8 | int killcamEntity; //0x8 | ||
int killcamTargetEntity; //0xC | int killcamTargetEntity; //0xC | ||
| Line 397: | Line 455: | ||
int teamInfo; //0xDC not sure | int teamInfo; //0xDC not sure | ||
clientState_s cs; //0xE0 | clientState_s cs; //0xE0 | ||
int psOffsetTime; //0x200 | int psOffsetTime; //0x200 | ||
int scoreboardColumnCache[26]; | |||
}; // 0x26C | |||
struct viewClamp | |||
{ | |||
vec2_t start; | |||
vec2_t current; | |||
vec2_t goal; | |||
}; | |||
struct viewClampState | |||
{ | |||
viewClamp min; | |||
viewClamp max; | |||
float accelTime; | |||
float decelTime; | |||
float totalTime; | |||
float startTime; | |||
}; | }; | ||
struct gclient_s | struct gclient_s | ||
{ | { | ||
playerState_s ps | playerState_s ps; //0x0 | ||
playerState_s lastPlayerPS; | |||
clientSession_t sess; //0x5420 | clientSession_t sess; //0x5420 | ||
char unk1[4]; //0x568C padding? | |||
char unk1[4]; //0x568C | |||
int spectatorClient; //0x5690 | int spectatorClient; //0x5690 | ||
int | int flags; //0x5694 | ||
int lastCmdTime; //0x5698 | int lastCmdTime; //0x5698 | ||
button_t | button_t button_bits; //0x569C | ||
button_t | button_t oldbutton_bits; //0x56A4 | ||
button_t | button_t latched_button_bits; //0x56AC | ||
button_t | button_t button_bitsSinceLastFrame; //0x56B4 | ||
float fGunPitch; //0x56BC | float fGunPitch; //0x56BC | ||
float fGunYaw; //0x56C0 | float fGunYaw; //0x56C0 | ||
int damage_blood; //0x56C4 | |||
float damage_from[3]; //0x56C8 | float damage_from[3]; //0x56C8 | ||
int damage_fromWorld; //0x56D4 | |||
int inactivityTime; //0x56D8 | int inactivityTime; //0x56D8 | ||
int inactivityWarning; //0x56DC | int inactivityWarning; //0x56DC | ||
int lastVoiceTime; //0x56E0 | |||
int outWaterTime; //0x56E4 | |||
int switchSeatTime; //0x56E8 | |||
float | float currentAimSpreadScale; //0x56EC | ||
int dropWeaponTime; //0x56F0 | |||
EntHandle pLookatEnt; //0x56F4 | |||
vec4_t prevLinkedInvQuat; //0x56F8 | |||
bool prevLinkAnglesSet; //0x5708 | |||
bool link_doCollision; //0x5709 | |||
bool link_useTagAnglesForViewAngles; //0x570A | |||
bool link_useBaseAnglesForViewClamp; //0x570B | |||
float linkAnglesFrac; //0x570C | |||
ViewClampState link_viewClamp; | |||
EntHandle useHoldEntity; | |||
int useButtonDone; //0x5758 | int useButtonDone; //0x5758 | ||
int iLastCompassPlayerInfoEnt; //0x575C | int iLastCompassPlayerInfoEnt; //0x575C | ||
int compassPingTime; //0x5760 | int compassPingTime; //0x5760 | ||
int damageTime; // 0x5764 | |||
int | float v_dmg_roll; // 0x5768 | ||
int | float v_dmg_pitch; // 0x576C | ||
vec3_t swayViewAngles; // 0x5770 | |||
vec3_t swayOffset; // 0x577C | |||
vec3_t swayAngles; // 0x5788 | |||
vec3_t baseAngles; // 0x5794 | |||
vec3_t baseOrigin; // 0x57A0 | |||
vec3_t recoilAngles; // 0x57AC | |||
float fLastIdleFactor; // 0x57B8 | |||
int weaponIdleTime; // 0x57BC | |||
vec3_t recoilSpeed; // 0x57C0 | |||
int previousRecoilTime; // 0x57CC | |||
float previousRecoilRatio; // 0x57D0 | |||
int lastServerTime; // 0x57D4 | |||
int lastSpawnTime; // 0x57D8 | |||
int lastWeapon; // 0x57DC | |||
bool previouslyFiring; // 0x57E0 | |||
bool previouslyUsingNightVision; // 0x57E1 | |||
bool previouslyDTP; // 0x57E2 | |||
bool previouslyBeganWeaponRaise; // 0x57E3 | |||
bool previouslySprinting; // 0x57E4 | |||
int hasSpyplane; //0x57E8 | |||
int hasSatellite; //0x57EC | |||
int revive; //0x57F0 | |||
int reviveTime; // 0x57F4 | |||
int disallowVehicleUsage; // 0x57F8 | |||
unsigned short attachShieldTagName; // 0x57FC | |||
int lastStand; //0x5800 | int lastStand; //0x5800 | ||
int lastStandTime; //0x5804 | |||
}; | }; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Latest revision as of 19:39, 29 December 2014
/* gclient_s->buttons.buttons */
#define __jump 0x00200000
#define __stance 0x00000200
#define __use 0x04000000
#define __triangle 0x00000008
#define __attack 0x80000000
#define __ads 0x00100000
#define __prone 0x00800000
#define __crouch 0x00400000
#define __frag 0x00020000
#define __tactical 0x00010000
#define __melee 0x20000000
#define __sprint 0x40000000
/* gclient_s->actionSlots.buttons2 */
#define __dpadup 0x00040000
#define __dpaddown 0x00020000
#define __dpadleft 0x00010000
#define __dpadright 0x00008000
enum team_t
{
TEAM_FREE = 0x0,
TEAM_ALLIES = 0x1,
TEAM_AXIS = 0x2,
TEAM_THREE = 0x3,
TEAM_FOUR = 0x4,
TEAM_FIVE = 0x5,
TEAM_SIX = 0x6,
TEAM_SEVEN = 0x7,
TEAM_EIGHT = 0x8,
TEAM_MAX = 0x9
};
enum sessionState_t
{
SESS_STATE_PLAYING = 0x0,
SESS_STATE_DEAD = 0x1,
SESS_STATE_SPECTATOR = 0x2,
SESS_STATE_INTERMISSION = 0x3,
};
enum clientConnected_t
{
CON_DISCONNECTED = 0x0,
CON_CONNECTING = 0x1,
CON_CONNECTED = 0x2,
};
/* playerState_s->stats[4] */
enum statIndex_t
{
STAT_HEALTH = 0x0,
STAT_DEAD_YAW = 0x1,
STAT_MAX_HEALTH = 0x2,
STAT_SPAWN_COUNT = 0x3,
MAX_STATS = 0x4,
};
struct PlayerVehicleState
{
float origin[3];//0
float angles[3];//0xC
float velocity[3];//0x18
float angVelocity[3];//0x24
float tilt[2];//0x30
float tiltVelocity[2];//0x38
float targetHeightDelta;//0x40
float lastGroundHeight;//0x44
int entity;//0x48
int flags;//0x4C
bool fullPhysics
};
struct SprintState
{
int sprintButtonUpRequired;//0x0
int sprintDelay;//0x4
int lastSprintStart;//0x8
int lastSprintEnd;//0xC
int sprintStartMaxLength;//0x10
int sprintDuration;//0x14
int sprintCooldown;//0x18
};
struct MantleState
{
float yaw; //0x0
int timer; //0x4
int transIndex; //0x8
int flags; //0xC
};
struct objective_t
{
objectiveState_t state;
vec3_t origin;
__int16 entNum;
vec2_t size;
int icon;
__int16 ownerNum;
unsigned __int16 name;
__int16 teamMask;
char progress;
int clientUseMask[1];
char gamemodeFlags;
char flags;
char teamNum;
};
struct PlayerHeldWeapon
{
int weapon;
int options;
float heatPercent;
int fuelTankTime;
int adsZoomSelect;
bool overHeating;
bool needsRechamber;
bool heldBefore;
bool quickReload;
bool blockWeaponPickup;
char model;
};
struct AmmoPool
{
int count;
};
struct AmmoClip
{
int count;
};
struct playerState_s
{
int commandTime;//0x0
int pm_type;//0x4
int bobCycle; //0x8
int pm_flags; //0xC
long long weapFlags;//0x10
int otherFlags;//0x18
int pm_time;//0x1C
unsigned int loopSoundId;//0x20
int loopSoundFade;//0x24
vec3_t origin;//0x28
vec3_t velocity;//0x34
int remoteEyesEnt; //0x40
int remoteEyesTagnam; //0x44
int remoteControlEnt; //0x48
int weaponTime;//0x4C
int weaponDelay;//0x50
int weaponTimeLeft;//0x54
int weaponDelayLeft;//0x58
int weaponIdleTime;//0x5C
int grenadeTimeLeft;//0x60
int throwBackGrenadeOwner;//0x64
int throwBackGrenadeTimeLeft;//0x68
int weaponRestrictKickTime;//0x6C
bool mountAvailable;//0x70
bool bRunLeftGun;//0x71
bool bCarryingTurret;//0x72
float mountPos[3];//0x74
float mountDir;//0x80
bool bThirdPerson;//0x84
int foliageSoundTime;//0x88
int gravity;//0x8C
float leanf;//0x90
int speed;//0x94
float delta_angles[3];//0x98
int groundEntityNum;//0xA4
int moverEntityNum;//0xA8
int moverTimestamp;//0xAC
int groundType;//0xB0
float vLadderVec[3];//0xB4
int jumpTime;//0xC0
float jumpOriginZ;//0xC4
int slideTime;//0xC8
int moveType;//0xCC
int legsTimer;//0xD0
int torsoTimer;//0xD4
short legsAnim;//0xD8
short torsoAnim;//0xDA
int legsAnimDuration;//0xE0
int torsoAnimDuration
int damageTimer;//0xE4
int damageDuration;//0xE8
int dmgDirection;//0xEC
int dmgType;//0xF0
int corpseIndex;//0xF4
int movementDir;//0xF8
int eFlags;//0xFC
int eFlags2;//0x100
PlayerVehicleState vehicleState;//0x104
short predictableEventSequence;//0x158
short predictableEventSequenceOld;//0x15A
int predictableEvents[4];//0x15C
unsigned int predictableEventParms[4];//0x16C
short unpredictableEventSequence; //0x17C
short oldUnpredictableEventSequence;//0x17E
int unpredictableEvents[4];//0x180
unsigned int unpredictableEventParms[4];//0x190
int clientNum;//0x1A0
int offHandWeapon;//0x1A4
int offhandSecondary;//0x1A8
int offhandPrimary;//0x1AC
int renderOptions;//0x1B0
int momentum;//0x1B4
int weapon;//0x1B8
int lastStandPrevWeapon;//0x1BC
int lastWeaponAltModeSwitch;//0x1C0
int stowedWeapon;//0x1C4
char unusedCompatibilityPadding;//0x1C8
unsigned int meleeWeapon;//0x1CC
int weaponstate;//0x1D0
int weaponstateLeft;//0x1D4
unsigned int weaponShotCount;//0x1D8
unsigned int weaponShotCountLeft;//0x1DC
float fWeaponPosFrac;//0x1E0
int adsDelayTime;//0x1E4
int spreadOverride;//0x1E8
int spreadOverrideState;//0x1EC
float weaponSpinLerp;//0x1F0
int viewmodelIndex;//0x1F4
float viewangles[3];//0x1F8
int viewHeightTarget;//0x204
float viewHeightCurrent;//0x208
int viewHeightLerpTime;//0x20C
int viewHeightLerpTarget;//0x210
int viewHeightLerpDown;//0x214
float viewAngleClampBase[2];//0x218
float viewAngleClampRange[2];//0x220
int damageEvent;//0x228
int damageYaw;//0x22C
int damagePitch;//0x230
int damageCount;//0x234
int stats[4];
PlayerHeldWeapon heldWeapon[0xF];//0x248
AmmoPool ammo[0xF];//0x3EC
AmmoClip ammoClip[0xF];//0x428
float proneDirection;//0x464
float proneDirectionPitch;//0x468
float proneTorsoPitch;//0x46C
int viewlocked;//0x470
short viewlocked_entNum;//0x474
int vehiclePos;//0x478
int vehicleType;//0x47C
int vehicleAnimBoneIndex;//0x480
int linkFlags;//0x484
float linkAngles[3];//0x488
int cursorHint;//0x494
int cursorHintString;//0x498
int cursorHintEntIndex;//0x49C
int cursorHintWeapon;//0x4A0
int iCompassPlayerInfo;//0x4A4
unsigned int spyplaneTypeEnabled;//0x4A8
unsigned int satelliteTypeEnabled;//0x4AC
int locationSelectionInfo;//0x4B0
int locationSelectionType;//0x4B4
SprintState sprintState; //0x4B8
float lastDtpEnd;//0x4D4
float fTorsoPitch;//0x4D8
float fWaistPitch;//0x4DC
float holdBreathScale;//0x4E0
int holdBreathTimer;//0x4E4
int chargeShotTimer;//0x4E8
int chargeShotLevel;//0x4EC
int shotsFiredFromChamber;//0x4F0
float quickScopeScale;//0x4F4
int quickScopeTimer;//0x4F8
int clientFields;//0x4FC
int clientFields2;//0x500
int clientFields3;//0x504
int entityStateClientFields;//0x508
float moveSpeedScaleMultiplier;//0x50C
MantleState mantleState;//0x510
int vehicleAnimStage;//0x520
int vehicleEntryPoint;//0x524
unsigned int scriptedAnim;//0x528
int scriptedAnimTime;//0x52C
int meleeChargeEnt;//0x530
int meleeChargeDist;//0x534
int meleeChargeTime;//0x538
int weapLockFlags;//0x53C
int weapLockedEntnum;//0x540
unsigned int airburstMarkDistance;//0x544
unsigned int perks[2];//0x548
int actionSlotType[4];//0x550
int actionSlotParam[4];//0x560
int inventoryWeapon;//0x570
short wiiumoteAimX;//0x574
short wiiumoteAimY;//0x576
char wiiuControllerType;//0x578
char vehicleDefIndex;//0x579
int entityEventSequence;//0x57C
int weapAnim;//0x580
int weapAnimLeft;//0x584
float aimSpreadScale;//0x588
int shellshockIndex;//0x58C
int shellshockTime;//0x590
int shellshockDuration;//0x594
float dofNearStart;//0x598
float dofNearEnd;//0x59C
float dofFarStart;//0x5A0
float dofFarEnd;//0x5A4
float dofNearBlur;//0x5A8
float dofFarBlur;//0x5AC
float dofViewmodelStart;//0x5B0
float dofViewmodelEnd;//0x5B4
char unk12[0xC];//0x5B8
int adsZoomSelect;//0x5C4
int adsZoomLatchTime;//0x5C8
bool adsZoomLatchState;//0x5CC
int adsPrevZoomSelect;//0x5D0
int adsPrevZoomSelectTime;//0x5D4
int artilleryInboundIconLocation;//0x5D8
float visionSetLerpRatio;//0x5DC
int poisoned;//0x5E0
int binoculars;//0x5E4
int scriptCursorHintString; //0x5E8
objective_t objective[32];
int deltaTime; //0xBEC
int killCamEntity; //0xBF0
int killCamTargetEntity; //0xBF4
int introShotsFired; //0xBF8
struct
{
hudelem_s current[31]; //0xBFC
hudelem_s archival[31]; //0x1B00
}hud;
char unknown15[0xC]; // most likely padding
}; // 0x2A10
struct button_t
{
int buttons;
int buttons2; // can someone explain this ?
};
struct usercmd_s
{
int serverTime; //0x0
button_t button_bits; //0x4
int angles[3]; //0xC
int weapon; // 0x18
int offHandWeapon; //0x1C
int lastWeaponAltModeSwitch; //0x20
char forwardmove; //0x24
char rightmove; //0x25
char upmove; //0x26
char forwardlook; //0x27
char rightlook; //0x28
char uplook; //0x29
char unk2[0x12]; //0x2A
};
struct playerTeamState_t
{
int location;
};
union val64
{
__int64 value
struct
{
int high; //0x0
int low; //0x4
};
};
struct score_s
{
int ping;
int status_icon;
int place;
int score;
int kills;
int assists;
int deaths;
int wagerWinnings;
int scoreboardColumns[5];
int downs;
int revives;
int headshots;
int scoreMultiplier;
int currentStreak;
};
struct clientState_s
{
int clientIndex; //0x0
team_t team; //0x4
team_t ffaTeam; //0x8
int modelindex; //0xC
int riotShieldNext; //0x10
int attachModelIndex[6]; //0x14
int attachTagIndex[6]; //0x2C
char name[0x20]; //0x44
float maxSprintTimeMultiplier; //0x64
int rank; //0x68
union
{
int prestige;
int lastDaysPlayed;
};
int lastDamageTime; //0x70
int lastStandStartTime; //0x74
int turnedHumanTime; //0x78
int beingRevived; //0x7C
val64 xuid64; //0x80
val64 leagueTeamID64; //0x88
int leagueDivisionID; //0x90
val64 leagueSubdivisionID64; //0x98
int leagueSubdivisionRank; //0xA0
unsigned int perks[2]; //0xA4
int voiceConnectivityBits; //0xAC
char clanAbbrev[8]; //0xB0
int attachedVehEntNum; //0xB8
int attachedVehSeat; //0xBC
int needsRevive; //0xC0
int clanAbbrevEV; //0xC4
int vehAnimState; //0xC8
score_s score; //0xCC
int clientUIVisibilityFlags; //0x114
int offhandWeaponVisible; //0x118
};
struct clientSession_t
{
sessionState_t sessionState; //0x0
int forceSpectatorClient; //0x4
int killcamEntity; //0x8
int killcamTargetEntity; //0xC
int archiveTime; //0x10
unsigned short scriptPersId; //0x14
clientConnected_t connected; //0x18
usercmd_s cmd; //0x1C
usercmd_s oldcmd; // 0x58
int localClient; //0x94 not sure
int predictItemPickup; //0x98 not sure
char newnetname[0x20]; //0x9C
int maxHealth; //0xBC
int enterTime; //0xC0 not sure
playerTeamState_t teamState; //0xC4 not sure
int voteCount; //0xC8 not sure
int teamVoteCount; //0xCC not sure
float moveSpeedScaleMultiplier; //0xD0
int viewmodelIndex; //0xD4
int noSpectate; //0xD8 not sure
int teamInfo; //0xDC not sure
clientState_s cs; //0xE0
int psOffsetTime; //0x200
int scoreboardColumnCache[26];
}; // 0x26C
struct viewClamp
{
vec2_t start;
vec2_t current;
vec2_t goal;
};
struct viewClampState
{
viewClamp min;
viewClamp max;
float accelTime;
float decelTime;
float totalTime;
float startTime;
};
struct gclient_s
{
playerState_s ps; //0x0
playerState_s lastPlayerPS;
clientSession_t sess; //0x5420
char unk1[4]; //0x568C padding?
int spectatorClient; //0x5690
int flags; //0x5694
int lastCmdTime; //0x5698
button_t button_bits; //0x569C
button_t oldbutton_bits; //0x56A4
button_t latched_button_bits; //0x56AC
button_t button_bitsSinceLastFrame; //0x56B4
float fGunPitch; //0x56BC
float fGunYaw; //0x56C0
int damage_blood; //0x56C4
float damage_from[3]; //0x56C8
int damage_fromWorld; //0x56D4
int inactivityTime; //0x56D8
int inactivityWarning; //0x56DC
int lastVoiceTime; //0x56E0
int outWaterTime; //0x56E4
int switchSeatTime; //0x56E8
float currentAimSpreadScale; //0x56EC
int dropWeaponTime; //0x56F0
EntHandle pLookatEnt; //0x56F4
vec4_t prevLinkedInvQuat; //0x56F8
bool prevLinkAnglesSet; //0x5708
bool link_doCollision; //0x5709
bool link_useTagAnglesForViewAngles; //0x570A
bool link_useBaseAnglesForViewClamp; //0x570B
float linkAnglesFrac; //0x570C
ViewClampState link_viewClamp;
EntHandle useHoldEntity;
int useButtonDone; //0x5758
int iLastCompassPlayerInfoEnt; //0x575C
int compassPingTime; //0x5760
int damageTime; // 0x5764
float v_dmg_roll; // 0x5768
float v_dmg_pitch; // 0x576C
vec3_t swayViewAngles; // 0x5770
vec3_t swayOffset; // 0x577C
vec3_t swayAngles; // 0x5788
vec3_t baseAngles; // 0x5794
vec3_t baseOrigin; // 0x57A0
vec3_t recoilAngles; // 0x57AC
float fLastIdleFactor; // 0x57B8
int weaponIdleTime; // 0x57BC
vec3_t recoilSpeed; // 0x57C0
int previousRecoilTime; // 0x57CC
float previousRecoilRatio; // 0x57D0
int lastServerTime; // 0x57D4
int lastSpawnTime; // 0x57D8
int lastWeapon; // 0x57DC
bool previouslyFiring; // 0x57E0
bool previouslyUsingNightVision; // 0x57E1
bool previouslyDTP; // 0x57E2
bool previouslyBeganWeaponRaise; // 0x57E3
bool previouslySprinting; // 0x57E4
int hasSpyplane; //0x57E8
int hasSatellite; //0x57EC
int revive; //0x57F0
int reviveTime; // 0x57F4
int disallowVehicleUsage; // 0x57F8
unsigned short attachShieldTagName; // 0x57FC
int lastStand; //0x5800
int lastStandTime; //0x5804
};