From ce6cd7dea25ef2a68edf3650886b6dd107db5345 Mon Sep 17 00:00:00 2001 From: JeidoUran Date: Wed, 17 Apr 2019 00:29:04 +0200 Subject: [PATCH 1/5] ActorControl and OpCode findings --- src/common/Network/CommonActorControl.h | 3 +++ src/common/Network/PacketDef/Ipcs.h | 1 + 2 files changed, 4 insertions(+) diff --git a/src/common/Network/CommonActorControl.h b/src/common/Network/CommonActorControl.h index 41de0801..377c6f29 100644 --- a/src/common/Network/CommonActorControl.h +++ b/src/common/Network/CommonActorControl.h @@ -77,6 +77,7 @@ enum ActorControlType : uint16_t TreasureScreenMsg = 0x57, SetOwnerId = 0x59, ItemRepairMsg = 0x5C, + BluActionLearn = 0x63, // Triggers the "Action Learned!" animation and tells which action is learned. Any action ID may be used DirectorInit = 0x64, DirectorClear = 0x65, @@ -287,6 +288,8 @@ enum ActorControlType : uint16_t SetDutyActionHud = 0x5E9, // disable/enable SetDutyActionActive = 0x5EA, SetDutyActionRemaining = 0x5EB, + + EurekaStep = 0x73A, // alters the Eureka maps depending on the progress of the player }; enum ClientTriggerType diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index 0124a427..daed4d35 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -182,6 +182,7 @@ namespace Sapphire::Network::Packets Mount = 0x01E8, // updated 4.5 DirectorVars = 0x01EA, // updated 4.5 + DirectorPopUp = 0x01F5, // display dialogue pop-ups in duties and FATEs, for example, Teraflare's countdown CFAvailableContents = 0xF1FD, // updated 4.2 From 39a5f254782b10a919850b73a848103c221d0a00 Mon Sep 17 00:00:00 2001 From: JeidoUran Date: Wed, 17 Apr 2019 00:31:19 +0200 Subject: [PATCH 2/5] Added worldId to Examine, and world name properly displays World name displays in the HUD and in the Examine window --- src/common/Network/PacketDef/Zone/ServerZoneDef.h | 4 +++- src/world/Network/PacketWrappers/ExaminePacket.h | 2 ++ src/world/Network/PacketWrappers/PlayerSpawnPacket.h | 4 ++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index b6a6180c..da45d3a3 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1039,7 +1039,9 @@ namespace Sapphire::Network::Packets::Server char padding1[8]; uint64_t mainWeaponModel; uint64_t secWeaponModel; - char unknown2[16]; + uint8_t unknown2; + uint16_t worldId; + char unknown3[12]; struct ItemData { uint32_t catalogId; diff --git a/src/world/Network/PacketWrappers/ExaminePacket.h b/src/world/Network/PacketWrappers/ExaminePacket.h index cd6bbb7b..37baee37 100644 --- a/src/world/Network/PacketWrappers/ExaminePacket.h +++ b/src/world/Network/PacketWrappers/ExaminePacket.h @@ -49,6 +49,8 @@ namespace Sapphire::Network::Packets::Server m_data.mainWeaponModel = pTarget->getModelMainWeapon(); m_data.secWeaponModel = pTarget->getModelSubWeapon(); + m_data.worldId = 67; // TODO: world id from server + memcpy( m_data.look, pTarget->getLookArray(), sizeof( m_data.look ) ); m_data.models[ Common::GearModelSlot::ModelHead ] = pTarget->getModelForSlot( Common::GearModelSlot::ModelHead ); diff --git a/src/world/Network/PacketWrappers/PlayerSpawnPacket.h b/src/world/Network/PacketWrappers/PlayerSpawnPacket.h index 3ca8304e..14e16754 100644 --- a/src/world/Network/PacketWrappers/PlayerSpawnPacket.h +++ b/src/world/Network/PacketWrappers/PlayerSpawnPacket.h @@ -31,6 +31,10 @@ namespace Sapphire::Network::Packets::Server m_data.classJob = static_cast< uint8_t >( player.getClass() ); //m_data.status = static_cast< uint8_t >( pPlayer->getStatus() ); +// TODO: world id from server + m_data.currentWorldId = 67; + m_data.homeWorldId = 67; + m_data.hPCurr = player.getHp(); m_data.mPCurr = player.getMp(); m_data.tPCurr = player.getTp(); From 1338ab1a96687ef5455b18bccfe3d65887224818 Mon Sep 17 00:00:00 2001 From: JeidoUran Date: Wed, 17 Apr 2019 00:50:36 +0200 Subject: [PATCH 3/5] NpcSpawn findings and added info on actrl 0x73A --- src/common/Network/CommonActorControl.h | 2 +- src/common/Network/PacketDef/Zone/ServerZoneDef.h | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/common/Network/CommonActorControl.h b/src/common/Network/CommonActorControl.h index 377c6f29..016d824c 100644 --- a/src/common/Network/CommonActorControl.h +++ b/src/common/Network/CommonActorControl.h @@ -289,7 +289,7 @@ enum ActorControlType : uint16_t SetDutyActionActive = 0x5EA, SetDutyActionRemaining = 0x5EB, - EurekaStep = 0x73A, // alters the Eureka maps depending on the progress of the player + EurekaStep = 0x73A, // alters the progress of the player on Eureka (is used for all the eureka zones) }; enum ClientTriggerType diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index da45d3a3..967e38d1 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -610,7 +610,8 @@ namespace Sapphire::Network::Packets::Server uint8_t mountFeet; uint8_t mountColor; uint8_t scale; - uint32_t u29b; + uint16_t elementalLevel; // Eureka + uint16_t element; // Eureka uint32_t u30b; Common::StatusEffect effect[30]; Common::FFXIVARR_POSITION3 pos; From a168eb6995d020afe79f54d44939a505ee03ca6c Mon Sep 17 00:00:00 2001 From: JeidoUran Date: Wed, 17 Apr 2019 16:35:17 +0200 Subject: [PATCH 4/5] More info on actrl 0x63 --- src/common/Network/CommonActorControl.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/common/Network/CommonActorControl.h b/src/common/Network/CommonActorControl.h index 016d824c..cb396f51 100644 --- a/src/common/Network/CommonActorControl.h +++ b/src/common/Network/CommonActorControl.h @@ -77,7 +77,7 @@ enum ActorControlType : uint16_t TreasureScreenMsg = 0x57, SetOwnerId = 0x59, ItemRepairMsg = 0x5C, - BluActionLearn = 0x63, // Triggers the "Action Learned!" animation and tells which action is learned. Any action ID may be used + BluActionLearn = 0x63, // Displays "Action Learned!" animation. Only used for visual, doesn't actually unlock it. param1: actionId. param2: 0 = text only, 1 = text+animation DirectorInit = 0x64, DirectorClear = 0x65, From dc6300d13a4b58159262dfe1beedb46719e93cdc Mon Sep 17 00:00:00 2001 From: JeidoUran Date: Wed, 17 Apr 2019 18:46:34 +0200 Subject: [PATCH 5/5] Verification needed --- src/common/Network/CommonActorControl.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/common/Network/CommonActorControl.h b/src/common/Network/CommonActorControl.h index cb396f51..b3ecf167 100644 --- a/src/common/Network/CommonActorControl.h +++ b/src/common/Network/CommonActorControl.h @@ -77,7 +77,7 @@ enum ActorControlType : uint16_t TreasureScreenMsg = 0x57, SetOwnerId = 0x59, ItemRepairMsg = 0x5C, - BluActionLearn = 0x63, // Displays "Action Learned!" animation. Only used for visual, doesn't actually unlock it. param1: actionId. param2: 0 = text only, 1 = text+animation + BluActionLearn = 0x63, // Displays "Action Learned!" animation. Only used for visual, doesn't actually unlock it. param1: actionId. param2: 0 = text only, 1 = text+animation. Verification needed DirectorInit = 0x64, DirectorClear = 0x65,