SDK: Updated and fixed the broken player structure. (player.h)
SDK: IPlayer: Overhauled IPlayer to add a lot of new things that have been missing for a bit and were planned for v4.
SDK: IPlayer: Reorganized the methods exposed to match the order of the data in memory.
SDK: IPlayer: Added the following:
- GetSuLevel, GetHighestItemLevel, GetItemLevel, GetMainHandItemLevel
- GetUnityFaction, GetUnityPoints, GetUnityPartialPersonalEvaluationPoints, GetUnityPersonalEvaluationPoints, GetUnityChatColorFlags
- GetMasteryJob, GetMasteryJobLevel, GetMasteryFlags, GetMasteryUnknown0000, GetMasteryExp, GetMasteryExpNeeded
- GetMountRecast, GetMountRecastTimerId
- GetDataLoadedFlags
- GetHomepointMasks
- GetIsZoning
- GetCapacityPoints, GetJobPoints, GetJobPointsSpent
SDK: IPlayer: Adjusted some return types to match their proper memory sizes.
playerresists_tResists;// The players elemental resists.
uint16_tTitle;// The players title id.
uint16_tRank;// The players rank number.
uint16_tRankPoints;// The players rank points.
uint16_tRankPoints;// The players rank points. [Two values packed.]
uint16_tHomepoint;// The players homepoint.
uint32_tUnknown0000;// Unknown (Set from 0x61 packet. Offset: 0x4C)
uint8_tNation;// The players nation id.
uint8_tResidence;// The players residence id.
uint32_tHomepoint;// The players homepoint. (Homepoint & 0x0000FFFF)
uint16_tSuLevel;// The players Superior Equipment level.
uint8_tHighestItemLevel;// The players highest equipped item level.
uint8_tItemLevel;// The players item level. (1 = 100, increases from there. -1 from what the value is in memory.)
uint8_tMainHandItemLevel;// The players main hand item level.
uint8_tUnknown0001;// Unknown (Set from 0x61 packet. Offset: 0x57) [Never read, just set.]
unityinfo_tUnityInfo;// The players unity faction and points.
uint16_tUnityPartialPersonalEvalutionPoints;// The players partial unity personal evaluation points.
uint16_tUnityPersonalEvaluationPoints;// The players personal unity evaluation points.
uint32_tUnityChatColorFlag;// Alters the color of the unity faction name when the chat bar is open for /unity chat.
uint8_tMasteryJob;// The players set Mastery job id.
uint8_tMasteryJobLevel;// The players current Mastery job level.
uint8_tMasteryFlags;// Flags that control how the Mastery system works and displays information.
uint8_tMasteryUnknown0000;// Unknown
uint32_tMasteryExp;// The players current Mastery job experience points.
uint32_tMasteryExpNeeded;// The players current Mastery job experience points needed to level.
combatskills_tCombatSkills;// The players combat skills.
craftskills_tCraftSkills;// The players crafting skills.
abilityrecast_tAbilityInfo[34];// The players ability recast information.
uint8_tUnknown0000[6];// Unknown - Potentially a 'start' delay time to offset the ability recasts from.
abilityrecast_tAbilityInfo[31];// The players ability recast information.
mountrecast_tMountRecast;// The players mount recast information.
uint8_tDataLoadedFlags;// Flags that control what player information has been populated. Controls text visiiblity in player menus, unity information, etc.
uint8_tUnknown0002;// Unknown [Padding?]
uint16_tLimitPoints;// The players current limit points.
uint8_tMeritPoints;// The players current merit points.
uint8_tLimitMode;// The players current limit mode.
uint32_tMeritPointsMax;// The players max merits.
uint8_tUnknown0001[214];// Unknown
uint8_tLimitMode;// The players current limit mode. (Controls mode, text color, etc.)
uint8_tMeritPointsMax;// The players max merits.
uint8_tUnknown0003[3];// Unknown [Set with MeritPointsMax, looks to be just junk.]
uint16_tUnknown0004;// Unknown (Set from 0x63 packet. Offset: 0x0C) [Never read, just set.]
jobpointsinfo_tJobPoints;// The players current job point information.
uint8_tHomepointMasks[64];// The players known homepoints. [Bitpacked masks.]
int16_tStatusIcons[32];// The players status icons used for status timers.
int32_tStatusTimers[32];// The players status timers.
uint8_tUnknown0002[104];// Unknown
uint8_tUnknown0005[32];// Unknown [Set from 0x63 packet, case 0x0A.]
uint32_tIsZoning;// Flag if the player is zoning and the client should send an 0x0C request.
floatUnknown0006;// Unknown [Client uses these when the player entity status is 29 or 30.]
floatUnknown0007;//
floatUnknown0008;//
uint32_tUnknown0009;// Unknown [Padding?]
floatUnknown0010;// Unknown [Client uses these when the player entity status is 29 or 30.]
floatUnknown0011;//
floatUnknown0012;//
uint32_tUnknown0013;// Unknown [Padding?]
floatUnknown0014;// Unknown [Client uses these when the player entity status is 26 or 27.]
floatUnknown0015;//
floatUnknown0016;//
uint32_tUnknown0017;// Unknown [Padding?]
floatUnknown0018;// Unknown [Client uses these when the player entity status is 26 or 27.]
floatUnknown0019;//
floatUnknown0020;//
uint32_tUnknown0021;// Unknown [Padding?]
uint32_tUnknown0022;// Unknown [Set from 0x10E packet, casted to a double later in usages.]
uint32_tUnknown0023;// Unknown
int16_tBuffs[32];// The players current status effect icon ids.