Browse Source

SDK: Interface version bumped to 3.1

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.
master
atom0s 2 years ago
parent
commit
daba9da14f
No known key found for this signature in database
GPG Key ID: 37D5FD3494D79AF8
  1. BIN
      Ashita.dll
  2. BIN
      injector.exe
  3. 75
      plugins/ADK/Ashita.h
  4. 138
      plugins/ADK/ffxi/player.h

BIN
Ashita.dll

Binary file not shown.

BIN
injector.exe

Binary file not shown.

75
plugins/ADK/Ashita.h

@ -30,29 +30,29 @@ @@ -30,29 +30,29 @@
#pragma once
#endif
////////////////////////////////////////////////////////////////////////////////////////////////////
//
// ReSharper Specific Disables (Please do not edit these!)
//
////////////////////////////////////////////////////////////////////////////////////////////////////
//
// ReSharper disable CppUnusedIncludeDirective
// ReSharper disable CppPolymorphicClassWithNonVirtualPublicDestructor
//
////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////
//
// Ashita Interface Version
//
// Defines the current interface version that Ashita is compiled against. This version must match
// when a plugin is loaded for it to work properly. Invalid versions will result in the plugin
// not loading and printing an error.
//
// DO NOT EDIT THIS!
//
////////////////////////////////////////////////////////////////////////////////////////////////////
#define ASHITA_INTERFACE_VERSION 3.0
////////////////////////////////////////////////////////////////////////////////////////////////////
//
// ReSharper Specific Disables (Please do not edit these!)
//
////////////////////////////////////////////////////////////////////////////////////////////////////
//
// ReSharper disable CppUnusedIncludeDirective
// ReSharper disable CppPolymorphicClassWithNonVirtualPublicDestructor
//
////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////
//
// Ashita Interface Version
//
// Defines the current interface version that Ashita is compiled against. This version must match
// when a plugin is loaded for it to work properly. Invalid versions will result in the plugin
// not loading and printing an error.
//
// DO NOT EDIT THIS!
//
////////////////////////////////////////////////////////////////////////////////////////////////////
#define ASHITA_INTERFACE_VERSION 3.1
////////////////////////////////////////////////////////////////////////////////////////////////////
//
@ -962,17 +962,44 @@ interface IPlayer @@ -962,17 +962,44 @@ interface IPlayer
virtual uint16_t GetTitle(void) const = 0;
virtual uint16_t GetRank(void) const = 0;
virtual uint16_t GetRankPoints(void) const = 0;
virtual uint16_t GetHomepoint(void) const = 0;
virtual uint8_t GetNation(void) const = 0;
virtual uint8_t GetResidence(void) const = 0;
virtual uint32_t GetHomepoint(void) const = 0;
virtual uint16_t GetSuLevel(void) const = 0;
virtual uint8_t GetHighestItemLevel(void) const = 0;
virtual uint8_t GetItemLevel(void) const = 0;
virtual uint8_t GetMainHandItemLevel(void) const = 0;
virtual uint32_t GetUnityFaction(void) const = 0;
virtual uint32_t GetUnityPoints(void) const = 0;
virtual uint16_t GetUnityPartialPersonalEvalutionPoints(void) const = 0;
virtual uint16_t GetUnityPersonalEvaluationPoints(void) const = 0;
virtual uint32_t GetUnityChatColorFlag(void) const = 0;
virtual uint8_t GetMasteryJob(void) const = 0;
virtual uint8_t GetMasteryJobLevel(void) const = 0;
virtual uint8_t GetMasteryFlags(void) const = 0;
virtual uint8_t GetMasteryUnknown0000(void) const = 0;
virtual uint32_t GetMasteryExp(void) const = 0;
virtual uint32_t GetMasteryExpNeeded(void) const = 0;
virtual Ashita::FFXI::combatskill_t GetCombatSkill(uint32_t skill) const = 0;
virtual Ashita::FFXI::craftskill_t GetCraftSkill(uint32_t skill) const = 0;
virtual uint16_t GetAbilityRecast(uint32_t index) const = 0;
virtual uint16_t GetAbilityRecastTimerId(uint32_t index) const = 0;
virtual uint32_t GetMountRecast(void) const = 0;
virtual uint32_t GetMountRecastTimerId(void) const = 0;
virtual uint8_t GetDataLoadedFlags(void) const = 0;
virtual uint16_t GetLimitPoints(void) const = 0;
virtual uint8_t GetMeritPoints(void) const = 0;
virtual uint8_t GetLimitMode(void) const = 0;
virtual uint32_t GetMeritPointsMax(void) const = 0;
virtual uint8_t* GetHomepointMasks(void) const = 0;
virtual uint32_t GetIsZoning(void) const = 0;
// Get Properties (Job Points)
virtual uint16_t GetCapacityPoints(uint32_t jobid) const = 0;
virtual uint16_t GetJobPoints(uint32_t jobid) const = 0;
virtual uint16_t GetJobPointsSpent(uint32_t jobid) const = 0;
// Get Properties (Status Icons / Buffs)
virtual int16_t* GetStatusIcons(void) const = 0;
virtual int32_t* GetStatusTimers(void) const = 0;
virtual int16_t* GetBuffs(void) const = 0;

