/** * Ashita SDK - Copyright (c) 2023 Ashita Development Team * Contact: https://www.ashitaxi.com/ * Contact: https://discord.gg/Ashita * * This file is part of Ashita. * * Ashita is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Ashita is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with Ashita. If not, see . */ #ifndef ASHITA_SDK_FFXI_PARTY_H_INCLUDED #define ASHITA_SDK_FFXI_PARTY_H_INCLUDED #if defined(_MSC_VER) && (_MSC_VER >= 1020) #pragma once #endif // clang-format off #include namespace Ashita::FFXI { struct allianceinfo_t { uint32_t AllianceLeaderServerId; // The player server id of the overall alliance leader. uint32_t PartyLeaderServerId1; // The player server id of the local players party. uint32_t PartyLeaderServerId2; // The player server id of the top alliance party. uint32_t PartyLeaderServerId3; // The player server id of the middle alliance party. int8_t PartyVisible1; // The party visible flag of the local players party. int8_t PartyVisible2; // The party visible flag of the top alliance party. int8_t PartyVisible3; // The party visible flag of the middle alliance party. int8_t PartyMemberCount1; // The party member count of the local players party. int8_t PartyMemberCount2; // The party member count of the top alliance party. int8_t PartyMemberCount3; // The party member count of the middle alliance party. int8_t Invited; // Flag stating if there is a pending invite. int8_t Unknown0000; // Unknown }; struct partymember_t { uintptr_t AllianceInfo; // Pointer to information regarding the party alliance. uint8_t Index; // The party members index. (Index of their current party.) uint8_t MemberNumber; // The party members number. (Member number of their current party.) int8_t Name[18]; // The party members name. uint32_t ServerId; // The party members server id. uint32_t TargetIndex; // The party members target index. uint32_t LastUpdatedTimestamp; // The timestamp this members entry was last updated. uint32_t HP; // The party members current health. uint32_t MP; // The party members current mana. uint32_t TP; // The party members current TP. uint8_t HPPercent; // The party members current health percent. uint8_t MPPercent; // The party members current mana percent. uint16_t Zone; // The party members current zone id. uint16_t Zone2; // The party members current zone id. (Duplicate, only used if the member is in a different zone that the local player. 0 otherwise.) uint16_t Unknown0000; // Unknown (Usually 0, 4 when in party with a trust.) uint32_t FlagMask; // The party members flag mask. uint16_t TreasureLots[10]; // The party members lots. uint16_t MonstrosityItemId; // The party members monstrosity item id, if set. (Offset the id by 0x7000) uint8_t MonstrosityPrefixFlag1; // The party members monstrosity name prefix flag (1). uint8_t MonstrosityPrefixFlag2; // The party members monstrosity name prefix flag (2). uint8_t MonstrosityName[25]; // The party members monstrosity name buffer. (Overwrites the members name in the party list if set. Updates automatically from the item id field.) uint8_t MainJob; // The party members main job id. uint8_t MainJobLevel; // The party members main job level. uint8_t SubJob; // The party members sub job id. uint8_t SubJobLevel; // The party members sub job level. uint8_t Unknown0001[3]; // Unknown uint32_t ServerId2; // The party members server id. (Duplicate.) uint8_t HPPercent2; // The party members current health percent. (Duplicate) uint8_t MPPercent2; // The party members current mana percent. (Duplicate) uint8_t IsActive; // The party members active state. (1 is active, 0 not active.) uint8_t Unknown0002; // Unknown (Alignment padding.) }; struct party_t { partymember_t Members[18]; // The party members. }; struct statusiconsentry_t { uint32_t ServerId; // The entry owner server id. uint32_t TargetIndex; // The entry owner target index. uint64_t BitMask; // The icon bitmask for icon ids over 256. uint8_t StatusIcons[32]; // The status icon data. (Bit packed.) }; struct partystatusicons_t { statusiconsentry_t Members[5]; // The local party members status icon entries. }; } // namespace Ashita::FFXI #endif // ASHITA_SDK_FFXI_PARTY_H_INCLUDED