From 0d3e73e53138664458f4d5dcf9316419be376a5e Mon Sep 17 00:00:00 2001 From: NotAdam Date: Thu, 2 Jan 2020 14:42:58 +1100 Subject: [PATCH 1/2] fix eventplay opcodes/names --- src/common/Network/PacketDef/Ipcs.h | 9 +++++-- .../Network/PacketDef/Zone/ServerZoneDef.h | 26 ++++++++++++------- src/world/Actor/PlayerEvent.cpp | 2 +- 3 files changed, 25 insertions(+), 12 deletions(-) diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index 57de2993..25bfd914 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -180,8 +180,13 @@ namespace Sapphire::Network::Packets HuntingLogEntry = 0x01B3, // updated 5.0 EventPlay = 0x0279, // updated 5.18 - DirectorPlayScene = 0x01B9, // updated 5.0 - EventOpenGilShop = 0x01B1, // updated 5.18 + EventPlay4 = 0x02F7, // updated 5.18 + EventPlay8 = 0x0119, // updated 5.18 + EventPlay16 = 0x01FB, // updated 5.18 + EventPlay32 = 0x0364, // updated 5.18 + EventPlay64 = 0x00E5, // updated 5.18 + EventPlay128 = 0x02BE, // updated 5.18 + EventPlay255 = 0x01B1, // updated 5.18 EventStart = 0x0230, // updated 5.18 EventFinish = 0x01E4, // updated 5.18 diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index 33915278..f2075f74 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1421,11 +1421,24 @@ namespace Sapphire::Network::Packets::Server uint8_t unknown[8]; }; + template< int ArgCount > + struct FFXIVIpcEventPlayN + { + uint64_t actorId; + uint32_t eventId; + uint16_t scene; + uint16_t padding; + uint32_t sceneFlags; + uint8_t paramCount; + uint8_t padding2[3]; + uint32_t params[ArgCount]; + }; + /** * Structural representation of the packet sent by the server * to play an event */ - struct FFXIVIpcDirectorPlayScene : FFXIVIpcBasePacket< DirectorPlayScene > + struct FFXIVIpcDirectorPlayScene : FFXIVIpcBasePacket< EventPlay32 > { uint64_t actorId; uint32_t eventId; @@ -1454,15 +1467,10 @@ namespace Sapphire::Network::Packets::Server /* 000C */ uint32_t padding1; }; - struct FFXIVIpcEventOpenGilShop : FFXIVIpcBasePacket< EventOpenGilShop > + struct FFXIVIpcEventPlay255 : + FFXIVIpcBasePacket< EventPlay255 >, + FFXIVIpcEventPlayN< 255 > { - uint64_t actorId; - uint32_t eventId; - uint16_t scene; - uint16_t padding; - uint32_t sceneFlags; - - uint32_t unknown_wtf[0x101]; }; diff --git a/src/world/Actor/PlayerEvent.cpp b/src/world/Actor/PlayerEvent.cpp index b4fb05a1..15c84470 100644 --- a/src/world/Actor/PlayerEvent.cpp +++ b/src/world/Actor/PlayerEvent.cpp @@ -141,7 +141,7 @@ void Sapphire::Entity::Player::playGilShop( uint32_t eventId, uint32_t flags, pEvent->setEventReturnCallback( eventCallback ); pEvent->setSceneChainCallback( nullptr ); - auto openGilShopPacket = makeZonePacket< Server::FFXIVIpcEventOpenGilShop >( getId() ); + auto openGilShopPacket = makeZonePacket< Server::FFXIVIpcEventPlay255 >( getId() ); openGilShopPacket->data().eventId = eventId; openGilShopPacket->data().sceneFlags = flags; openGilShopPacket->data().actorId = getId(); From 7deae36146ed9ba732ae154da1ae05483afa6812 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Thu, 2 Jan 2020 15:10:04 +1100 Subject: [PATCH 2/2] more 5.18 opcodes --- src/common/Network/PacketDef/Ipcs.h | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index 25bfd914..88e219b6 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -190,8 +190,6 @@ namespace Sapphire::Network::Packets EventStart = 0x0230, // updated 5.18 EventFinish = 0x01E4, // updated 5.18 - EventUnk0 = 0x02F7, // updated 5.18 - EventUnk1 = 0x0100, // updated 5.18 UseMooch = 0x0233, // updated 5.18 EventLinkshell = 0x1169, @@ -210,8 +208,15 @@ namespace Sapphire::Network::Packets Mount = 0x02F0, // updated 5.18 - DirectorVars = 0x01F5, // updated 5.0 - DirectorPopUp = 0x0200, // updated 5.0 - display dialogue pop-ups in duties and FATEs, for example, Teraflare's countdown + DirectorVars = 0x00E6, // updated 5.18 + SomeDirectorUnk1 = 0x0084, // updated 5.18 + SomeDirectorUnk2 = 0x00C1, // updated 5.18 + SomeDirectorUnk4 = 0x0100, // updated 5.18 + SomeDirectorUnk8 = 0x028A, // updated 5.18 + SomeDirectorUnk16 = 0x028C, // updated 5.18 + DirectorPopUp = 0x0162, // updated 5.18 - display dialogue pop-ups in duties and FATEs, for example, Teraflare's countdown + DirectorPopUp4 = 0x0214, // updated 5.18 + DirectorPopUp8 = 0x00F8, // updated 5.18 CFAvailableContents = 0xF1FD, // updated 4.2