mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-04-25 22:17:45 +00:00
1032 lines
24 KiB
C++
1032 lines
24 KiB
C++
#ifndef _COMMON_H
|
|
#define _COMMON_H
|
|
|
|
#include <stdint.h>
|
|
#include <cstdint>
|
|
#include <vector>
|
|
|
|
#include <boost/make_shared.hpp>
|
|
|
|
// +---------------------------------------------------------------------------
|
|
// The following enumerations are structures to require their type be included.
|
|
// They are also defined within the Core::Common namespace to avoid collisions.
|
|
// +---------------------------------------------------------------------------
|
|
namespace Core {
|
|
namespace Common {
|
|
|
|
// 99 is the last spawn id that seems to spawn any actor
|
|
const uint8_t MAX_DISPLAYED_ACTORS = 99;
|
|
|
|
const int32_t INVALID_GAME_OBJECT_ID = 0xE0000000;
|
|
|
|
struct FFXIVARR_POSITION3
|
|
{
|
|
float x;
|
|
float y;
|
|
float z;
|
|
};
|
|
|
|
enum EquipSlot : uint8_t
|
|
{
|
|
MainHand = 0,
|
|
OffHand = 1,
|
|
Head = 2,
|
|
Body = 3,
|
|
Hands = 4,
|
|
Waist = 5,
|
|
Legs = 6,
|
|
Feet = 7,
|
|
Neck = 8,
|
|
Ear = 9,
|
|
Wrist = 10,
|
|
Ring1 = 11,
|
|
Ring2 = 12,
|
|
SoulCrystal = 13,
|
|
};
|
|
|
|
enum InventoryType : uint16_t
|
|
{
|
|
Bag0 = 0,
|
|
Bag1 = 1,
|
|
Bag2 = 2,
|
|
Bag3 = 3,
|
|
|
|
GearSet0 = 1000,
|
|
GearSet1 = 1001,
|
|
|
|
Currency = 2000,
|
|
Crystal = 2001,
|
|
//UNKNOWN_0 = 2003,
|
|
KeyItem = 2004,
|
|
DamagedGear = 2007,
|
|
//UNKNOWN_1 = 2008,
|
|
|
|
ArmoryOff = 3200,
|
|
ArmoryHead = 3201,
|
|
ArmoryBody = 3202,
|
|
ArmoryHand = 3203,
|
|
ArmoryWaist = 3204,
|
|
ArmoryLegs = 3205,
|
|
ArmoryFeet = 3206,
|
|
ArmotyNeck = 3207,
|
|
ArmoryEar = 3208,
|
|
ArmoryWrist = 3209,
|
|
ArmoryRing = 3300,
|
|
|
|
ArmorySoulCrystal = 3400,
|
|
ArmoryMain = 3500,
|
|
|
|
RetainerBag0 = 10000,
|
|
RetainerBag1 = 10001,
|
|
RetainerBag2 = 10002,
|
|
RetainerBag3 = 10003,
|
|
RetainerBag4 = 10004,
|
|
RetainerBag5 = 10005,
|
|
RetainerBag6 = 10006,
|
|
RetainerEquippedGear = 11000,
|
|
RetainerGil = 12000,
|
|
RetainerCrystal = 12001,
|
|
RetainerMarket = 12002,
|
|
|
|
FreeCompanyBag0 = 20000,
|
|
FreeCompanyBag1 = 20001,
|
|
FreeCompanyBag2 = 20002,
|
|
FreeCompanyGil = 22000,
|
|
FreeCompanyCrystal = 22001
|
|
};
|
|
|
|
enum Race : uint8_t
|
|
{
|
|
Hyur = 1,
|
|
Elezen = 2,
|
|
Lalafell = 3,
|
|
Miqote = 4,
|
|
Roegadyn = 5,
|
|
AuRa = 6,
|
|
};
|
|
|
|
enum struct ZoneingType : uint8_t
|
|
{
|
|
None = 1,
|
|
Teleport = 2,
|
|
Return = 3,
|
|
ReturnDead = 4,
|
|
FadeIn = 5,
|
|
};
|
|
|
|
enum struct ResurrectType : uint8_t
|
|
{
|
|
None = 0,
|
|
RaiseSpell = 5,
|
|
Return = 8
|
|
};
|
|
|
|
enum Tribe : uint8_t
|
|
{
|
|
Midlander = 1,
|
|
Highlander = 2,
|
|
Wildwood = 3,
|
|
Duskwight = 4,
|
|
Plainsfolk = 5,
|
|
Dunesfolk = 6,
|
|
SeekerOfTheSun = 7,
|
|
KeeperOfTheMoon = 8,
|
|
SeaWolf = 9,
|
|
Hellsguard = 10,
|
|
Raen = 11,
|
|
Xaela = 12,
|
|
};
|
|
|
|
enum Gender : uint8_t
|
|
{
|
|
Male = 0,
|
|
Female = 1,
|
|
};
|
|
|
|
enum GuardianDeity : uint8_t
|
|
{
|
|
Halone = 1, // the Fury
|
|
Menphina = 2, // the Lover
|
|
Thaliak = 3, // the Scholar
|
|
Nymeia = 4, // the Spinner
|
|
Llymlaen = 5, // the Navigator
|
|
Oschon = 6, // the Wanderer
|
|
Byregot = 7, // the Builder
|
|
Rhalgr = 8, // the Destroyer
|
|
Azeyma = 9, // the Warden
|
|
NaldThal = 10, // the Traders
|
|
Nophica = 11, // the Matron
|
|
Althyk = 12, // the Keeper
|
|
};
|
|
|
|
enum struct GrandCompany : uint8_t
|
|
{
|
|
None = 0,
|
|
Maelstrom = 1,
|
|
TwinAdder = 2,
|
|
ImmortalFlames = 3,
|
|
};
|
|
|
|
enum struct GCRank : uint8_t
|
|
{
|
|
None = 0,
|
|
PrivateThirdClass = 1,
|
|
PrivateSecondClass = 2,
|
|
PrivateFirstClass = 3,
|
|
Corporal = 4,
|
|
SergeantThirdClass = 5,
|
|
SergeantSecondClass = 6,
|
|
SergeantFirstClass = 7,
|
|
ChiefSergeant = 8,
|
|
SecondLieutenant = 9,
|
|
FirstLieutenant = 10,
|
|
Captain = 11,
|
|
SecondCommander = 12,
|
|
FirstCommander = 13,
|
|
HighCommander = 14,
|
|
RearMarshal = 15,
|
|
ViceMarshal = 16,
|
|
Marshal = 17,
|
|
GrandMarshal = 18,
|
|
Champion = 19,
|
|
};
|
|
|
|
enum struct Weather : uint8_t
|
|
{
|
|
None,
|
|
Clear,
|
|
Fair,
|
|
Overcast,
|
|
Fog,
|
|
Wind,
|
|
Gales,
|
|
Rain,
|
|
Showers,
|
|
Thunder,
|
|
Thunderstorms,
|
|
DustStorms,
|
|
Sandstorms,
|
|
HotSpells,
|
|
HeatWave,
|
|
Snow,
|
|
Blizzards,
|
|
Gloom,
|
|
Aurora,
|
|
Darkness,
|
|
Hopelessness,
|
|
Overcast1,
|
|
StormClouds,
|
|
Torrential,
|
|
Torrential1,
|
|
Lour,
|
|
HeatWave1,
|
|
Gloom1,
|
|
Gales1,
|
|
Eruptions,
|
|
Fair1
|
|
};
|
|
|
|
enum Town : uint8_t
|
|
{
|
|
LimsaLominsa = 1,
|
|
Gridania = 2,
|
|
Uldah = 3,
|
|
Ishgard = 4,
|
|
};
|
|
|
|
enum ClassJob : uint8_t
|
|
{
|
|
CLASS_ADV = 0, // purely internal
|
|
CLASS_GLADIATOR = 1, // gladiator
|
|
CLASS_PUGILIST = 2, // pugilist
|
|
CLASS_MARAUDER = 3, // marauder
|
|
CLASS_LANCER = 4, // lancer
|
|
CLASS_ARCHER = 5, // archer
|
|
CLASS_CONJURER = 6, // conjurer
|
|
CLASS_THAUMATURGE = 7, // thaumaturge
|
|
CLASS_WOODWORKER = 8, // carpenter
|
|
CLASS_BLACKSMIT = 9, // blacksmith
|
|
CLASS_ARMOURER = 10, // armorer
|
|
CLASS_GOLDSMITH = 11, // goldsmith
|
|
CLASS_TANNER = 12, // leatherworker
|
|
CLASS_WEAVER = 13, // weaver
|
|
CLASS_ALCHEMIST = 14, // alchemist
|
|
CLASS_CULINARIAN = 15, // culinarian
|
|
CLASS_MINER = 16, // miner
|
|
CLASS_HARVESTER = 17, // botanist
|
|
CLASS_FISHERMAN = 18, // fisher
|
|
JOB_KNIGHT = 19, // paladin
|
|
JOB_MONK = 20, // monk
|
|
JOB_WARRIOR = 21, // warrior
|
|
JOB_DRAGON = 22, // dragoon
|
|
JOB_BARD = 23, // bard
|
|
JOB_WHITEMAGE = 24, // white mage
|
|
JOB_BLACKMAGE = 25, // black mage
|
|
CLASS_ARCANIST = 26, // arcanist
|
|
JOB_SUMMONER = 27, // summoner
|
|
JOB_SCHOLAR = 28, // scholar
|
|
CLASS_ROGUE = 29, // rogue
|
|
JOB_NINJA = 30, // ninja
|
|
JOB_MACHINIST = 31, // machinist
|
|
JOB_DARKKNIGHT = 32, // darknight
|
|
JOB_ASTROLOGIAN = 33, // astro
|
|
JOB_SAMURAI = 34, // sam
|
|
JOB_REDMAGE = 35, // red mage
|
|
|
|
};
|
|
|
|
enum PlayerSyncFlags : uint32_t
|
|
{
|
|
None = 0x00000000,
|
|
Position = 0x00000001, // x,y,z,zone
|
|
Status = 0x00000002, // hp,mp,tp,class
|
|
Look = 0x00000004, // models to display
|
|
ExpLevel = 0x00000008, // exp,level
|
|
Quests = 0x00000010, // quest status
|
|
Achievements = 0x00000020, // achievements
|
|
Discovery = 0x00000040, // Discovered places
|
|
Aetherytes = 0x00000080, // Attuned aetherytes
|
|
HomePoint = 0x00000100, // Current homepoint
|
|
HowTo = 0x00000200,
|
|
|
|
HpMp = 0x00000800,
|
|
QuestTracker = 0x00001000,
|
|
NewGame = 0x00002000,
|
|
OpeningSeq = 0x00004000,
|
|
Unlocks = 0x00008000,
|
|
PlayTime = 0x00010000,
|
|
NewAdventurer = 0x00020000,
|
|
SearchInfo = 0x00040000,
|
|
GC = 0x00080000,
|
|
|
|
CFPenaltyTime = 0x00100000,
|
|
|
|
All = 0xFFFFFFFF,
|
|
};
|
|
|
|
/**
|
|
* Structural representation of the packet sent by the server
|
|
* Send the entire StatusEffect list
|
|
*/
|
|
struct StatusEffect
|
|
{
|
|
uint16_t effect_id;
|
|
uint16_t unknown1;
|
|
float duration;
|
|
uint32_t sourceActorId;
|
|
};
|
|
|
|
enum struct ItemCategory : uint8_t
|
|
{
|
|
not_set = 0,
|
|
PugWep = 1,
|
|
GlaWep = 2,
|
|
MrdWep = 3,
|
|
ArcWep = 4,
|
|
LncWep = 5,
|
|
ThmWep = 6,
|
|
Thm2Wep = 7,
|
|
CnjWep = 8,
|
|
Cnj2Wep = 9,
|
|
ArnWep = 10,
|
|
Shield = 11,
|
|
CrpPri = 12,
|
|
BlmPri = 13,
|
|
ArmPri = 14,
|
|
GldPri = 15,
|
|
LtwPri = 16,
|
|
WvrPri = 17,
|
|
AlcPri = 18,
|
|
ClnPri = 19,
|
|
MinPri = 20,
|
|
BotPri = 21,
|
|
FshPri = 22,
|
|
CrpSec = 23,
|
|
BsmSec = 24,
|
|
ArmSec = 25,
|
|
GldSec = 26,
|
|
LtwSec = 27,
|
|
WvrSec = 28,
|
|
AlcSec = 29,
|
|
ClnSec = 30,
|
|
MinSec = 31,
|
|
BotSec = 32,
|
|
FshSec = 33,
|
|
Throw = 34,
|
|
Head = 35,
|
|
Body = 36,
|
|
Hands = 37,
|
|
Waist = 38,
|
|
Legs = 39,
|
|
Feet = 40,
|
|
UndShirt = 41,
|
|
UndGarm = 42,
|
|
Earring = 43,
|
|
Necklace = 44,
|
|
Bracelet = 45,
|
|
Ring = 46,
|
|
Crystal = 47,
|
|
Materia = 48,
|
|
Material = 49,
|
|
Food = 50,
|
|
Enhancement = 51,
|
|
Curative = 52,
|
|
PLaceholder = 53,
|
|
Enfeeb = 54,
|
|
Medecine = 55,
|
|
};
|
|
|
|
|
|
enum RegionType : uint8_t
|
|
{
|
|
normal,
|
|
instance,
|
|
};
|
|
|
|
enum CharaLook : uint8_t
|
|
{
|
|
Race = 0x00,
|
|
Gender = 0x01,
|
|
Tribe = 0x04,
|
|
Height = 0x03,
|
|
ModelType = 0x02, // Au Ra: changes horns/tails, everything else: seems to drastically change appearance (flip between two sets, odd/even numbers). sometimes retains hairstyle and other features
|
|
FaceType = 0x05,
|
|
HairStyle = 0x06,
|
|
HasHighlights = 0x07, // negative to enable, positive to disable
|
|
SkinColor = 0x08,
|
|
EyeColor = 0x09, // color of character's right eye
|
|
HairColor = 0x0A, // main color
|
|
HairColor2 = 0x0B, // highlights color
|
|
FaceFeatures = 0x0C, // seems to be a toggle, (-odd and +even for large face covering), opposite for small
|
|
FaceFeaturesColor = 0x0D,
|
|
Eyebrows = 0x0E,
|
|
EyeColor2 = 0x0F, // color of character's left eye
|
|
EyeShape = 0x10,
|
|
NoseShape = 0x11,
|
|
JawShape = 0x12,
|
|
LipStyle = 0x13, // lip colour depth and shape (negative values around -120 darker/more noticeable, positive no colour)
|
|
LipColor = 0x14,
|
|
RaceFeatureSize = 0x15,
|
|
RaceFeatureType = 0x16, // negative or out of range tail shapes for race result in no tail (e.g. Au Ra has max of 4 tail shapes), incorrect value can crash client
|
|
BustSize = 0x17, // char creator allows up to max of 100, i set to 127 cause who wouldnt but no visible difference
|
|
Facepaint = 0x18,
|
|
FacepaintColor = 0x19,
|
|
|
|
};
|
|
|
|
enum MoveType : uint16_t
|
|
{
|
|
Run = 0x00,
|
|
Walk = 0x02,
|
|
Strafe = 0x04,
|
|
Jump = 0x100,
|
|
Fall = 0x400,
|
|
Land = 0x200,
|
|
};
|
|
|
|
enum UserLevel : uint8_t
|
|
{
|
|
all = 0xff,
|
|
player = 0x01,
|
|
gm = 0x02,
|
|
dev = 0x04,
|
|
admin = 0x08
|
|
};
|
|
|
|
struct QuestActive
|
|
{
|
|
QuestActive()
|
|
{
|
|
c.questId = 0;
|
|
c.sequence = 0;
|
|
c.flags = 0;
|
|
c.UI8A = 0;
|
|
c.UI8B = 0;
|
|
c.UI8C = 0;
|
|
c.UI8D = 0;
|
|
c.UI8E = 0;
|
|
c.UI8F = 0;
|
|
c.padding = 0;
|
|
}
|
|
|
|
|
|
union
|
|
{
|
|
struct
|
|
{
|
|
uint16_t questId;
|
|
uint8_t sequence;
|
|
uint8_t flags;
|
|
uint8_t padding;
|
|
uint8_t BitFlag48;
|
|
uint8_t BitFlag40;
|
|
uint8_t BitFlag32;
|
|
uint8_t BitFlag24;
|
|
uint8_t BitFlag16;
|
|
uint8_t BitFlag8;
|
|
uint8_t padding1;
|
|
} a;
|
|
|
|
struct
|
|
{
|
|
uint16_t questId;
|
|
uint8_t sequence;
|
|
uint8_t flags;
|
|
uint8_t padding;
|
|
uint8_t UI8AL : 4;
|
|
uint8_t UI8AH : 4;
|
|
uint8_t UI8BL : 4;
|
|
uint8_t UI8BH : 4;
|
|
uint8_t UI8CL : 4;
|
|
uint8_t UI8CH : 4;
|
|
uint8_t UI8DL : 4;
|
|
uint8_t UI8DH : 4;
|
|
uint8_t UI8EL : 4;
|
|
uint8_t UI8EH : 4;
|
|
uint8_t UI8FL : 4;
|
|
uint8_t UI8FH : 4;
|
|
uint8_t padding1;
|
|
} b;
|
|
|
|
struct
|
|
{
|
|
uint16_t questId;
|
|
uint8_t sequence;
|
|
uint8_t flags;
|
|
uint8_t padding;
|
|
uint8_t UI8A;
|
|
uint8_t UI8B;
|
|
uint8_t UI8C;
|
|
uint8_t UI8D;
|
|
uint8_t UI8E;
|
|
uint8_t UI8F;
|
|
uint8_t padding1;
|
|
} c;
|
|
|
|
//struct
|
|
//{
|
|
// uint16_t questId;
|
|
// uint8_t sequence;
|
|
// uint8_t flags;
|
|
// uint8_t padding;
|
|
// uint16_t UI16A;
|
|
// uint16_t UI16B;
|
|
// uint16_t UI16C;
|
|
// uint8_t padding1;
|
|
//} d;
|
|
|
|
//struct
|
|
//{
|
|
// uint8_t padding;
|
|
// uint32_t UI32A;
|
|
// uint16_t padding2;
|
|
//} e;
|
|
};
|
|
|
|
|
|
};
|
|
|
|
enum EventType : uint16_t
|
|
{
|
|
Quest = 0x0001,
|
|
ChocoRent = 0x0002,
|
|
Shop = 0x0004,
|
|
Aetheryte = 0x0005,
|
|
GuildLeveAssign = 0x0006,
|
|
DefaultTalk = 0x0009,
|
|
CustomTalk = 0x000B,
|
|
CraftLeve = 0x000E,
|
|
ChocoPort = 0x0012,
|
|
Opening = 0x0013,
|
|
GCShop = 0x0016,
|
|
GuildOrderGuide = 0x0017,
|
|
GuildOrderOfficer = 0x0018,
|
|
Stories = 0x001A,
|
|
FcTalk = 0x001F,
|
|
};
|
|
|
|
enum struct ActionAspect : uint8_t
|
|
{
|
|
None = 0, // Doesn't imply unaspected
|
|
Fire = 1,
|
|
Ice = 2,
|
|
Wind = 3,
|
|
Stone = 4,
|
|
Lightning = 5,
|
|
Water = 6,
|
|
Unaspected = 7 // Doesn't imply magical unaspected damage - could be unaspected physical
|
|
};
|
|
|
|
enum struct ActionType : int8_t
|
|
{
|
|
WeaponOverride = -1, // Needs more investigation (takes the damage type of the equipped weapon)?
|
|
Unknown_0 = 0,
|
|
Slashing = 1,
|
|
Piercing = 2,
|
|
Blunt = 3,
|
|
Unknown_4 = 4,
|
|
Magical = 5,
|
|
Darkness = 6,
|
|
Unknown_7 = 7,
|
|
LimitBreak = 8,
|
|
};
|
|
|
|
enum ActionEffectType : uint8_t
|
|
{
|
|
Nothing = 0,
|
|
Miss = 1,
|
|
FullResist = 2,
|
|
Damage = 3,
|
|
Heal = 4,
|
|
BlockedDamage = 5,
|
|
ParriedDamage = 6,
|
|
Invulnerable = 7,
|
|
NoEffectText = 8,
|
|
Unknown_0 = 9,
|
|
MpLoss = 10,
|
|
MpGain = 11,
|
|
TpLoss = 12,
|
|
TpGain = 13,
|
|
GpGain = 14
|
|
};
|
|
|
|
enum ActionEffectSeverityType : uint8_t
|
|
{
|
|
Normal = 0,
|
|
Crit = 1,
|
|
DirectHit = 2,
|
|
CritDirectHit = 3
|
|
};
|
|
|
|
enum HandleActionType : uint8_t
|
|
{
|
|
Event,
|
|
Spell,
|
|
Teleport
|
|
};
|
|
|
|
enum HandleSkillType : uint8_t
|
|
{
|
|
StdDamage,
|
|
StdHeal,
|
|
StdDot,
|
|
};
|
|
|
|
enum struct PlayerStateFlag : uint8_t
|
|
{
|
|
NoCombat,
|
|
Combat,
|
|
Casting,
|
|
StatusAffliction,
|
|
StatusAffliction1,
|
|
Occupied,
|
|
Occupied1,
|
|
|
|
Occupied2,
|
|
Occupied3,
|
|
BoundByDuty,
|
|
Occupied4,
|
|
DuelingArea,
|
|
TradeOpen,
|
|
Occupied5,
|
|
HandlingItems,
|
|
Crafting,
|
|
PreparingToCraft,
|
|
Gathering,
|
|
Fishing,
|
|
BeingRaised,
|
|
BetweenAreas,
|
|
Stealthed,
|
|
InnRoom,
|
|
Jumping,
|
|
AutoRun,
|
|
Occupied6,
|
|
BetweenAreas1,
|
|
SystemError,
|
|
LoggingOut,
|
|
InvalidLocation,
|
|
WaitingForDuty,
|
|
|
|
BoundByDuty1,
|
|
Mounting,
|
|
WatchingCutscene,
|
|
WaitingForDutyFinder,
|
|
CreatingCharacter,
|
|
Jumping1,
|
|
PvpDisplay,
|
|
StatusAfflication2,
|
|
|
|
Mounting1,
|
|
CarryingItem,
|
|
UsingPartyFinder,
|
|
HousingFunctions,
|
|
Transformed,
|
|
FreeTrail,
|
|
BeingMoved,
|
|
Mounting2,
|
|
|
|
StatusAffliction3,
|
|
StatusAffliction4,
|
|
RegisteringRaceOrMatch,
|
|
WaitingForRaceOrMatch,
|
|
WaitingForTripleTriadMatch,
|
|
InFlight,
|
|
WatchingCutscene1,
|
|
DeepDungeon,
|
|
Swimming,
|
|
Diving,
|
|
RegisteringTripleTriad,
|
|
WaitingTripleTriad,
|
|
InCrossWorldParty
|
|
|
|
};
|
|
|
|
enum struct FateStatus : uint8_t
|
|
{
|
|
Active = 2,
|
|
Inactive = 4,
|
|
Preparing = 7,
|
|
Completed = 8,
|
|
};
|
|
|
|
enum struct OnlineStatus : uint8_t
|
|
{
|
|
None = 0,
|
|
Producer,
|
|
GameMaster,
|
|
GameMaster1,
|
|
GameMaster2,
|
|
Disconnected,
|
|
WaitFriendlistApproval,
|
|
WaitLinkshellApproval,
|
|
WaitFCApproval,
|
|
NotFound,
|
|
Offline,
|
|
Mentor,
|
|
Busy,
|
|
PvP,
|
|
TripleTriad,
|
|
Cutscene,
|
|
ChocoPorter,
|
|
Afk,
|
|
CameraMode,
|
|
LfRepairs,
|
|
LfRepair,
|
|
LfMeld,
|
|
RolePlaying,
|
|
LfParty,
|
|
SwordForHire,
|
|
WaitDutyFinder,
|
|
RecPartyMembers,
|
|
Mentor1,
|
|
PvEMentor,
|
|
TradeMentor,
|
|
PvPMentor,
|
|
Returner,
|
|
NewAdventurer,
|
|
AllianceLead,
|
|
AlliancePartyLead,
|
|
AllianceMember,
|
|
PartyLeader,
|
|
PartyMember,
|
|
PartyLeaderCross,
|
|
PartyMemberCross,
|
|
AnotherWorld,
|
|
SharingDuty,
|
|
SimliarDuty,
|
|
InDuty,
|
|
TrialAdventurer,
|
|
FreeCompany,
|
|
GrandCompany,
|
|
Online
|
|
|
|
};
|
|
|
|
enum ActorControlType : uint16_t
|
|
{
|
|
ToggleWeapon = 0x01,
|
|
SetStatus = 0x02,
|
|
CastStart = 0x03,
|
|
ToggleAggro = 0x04,
|
|
ClassJobChange = 0x05,
|
|
DefeatMsg = 0x06,
|
|
GainExpMsg = 0x07,
|
|
|
|
LevelUpEffect = 0x0A,
|
|
|
|
ExpChainMsg = 0x0C,
|
|
HpSetStat = 0x0D,
|
|
DeathAnimation = 0x0E,
|
|
CastInterrupt = 0x0F,
|
|
|
|
ActionStart = 0x11,
|
|
|
|
StatusEffectGain = 0x14,
|
|
StatusEffectLose = 0x15,
|
|
|
|
HPFloatingText = 0x17,
|
|
UpdateRestedExp = 0x018,
|
|
Unk2 = 0x19,
|
|
|
|
Flee = 0x1B,
|
|
|
|
Unk3 = 0x20, // Animation related?
|
|
|
|
CombatIndicationShow = 0x22,
|
|
|
|
SpawnEffect = 0x25,
|
|
ToggleInvisible = 0x26,
|
|
|
|
ToggleActionUnlock = 0x29,
|
|
|
|
UpdateUiExp = 0x2B,
|
|
DmgTakenMsg = 0x2D,
|
|
|
|
SetTarget = 0x32,
|
|
ToggleNameHidden = 0x36,
|
|
|
|
LimitbreakStart = 0x47,
|
|
LimitbreakPartyStart = 0x48,
|
|
BubbleText = 0x49,
|
|
|
|
DamageEffect = 0x50,
|
|
RaiseAnimation = 0x51,
|
|
TreasureScreenMsg = 0x57,
|
|
SetOwnerId = 0x59,
|
|
ItemRepairMsg = 0x5C,
|
|
|
|
LeveStartAnim = 0x66,
|
|
LeveStartError = 0x67,
|
|
PlayerNameGrayout = 0x6A,
|
|
|
|
ItemObtainMsg = 0x75,
|
|
DutyQuestScreenMsg = 0x7B,
|
|
|
|
ItemObtainIcon = 0x84,
|
|
FateItemFailMsg = 0x85,
|
|
ItemFailMsg = 0x86,
|
|
ActionLearnMsg1 = 0x87,
|
|
|
|
FreeEventPos = 0x8A,
|
|
|
|
UnlockAetherCurrentMsg = 0xA4,
|
|
|
|
RemoveName = 0xA8,
|
|
|
|
ScreenFadeOut = 0xAA,
|
|
|
|
ZoneIn = 0xC8,
|
|
ZoneInDefaultPos = 0xC9,
|
|
|
|
TeleportStart = 0xCB,
|
|
|
|
TeleportDone = 0xCD,
|
|
TeleportDoneFadeOut = 0xCE,
|
|
DespawnZoneScreenMsg = 0xCF,
|
|
|
|
InstanceSelectDlg = 0xD2,
|
|
ActorDespawnEffect = 0xD4,
|
|
|
|
CompanionUnlock = 0xFD,
|
|
ObtainBarding = 0xFE,
|
|
EquipBarding = 0xFF,
|
|
|
|
CompanionMsg1 = 0x102,
|
|
CompanionMsg2 = 0x103,
|
|
ShowPetHotbar = 0x104,
|
|
|
|
ActionLearnMsg = 0x109,
|
|
ActorFadeOut = 0x10A,
|
|
ActorFadeIn = 0x10B,
|
|
WithdrawMsg = 0x10C,
|
|
OrderMinion = 0x10D,
|
|
ToggleMinion = 0x10E,
|
|
LearnMinion = 0x10F,
|
|
ActorFateOut1 = 0x110,
|
|
|
|
Emote = 0x122,
|
|
|
|
SetPose = 0x127,
|
|
|
|
CraftingUnk = 0x12C,
|
|
|
|
GatheringSenseMsg = 0x130,
|
|
PartyMsg = 0x131,
|
|
GatheringSenseMsg1 = 0x132,
|
|
|
|
GatheringSenseMsg2 = 0x138,
|
|
|
|
FishingMsg = 0x140,
|
|
|
|
FishingBaitMsg = 0x145,
|
|
|
|
FishingReachMsg = 0x147,
|
|
FishingFailMsg = 0x148,
|
|
|
|
MateriaConvertMsg = 0x15E,
|
|
MeldSuccessMsg = 0x15F,
|
|
MeldFailMsg = 0x160,
|
|
MeldModeToggle = 0x161,
|
|
|
|
AetherRestoreMsg = 0x163,
|
|
|
|
DyeMsg = 0x168,
|
|
|
|
ToggleCrestMsg = 0x16A,
|
|
ToggleBulkCrestMsg = 0x16B,
|
|
MateriaRemoveMsg = 0x16C,
|
|
GlamourCastMsg = 0x16D,
|
|
GlamourRemoveMsg = 0x16E,
|
|
|
|
RelicInfuseMsg = 0x179,
|
|
|
|
AetherReductionDlg = 0x17D,
|
|
|
|
Unk6 = 0x19C,
|
|
|
|
SetTitle = 0x1F4,
|
|
|
|
SetStatusIcon = 0x1F8,
|
|
|
|
SetHomepoint = 0x1FB,
|
|
SetFavorite = 0x1FC,
|
|
LearnTeleport = 0x1FD,
|
|
|
|
ArmoryErrorMsg = 0x201,
|
|
|
|
AchievementPopup = 0x203,
|
|
|
|
Unk7 = 0x205, // LogMessage?
|
|
AchievementMsg = 0x206,
|
|
|
|
SetItemLevel = 0x209,
|
|
|
|
ChallengeEntryCompleteMsg = 0x20B,
|
|
ChallengeEntryUnlockMsg = 0x20C,
|
|
|
|
GilTrailMsg = 0x211,
|
|
|
|
SetMaxGearSets = 0x230,
|
|
|
|
ToggleDisplayHeadAndWeapon = 0x260,
|
|
|
|
GearSetEquipMsg = 0x321
|
|
};
|
|
|
|
enum struct ChatType : uint32_t
|
|
{
|
|
LogKindError,
|
|
ServerDebug,
|
|
ServerUrgent,
|
|
ServerNotice,
|
|
Unused4,
|
|
Unused5,
|
|
Unused6,
|
|
Unused7,
|
|
Unused8,
|
|
Unused9,
|
|
Say,
|
|
Shout,
|
|
Tell,
|
|
TellReceive,
|
|
Party,
|
|
Alliance,
|
|
LS1,
|
|
LS2,
|
|
LS3,
|
|
LS4,
|
|
LS5,
|
|
LS6,
|
|
LS7,
|
|
LS8,
|
|
FreeCompany,
|
|
Unused25,
|
|
Unused26,
|
|
NoviceNetwork,
|
|
CustomEmote,
|
|
StandardEmote,
|
|
Yell,
|
|
Unknown31,
|
|
PartyUnk2,
|
|
Unused33,
|
|
Unused34,
|
|
Unused35,
|
|
Unused36,
|
|
Unused37,
|
|
Unused38,
|
|
Unused39,
|
|
Unused40,
|
|
BattleDamage,
|
|
BattleFailed,
|
|
BattleActions,
|
|
BattleItems,
|
|
BattleHealing,
|
|
BattleBeneficial,
|
|
BattleDetrimental,
|
|
BattleUnk48,
|
|
BattleUnk49,
|
|
Unused50,
|
|
Unused51,
|
|
Unused52,
|
|
Unused53,
|
|
Unused54,
|
|
Unused55,
|
|
Echo,
|
|
SystemMessage,
|
|
SystemErrorMessage,
|
|
BattleSystem,
|
|
GatheringSystem,
|
|
NPCMessage,
|
|
LootMessage,
|
|
Unused63,
|
|
CharProgress,
|
|
Loot,
|
|
Crafting,
|
|
Gathering,
|
|
NPCAnnouncement,
|
|
FCAnnouncement,
|
|
FCLogin,
|
|
RetainerSale,
|
|
PartySearch,
|
|
PCSign,
|
|
DiceRoll,
|
|
NoviceNetworkNotice,
|
|
Unknown76,
|
|
Unused77,
|
|
Unused78,
|
|
Unused79,
|
|
GMTell,
|
|
GMSay,
|
|
GMShout,
|
|
GMYell,
|
|
GMParty,
|
|
GMFreeCompany,
|
|
GMLS1,
|
|
GMLS2,
|
|
GMLS3,
|
|
GMLS4,
|
|
GMLS5,
|
|
GMLS6,
|
|
GMLS7,
|
|
GMLS8,
|
|
GMNoviceNetwork,
|
|
Unused95,
|
|
Unused96,
|
|
Unused97,
|
|
Unused98,
|
|
Unused99,
|
|
Unused100
|
|
};
|
|
|
|
struct ServerEntry
|
|
{
|
|
uint32_t serverId;
|
|
uint32_t flags;
|
|
};
|
|
|
|
typedef std::vector< PlayerStateFlag > PlayerStateFlagList;
|
|
|
|
} /* Common */
|
|
} /* Core */
|
|
|
|
#endif
|