From 036a561098eec095754c7eba6ab3cac4e8cd410b Mon Sep 17 00:00:00 2001 From: collett Date: Thu, 13 Jun 2024 05:51:47 +0900 Subject: [PATCH] fix social list and party --- src/common/Network/PacketDef/Ipcs.h | 26 +++++++++---------- .../Network/PacketDef/Zone/ServerZoneDef.h | 9 ++++--- src/world/Network/Handlers/PacketHandlers.cpp | 10 +++---- 3 files changed, 23 insertions(+), 22 deletions(-) diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index 5635590f..6bd71174 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -82,9 +82,9 @@ enum ServerZoneIpcType : SocialRequestError = 0xF0AD, CFRegistered = 0x029F, // updated 5.58h - SocialInviteResponse = 0x373, // updated 6.48 - SocialInviteUpdate = 0x03CB, // updated 5.58h - SocialInviteResult = 0x01D7, // updated 5.58h + SocialInviteResponse = 0x322, // updated 6.58 hotfix 2 + SocialInviteUpdate = 0x01C1, // updated 6.58 hotfix 2 + SocialInviteResult = 0x031B, // updated 6.58 hotfix 2 CancelAllianceForming = 0xF0C6, // updated 4.2 LogMessage = 0x19C, // updated 6.58 hotfix 2? @@ -162,8 +162,8 @@ enum ServerZoneIpcType : SomeCustomiseChangePacketProbably = 0x00CD, // added 5.18 - PartyList = 0x164, // updated 6.58 hotfix 2? - PartyUpdate = 0x2D8, // updated 6.58 hotfix 2? + PartyList = 0x164, // updated 6.58 hotfix 2 + PartyUpdate = 0x2D8, // updated 6.58 hotfix 2 HateRank = 0x2A7, // updated 6.58 hotfix 2 HateList = 0x26B, // updated 6.58 hotfix 2 ObjectSpawn = 0x03B8, // updated 6.58 hotfix 2 @@ -222,7 +222,7 @@ enum ServerZoneIpcType : MSQTrackerComplete = 0x1A9, // updated 6.58 hotfix 2 MSQTrackerProgress = 0xF1CD, // updated 4.5 ? this actually looks like the two opcodes have been combined, see #474 - QuestMessage = 0x0220, // updated 5.58h + QuestMessage = 0x06B, // updated 6.58 hotfix 2 QuestTracker = 0x27C, // updated 6.58 hotfix 2 @@ -351,15 +351,15 @@ enum ClientZoneIpcType : CancelLogout = 0x01e3, // updated 6.31h CFDutyInfoHandler = 0xF078, // updated 4.2 - SocialInviteHandler = 0x00D7, // updated 5.58h - SocialReplyHandler = 0x023B, // updated 5.58h + SocialInviteHandler = 0x00F5, // updated 6.58 hotfix 2 + SocialReplyHandler = 0x0160, // updated 6.58 hotfix 2 CreateCrossWorldLS = 0x9999, // updated 5.58h ChatHandler = 0x246, // updated 6.58 hotfix 2 - PartyChangeLeaderHandler = 0x036C, // updated 5.58h - PartyLeaveHandler = 0x019D, // updated 5.58h - PartyKickHandler = 0x0262, // updated 5.58h - PartyDisbandHandler = 0x0276, // updated 5.58h + PartyChangeLeaderHandler = 0x0E4, // updated 6.58 hotfix 2 + PartyLeaveHandler = 0x0373, // updated 6.58 hotfix 2 + PartyKickHandler = 0x013F, // updated 6.58 hotfix 2 + PartyDisbandHandler = 0x03BF, // updated 6.58 hotfix 2 SocialListHandler = 0x10B, // updated 6.58 hotfix 2 SetSearchInfoHandler = 0x01A0, // updated 6.58 hotfix 2 @@ -417,7 +417,7 @@ enum ClientZoneIpcType : ReturnEventHandler = 0x07D, // updated 6.58 hotfix 2 TradeReturnEventHandler = 0x166, // updated 6.58 hotfix 2 TradeReturnEventHandler2 = 0x37D, // updated 6.58 hotfix 2 - EventYield2Handler = 0x021D, // updated 5.58h + EventYield2Handler = 0x0273, // updated 6.58 hotfix 2 EventYield16Handler = 0x0207, // updated 5.58h LinkshellEventHandler = 0x9999, // unknown diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index e117a80b..28099a67 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -94,6 +94,7 @@ namespace Sapphire::Network::Packets::Server struct PlayerEntry { uint64_t contentId; + uint64_t unknown; uint8_t bytes[12]; uint16_t zoneId; uint16_t zoneId1; @@ -103,10 +104,10 @@ namespace Sapphire::Network::Packets::Server uint8_t padding; uint8_t level; uint8_t padding1; - uint16_t padding2; - uint8_t one; + uint8_t unknown2[8]; char name[0x20]; - char fcTag[9]; + char fcTag[6]; + uint8_t padding2[6]; }; struct FFXIVIpcSocialList : FFXIVIpcBasePacket< SocialList > @@ -2160,6 +2161,7 @@ namespace Sapphire::Network::Packets::Server struct FFXIVIpcSocialInviteUpdate : FFXIVIpcBasePacket< SocialInviteUpdate > { uint64_t contentId; + uint64_t unknown; uint32_t expireTime; uint8_t p1; uint8_t p2; @@ -2196,6 +2198,7 @@ namespace Sapphire::Network::Packets::Server struct PartyMember { char name[32]; + uint64_t unknown2; uint64_t contentId; uint32_t charaId; uint32_t u1; // 3.x ParentEntityId? diff --git a/src/world/Network/Handlers/PacketHandlers.cpp b/src/world/Network/Handlers/PacketHandlers.cpp index 2988e8fe..68d01fb2 100644 --- a/src/world/Network/Handlers/PacketHandlers.cpp +++ b/src/world/Network/Handlers/PacketHandlers.cpp @@ -442,10 +442,10 @@ void Sapphire::Network::GameConnection::socialListHandler( const Packets::FFXIVA auto fillEntryAt = [ &listPacket ]( int i, Entity::PlayerPtr nextPlayer, bool isLeader ) { - listPacket->data().entries[ i ].bytes[ 2 ] = nextPlayer->getCurrentTerritory()->getTerritoryTypeId(); - listPacket->data().entries[ i ].bytes[ 3 ] = 0x80; - listPacket->data().entries[ i ].bytes[ 4 ] = 0x02; - listPacket->data().entries[ i ].bytes[ 6 ] = 0x3B; + //listPacket->data().entries[ i ].bytes[ 2 ] = nextPlayer->getCurrentTerritory()->getTerritoryTypeId(); + //listPacket->data().entries[ i ].bytes[ 3 ] = 0x80; + //listPacket->data().entries[ i ].bytes[ 4 ] = 0x02; + //listPacket->data().entries[ i ].bytes[ 6 ] = 0x3B; listPacket->data().entries[ i ].bytes[ 8 ] = isLeader; listPacket->data().entries[ i ].bytes[ 11 ] = 0x10; listPacket->data().entries[ i ].classJob = static_cast< uint8_t >( nextPlayer->getClass() ); @@ -453,8 +453,6 @@ void Sapphire::Network::GameConnection::socialListHandler( const Packets::FFXIVA listPacket->data().entries[ i ].level = nextPlayer->getLevel(); listPacket->data().entries[ i ].zoneId = nextPlayer->getCurrentTerritory()->getTerritoryTypeId(); listPacket->data().entries[ i ].zoneId1 = 0x0100; - // TODO: no idea what this does - //listPacket.data().entries[0].one = 1; memcpy( listPacket->data().entries[ i ].name, nextPlayer->getName().c_str(), strlen( nextPlayer->getName().c_str() ) );