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

fix CF register

This commit is contained in:
collett 2024-06-12 19:39:09 +09:00
parent 6953dfc6f2
commit f5149c9625
3 changed files with 10 additions and 13 deletions

View file

@ -341,10 +341,10 @@ enum ClientZoneIpcType :
FinishLoadingHandler = 0x12A, // updated 6.58 hotfix 2 FinishLoadingHandler = 0x12A, // updated 6.58 hotfix 2
CFCommenceHandler = 0x0381, // updated 5.58h CFCommenceHandler = 0x0242, // updated 6.58 hotfix 2
CFCancelHandler = 0x02B2, // updated 5.58h CFCancelHandler = 0x02B2, // updated 5.58h
CFRegisterDuty = 0x01BD, // updated 5.58h CFRegisterDuty = 0x0312, // updated 6.58 hotfix 2
CFRegisterRoulette = 0x037A, // updated 5.58h CFRegisterRoulette = 0x037A, // updated 5.58h
PlayTimeHandler = 0x02B7, // updated 5.58h PlayTimeHandler = 0x02B7, // updated 5.58h
LogoutHandler = 0x384, // updated 6.58 hotfix 2 LogoutHandler = 0x384, // updated 6.58 hotfix 2

View file

@ -1607,15 +1607,12 @@ namespace Sapphire::Network::Packets::Server
*/ */
struct FFXIVIpcCFNotify : FFXIVIpcBasePacket< CFNotify > struct FFXIVIpcCFNotify : FFXIVIpcBasePacket< CFNotify >
{ {
uint32_t state1; // 3 = cancelled, 4 = duty ready uint32_t state1;
uint32_t state2; // if state1 == 3, state2 is cancelled reason uint32_t unknown[5];
uint32_t param1; // usually classJobId uint32_t unknown_one;
uint32_t param2; // usually flag
uint32_t param3; // usually languages, sometimes join in progress timestamp
uint16_t param4; // usually roulette id
uint16_t contents[5]; uint16_t contents[5];
uint16_t padding;
}; };
/** /**

View file

@ -46,7 +46,7 @@ void Sapphire::Network::GameConnection::cfRegisterDuty( const Packets::FFXIVARR_
Packets::FFXIVARR_PACKET_RAW copy = inPacket; Packets::FFXIVARR_PACKET_RAW copy = inPacket;
std::vector< uint16_t > selectedContent; std::vector< uint16_t > selectedContent;
for( uint32_t offset = 0x1E; offset <= 0x26; offset += 0x2 ) for( uint32_t offset = 0x2A; offset <= 0x32; offset += 0x2 )
{ {
auto id = *reinterpret_cast< uint16_t* >( &copy.data[ offset ] ); auto id = *reinterpret_cast< uint16_t* >( &copy.data[ offset ] );
if( id == 0 ) if( id == 0 )
@ -64,9 +64,9 @@ void Sapphire::Network::GameConnection::cfRegisterDuty( const Packets::FFXIVARR_
player.sendDebug( "Duty register request for contentFinderConditionId#{0}", contentFinderConditionId ); player.sendDebug( "Duty register request for contentFinderConditionId#{0}", contentFinderConditionId );
player.m_cfNotifiedContent = contentFinderConditionId; player.m_cfNotifiedContent = contentFinderConditionId;
auto notify = makeZonePacket< FFXIVIpcCFNotify >( player.getId() ); auto notify = makeZonePacket< FFXIVIpcCFNotify >( player.getId() );
notify->data().state1 = 8195; notify->data().state1 = 3;
notify->data().param3 = 1; notify->data().unknown_one = 1;
notify->data().param4 = contentFinderConditionId; notify->data().contents[ 0 ] = contentFinderConditionId;
player.queuePacket( notify ); player.queuePacket( notify );
} }