1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-05-01 00:27:44 +00:00

fix social list and party

This commit is contained in:
collett 2024-06-13 05:51:47 +09:00
parent 34320ed78c
commit 036a561098
3 changed files with 23 additions and 22 deletions

View file

@ -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

View file

@ -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?

View file

@ -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() ) );