138
plugins/ADK/ffxi/player.h

@ -152,43 +152,113 @@ namespace Ashita { @@ -152,43 +152,113 @@ namespace Ashita {
uint32_t Unknown0001; // Unknown
};
#pragma pack(push, 1)
struct mountrecast_t
{
uint32_t Recast;
uint32_t TimerId;
};
union unityinfo_t
{
uint32_t Raw;
struct
{
uint32_t Faction : 4;
uint32_t Unknown : 6;
uint32_t Points : 22;
} Bits;
};
struct jobpointentry_t
{
uint16_t CapacityPoints;
uint16_t Points;
uint16_t PointsSpent;
};
struct jobpointsinfo_t
{
uint32_t Unknown0000;
jobpointentry_t Jobs[24];
};
struct playerinfo_t
{
uint32_t HealthMax; // The players max health.
uint32_t ManaMax; // The players max mana.
uint8_t MainJob; // The players main job id.
uint8_t MainJobLevel; // The players main job level.
uint8_t SubJob; // The players sub job id.
uint8_t SubJobLevel; // The players sub job level.
uint16_t ExpCurrent; // The players current experience points.
uint16_t ExpNeeded; // The players current experience points needed to level.
playerstats_t Stats; // The players base stats.
playerstats_t StatsModifiers; // The players stat modifiers.
int16_t Attack; // The players attack.
int16_t Defense; // The players defense.
playerresists_t Resists; // The players elemental resists.
uint16_t Title; // The players title id.
uint16_t Rank; // The players rank number.
uint16_t RankPoints; // The players rank points.
uint8_t Nation; // The players nation id.
uint8_t Residence; // The players residence id.
uint32_t Homepoint; // The players homepoint. (Homepoint & 0x0000FFFF)
combatskills_t CombatSkills; // The players combat skills.
craftskills_t CraftSkills; // The players crafting skills.
abilityrecast_t AbilityInfo[34]; // The players ability recast information.
uint8_t Unknown0000[6]; // Unknown - Potentially a 'start' delay time to offset the ability recasts from.
uint16_t LimitPoints; // The players current limit points.
uint8_t MeritPoints; // The players current merit points.
uint8_t LimitMode; // The players current limit mode.
uint32_t MeritPointsMax; // The players max merits.
uint8_t Unknown0001[214]; // Unknown
int16_t StatusIcons[32]; // The players status icons used for status timers.
int32_t StatusTimers[32]; // The players status timers.
uint8_t Unknown0002[104]; // Unknown
int16_t Buffs[32]; // The players current status effect icon ids.
uint32_t HealthMax; // The players max health.
uint32_t ManaMax; // The players max mana.
uint8_t MainJob; // The players main job id.
uint8_t MainJobLevel; // The players main job level.
uint8_t SubJob; // The players sub job id.
uint8_t SubJobLevel; // The players sub job level.
uint16_t ExpCurrent; // The players current experience points.
uint16_t ExpNeeded; // The players current experience points needed to level.
playerstats_t Stats; // The players base stats.
playerstats_t StatsModifiers; // The players stat modifiers.
int16_t Attack; // The players attack.
int16_t Defense; // The players defense.
playerresists_t Resists; // The players elemental resists.
uint16_t Title; // The players title id.
uint16_t Rank; // The players rank number.
uint16_t RankPoints; // The players rank points. [Two values packed.]
uint16_t Homepoint; // The players homepoint.
uint32_t Unknown0000; // Unknown (Set from 0x61 packet. Offset: 0x4C)
uint8_t Nation; // The players nation id.
uint8_t Residence; // The players residence id.
uint16_t SuLevel; // The players Superior Equipment level.
uint8_t HighestItemLevel; // The players highest equipped item level.
uint8_t ItemLevel; // The players item level. (1 = 100, increases from there. -1 from what the value is in memory.)
uint8_t MainHandItemLevel; // The players main hand item level.
uint8_t Unknown0001; // Unknown (Set from 0x61 packet. Offset: 0x57) [Never read, just set.]
unityinfo_t UnityInfo; // The players unity faction and points.
uint16_t UnityPartialPersonalEvalutionPoints; // The players partial unity personal evaluation points.
uint16_t UnityPersonalEvaluationPoints; // The players personal unity evaluation points.
uint32_t UnityChatColorFlag; // Alters the color of the unity faction name when the chat bar is open for /unity chat.
uint8_t MasteryJob; // The players set Mastery job id.
uint8_t MasteryJobLevel; // The players current Mastery job level.
uint8_t MasteryFlags; // Flags that control how the Mastery system works and displays information.
uint8_t MasteryUnknown0000; // Unknown
uint32_t MasteryExp; // The players current Mastery job experience points.
uint32_t MasteryExpNeeded; // The players current Mastery job experience points needed to level.
combatskills_t CombatSkills; // The players combat skills.
craftskills_t CraftSkills; // The players crafting skills.
abilityrecast_t AbilityInfo[31]; // The players ability recast information.
mountrecast_t MountRecast; // The players mount recast information.
uint8_t DataLoadedFlags; // Flags that control what player information has been populated. Controls text visiiblity in player menus, unity information, etc.
uint8_t Unknown0002; // Unknown [Padding?]
uint16_t LimitPoints; // The players current limit points.
uint8_t MeritPoints; // The players current merit points.
uint8_t LimitMode; // The players current limit mode. (Controls mode, text color, etc.)
uint8_t MeritPointsMax; // The players max merits.
uint8_t Unknown0003[3]; // Unknown [Set with MeritPointsMax, looks to be just junk.]
uint16_t Unknown0004; // Unknown (Set from 0x63 packet. Offset: 0x0C) [Never read, just set.]
jobpointsinfo_t JobPoints; // The players current job point information.
uint8_t HomepointMasks[64]; // The players known homepoints. [Bitpacked masks.]
int16_t StatusIcons[32]; // The players status icons used for status timers.
int32_t StatusTimers[32]; // The players status timers.
uint8_t Unknown0005[32]; // Unknown [Set from 0x63 packet, case 0x0A.]
uint32_t IsZoning; // Flag if the player is zoning and the client should send an 0x0C request.
float Unknown0006; // Unknown [Client uses these when the player entity status is 29 or 30.]
float Unknown0007; //
float Unknown0008; //
uint32_t Unknown0009; // Unknown [Padding?]
float Unknown0010; // Unknown [Client uses these when the player entity status is 29 or 30.]
float Unknown0011; //
float Unknown0012; //
uint32_t Unknown0013; // Unknown [Padding?]
float Unknown0014; // Unknown [Client uses these when the player entity status is 26 or 27.]
float Unknown0015; //
float Unknown0016; //
uint32_t Unknown0017; // Unknown [Padding?]
float Unknown0018; // Unknown [Client uses these when the player entity status is 26 or 27.]
float Unknown0019; //
float Unknown0020; //
uint32_t Unknown0021; // Unknown [Padding?]
uint32_t Unknown0022; // Unknown [Set from 0x10E packet, casted to a double later in usages.]
uint32_t Unknown0023; // Unknown
int16_t Buffs[32]; // The players current status effect icon ids.
};
#pragma pack(pop)
}; // namespace FFXI
}; // namespace Ashita

Loading…
Cancel
Save