mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-04-26 14:37:44 +00:00
Merge pull request #46 from Minoost/matchmaking
Implement basic duty finder window response
This commit is contained in:
commit
db1832aeef
4 changed files with 66 additions and 10 deletions
|
@ -1309,17 +1309,13 @@ struct FFXIVIpcPrepareZoning : FFXIVIpcBasePacket<PrepareZoning>
|
|||
struct FFXIVIpcCFNotify : FFXIVIpcBasePacket<CFNotify>
|
||||
{
|
||||
uint32_t state1; // 3 = cancelled, 4 = duty ready
|
||||
uint32_t param; // if state1 == 3, state2 is cancelled reason
|
||||
uint32_t state2; // if state1 == 3, state2 is cancelled reason
|
||||
|
||||
uint8_t classJob; // classJobId you registered
|
||||
uint8_t unknown0[3];
|
||||
uint32_t param1; // usually classJobId
|
||||
uint32_t param2; // usually flag
|
||||
uint32_t param3; // usually languages, sometimes join in progress timestamp
|
||||
|
||||
uint32_t unknown1; // unknown, just used 0x20442 from the dumped packet
|
||||
|
||||
uint8_t languages;
|
||||
uint8_t unknown2[3];
|
||||
|
||||
uint16_t unknown3;
|
||||
uint16_t param4; // usually roulette id
|
||||
uint16_t contents[5];
|
||||
};
|
||||
|
||||
|
|
|
@ -83,6 +83,12 @@ Core::Network::GameConnection::GameConnection( Core::Network::HivePtr pHive,
|
|||
|
||||
setHandler( ClientIpcType::ReturnEventHandler, "EventHandlerReturn", &GameConnection::eventHandler );
|
||||
setHandler( ClientIpcType::TradeReturnEventHandler, "EventHandlerReturn", &GameConnection::eventHandler );
|
||||
|
||||
setHandler(ClientIpcType::CFDutyInfoHandler, "CFDutyInfoRequest", &GameConnection::cfDutyInfoRequest );
|
||||
setHandler(ClientIpcType::CFRegisterDuty, "CFRegisterDuty", &GameConnection::cfRegisterDuty );
|
||||
setHandler(ClientIpcType::CFRegisterRoulette, "CFRegisterRoulette", &GameConnection::cfRegisterRoulette );
|
||||
setHandler(ClientIpcType::CFCommenceHandler, "CFDutyAccepted", &GameConnection::cfDutyAccepted);
|
||||
|
||||
}
|
||||
|
||||
Core::Network::GameConnection::~GameConnection()
|
||||
|
|
|
@ -95,6 +95,13 @@ public:
|
|||
DECLARE_HANDLER( discoveryHandler );
|
||||
DECLARE_HANDLER( eventHandler );
|
||||
DECLARE_HANDLER( logoutHandler );
|
||||
|
||||
DECLARE_HANDLER( cfDutyInfoRequest );
|
||||
DECLARE_HANDLER( cfRegisterDuty );
|
||||
DECLARE_HANDLER( cfRegisterRoulette );
|
||||
DECLARE_HANDLER( cfDutyAccepted );
|
||||
|
||||
|
||||
DECLARE_HANDLER( skillHandler );
|
||||
|
||||
DECLARE_HANDLER( gm1Handler );
|
||||
|
|
|
@ -1139,3 +1139,50 @@ void Core::Network::GameConnection::logoutHandler( Core::Network::Packets::GameP
|
|||
logoutPacket.data().flags2 = 0x2000;
|
||||
queueOutPacket( logoutPacket );
|
||||
}
|
||||
|
||||
void Core::Network::GameConnection::cfDutyInfoRequest(Core::Network::Packets::GamePacketPtr pInPacket,
|
||||
Core::Entity::PlayerPtr pPlayer)
|
||||
{
|
||||
GamePacketNew< FFXIVIpcCFDutyInfo > dutyInfoPacket( pPlayer->getId() );
|
||||
queueOutPacket( dutyInfoPacket );
|
||||
|
||||
GamePacketNew< FFXIVIpcCFPlayerInNeed > inNeedsPacket( pPlayer->getId() );
|
||||
queueOutPacket( inNeedsPacket );
|
||||
|
||||
}
|
||||
|
||||
void Core::Network::GameConnection::cfRegisterDuty(Core::Network::Packets::GamePacketPtr pInPacket,
|
||||
Core::Entity::PlayerPtr pPlayer)
|
||||
{
|
||||
// TODO use for loop for this
|
||||
auto contentId1 = pInPacket->getValAt< uint16_t >( 46 );
|
||||
auto contentId2 = pInPacket->getValAt< uint16_t >( 48 );
|
||||
auto contentId3 = pInPacket->getValAt< uint16_t >( 50 );
|
||||
auto contentId4 = pInPacket->getValAt< uint16_t >( 52 );
|
||||
auto contentId5 = pInPacket->getValAt< uint16_t >( 54 );
|
||||
|
||||
pPlayer->sendDebug("Duty register request");
|
||||
pPlayer->sendDebug("ContentId1" + std::to_string(contentId1));
|
||||
pPlayer->sendDebug("ContentId2" + std::to_string(contentId2));
|
||||
pPlayer->sendDebug("ContentId3" + std::to_string(contentId3));
|
||||
pPlayer->sendDebug("ContentId4" + std::to_string(contentId4));
|
||||
pPlayer->sendDebug("ContentId5" + std::to_string(contentId5));
|
||||
|
||||
// let's cancel it because otherwise you can't register it again
|
||||
GamePacketNew< FFXIVIpcCFNotify > cfCancelPacket( pPlayer->getId() );
|
||||
cfCancelPacket.data().state1 = 3;
|
||||
cfCancelPacket.data().state2 = 1; // Your registration is withdrawn.
|
||||
queueOutPacket( cfCancelPacket );
|
||||
}
|
||||
|
||||
void Core::Network::GameConnection::cfRegisterRoulette(Core::Network::Packets::GamePacketPtr pInPacket,
|
||||
Core::Entity::PlayerPtr pPlayer)
|
||||
{
|
||||
pPlayer->sendDebug("Roulette register");
|
||||
}
|
||||
|
||||
void Core::Network::GameConnection::cfDutyAccepted(Core::Network::Packets::GamePacketPtr pInPacket,
|
||||
Core::Entity::PlayerPtr pPlayer)
|
||||
{
|
||||
pPlayer->sendDebug("TODO: Duty accept");
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue