diff --git a/Ashita.dll b/Ashita.dll index 3ad3f44..959e25a 100644 Binary files a/Ashita.dll and b/Ashita.dll differ diff --git a/injector.exe b/injector.exe index 11b385f..b94e1bd 100644 Binary files a/injector.exe and b/injector.exe differ diff --git a/plugins/ADK/Ashita.h b/plugins/ADK/Ashita.h index af8b4c2..cea80db 100644 --- a/plugins/ADK/Ashita.h +++ b/plugins/ADK/Ashita.h @@ -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 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; diff --git a/plugins/ADK/ffxi/player.h b/plugins/ADK/ffxi/player.h index be2c061..bf560ff 100644 --- a/plugins/ADK/ffxi/player.h +++ b/plugins/ADK/ffxi/player.h @@ -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