1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-04-26 06:27:45 +00:00

Merge pull request #663 from collett8192/update_5.25

Fix CFCancel, more opcode update.
This commit is contained in:
Mordred 2020-05-01 14:01:04 +02:00 committed by GitHub
commit 159a3fb76e
5 changed files with 49 additions and 22 deletions

View file

@ -61,7 +61,7 @@ namespace Sapphire::Network::Packets
/////////////////////////////////////////////////// ///////////////////////////////////////////////////
ChatBanned = 0x006B, ChatBanned = 0xF06B,
Playtime = 0x0286, // updated 5.25 Playtime = 0x0286, // updated 5.25
Logout = 0x00CD, // updated 5.25 Logout = 0x00CD, // updated 5.25
CFNotify = 0x0145, // updated 5.25 CFNotify = 0x0145, // updated 5.25
@ -69,7 +69,7 @@ namespace Sapphire::Network::Packets
CFDutyInfo = 0x007A, CFDutyInfo = 0x007A,
CFPlayerInNeed = 0xF07F, CFPlayerInNeed = 0xF07F,
CFPreferredRole = 0x0186, // added 5.25 CFPreferredRole = 0x0186, // added 5.25
CFCancel = 0x00B7, // updated 5.25
SocialRequestError = 0xF0AD, SocialRequestError = 0xF0AD,
CFRegistered = 0x00B8, // updated 4.1 CFRegistered = 0x00B8, // updated 4.1
@ -80,7 +80,7 @@ namespace Sapphire::Network::Packets
Chat = 0x0161, // updated 5.25 Chat = 0x0161, // updated 5.25
WorldVisitList = 0x00FE, // added 4.5 WorldVisitList = 0xF0FE, // added 4.5
SocialList = 0x0269, // updated 5.25 SocialList = 0x0269, // updated 5.25
@ -93,7 +93,7 @@ namespace Sapphire::Network::Packets
ServerNotice = 0x00E9, // updated 5.25 ServerNotice = 0x00E9, // updated 5.25
SetOnlineStatus = 0x0381, // updated 5.25 SetOnlineStatus = 0x0381, // updated 5.25
CountdownInitiate = 0x0309, // updated 5.11 CountdownInitiate = 0x0237, // updated 5.25
CountdownCancel = 0x00D9, // updated 5.18 CountdownCancel = 0x00D9, // updated 5.18
PlayerAddedToBlacklist = 0x033F, // updated 5.1 PlayerAddedToBlacklist = 0x033F, // updated 5.1
@ -102,7 +102,7 @@ namespace Sapphire::Network::Packets
LinkshellList = 0x00A9, // updated 5.25 LinkshellList = 0x00A9, // updated 5.25
MailDeleteRequest = 0x012B, // updated 5.0 MailDeleteRequest = 0xF12B, // updated 5.0
// 12D - 137 - constant gap between 4.5x -> 5.0 // 12D - 137 - constant gap between 4.5x -> 5.0
ReqMoogleMailList = 0x0138, // updated 5.0 ReqMoogleMailList = 0x0138, // updated 5.0
@ -118,10 +118,10 @@ namespace Sapphire::Network::Packets
CharaFreeCompanyTag = 0x013B, // updated 4.5 CharaFreeCompanyTag = 0x013B, // updated 4.5
FreeCompanyBoardMsg = 0x013C, // updated 4.5 FreeCompanyBoardMsg = 0x013C, // updated 4.5
FreeCompanyInfo = 0x013D, // updated 4.5 FreeCompanyInfo = 0xF13D, // updated 4.5
ExamineFreeCompanyInfo = 0x013E, // updated 4.5 ExamineFreeCompanyInfo = 0xF13E, // updated 4.5
FreeCompanyUpdateShortMessage = 0x0157, // added 5.0 FreeCompanyUpdateShortMessage = 0xF157, // added 5.0
StatusEffectList = 0x01D7, // updated 5.25 StatusEffectList = 0x01D7, // updated 5.25
EurekaStatusEffectList = 0x0167, // updated 5.18 EurekaStatusEffectList = 0x0167, // updated 5.18
@ -177,13 +177,13 @@ namespace Sapphire::Network::Packets
InventoryActionAck = 0x01AE, // updated 5.25 InventoryActionAck = 0x01AE, // updated 5.25
UpdateInventorySlot = 0x0151, // updated 5.25 UpdateInventorySlot = 0x0151, // updated 5.25
HuntingLogEntry = 0x01B3, // updated 5.0 HuntingLogEntry = 0xF1B3, // updated 5.0
EventPlay = 0x02C3, // updated 5.25 EventPlay = 0x02C3, // updated 5.25
EventPlay4 = 0x029A, // updated 5.25 EventPlay4 = 0x029A, // updated 5.25
EventPlay8 = 0x0119, // updated 5.18 EventPlay8 = 0x0119, // updated 5.18
EventPlay16 = 0x01FB, // updated 5.18 EventPlay16 = 0x01FB, // updated 5.18
EventPlay32 = 0x017D, // updated 5.21 EventPlay32 = 0x02D9, // updated 5.25
EventPlay64 = 0x00E5, // updated 5.18 EventPlay64 = 0x00E5, // updated 5.18
EventPlay128 = 0x02BE, // updated 5.18 EventPlay128 = 0x02BE, // updated 5.18
EventPlay255 = 0x01AC, // updated 5.25 EventPlay255 = 0x01AC, // updated 5.25
@ -213,7 +213,7 @@ namespace Sapphire::Network::Packets
SomeDirectorUnk4 = 0x01F3, // updated 5.21 hotfix SomeDirectorUnk4 = 0x01F3, // updated 5.21 hotfix
SomeDirectorUnk8 = 0x028A, // updated 5.18 SomeDirectorUnk8 = 0x028A, // updated 5.18
SomeDirectorUnk16 = 0x028C, // 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 DirectorPopUp = 0xF162, // updated 5.18 - display dialogue pop-ups in duties and FATEs, for example, Teraflare's countdown
DirectorPopUp4 = 0x0214, // updated 5.18 DirectorPopUp4 = 0x0214, // updated 5.18
DirectorPopUp8 = 0x00F8, // updated 5.18 DirectorPopUp8 = 0x00F8, // updated 5.18
@ -234,17 +234,17 @@ namespace Sapphire::Network::Packets
YardObjectSpawn = 0x0236, // updated 5.0 YardObjectSpawn = 0x0236, // updated 5.0
HousingIndoorInitialize = 0x0237, // updated 5.0 HousingIndoorInitialize = 0x0237, // updated 5.0
LandPriceUpdate = 0x0238, // updated 5.0 LandPriceUpdate = 0x0238, // updated 5.0
LandInfoSign = 0x0239, // updated 5.0 LandInfoSign = 0x037F, // updated 5.25
LandRename = 0x023A, // updated 5.0 LandRename = 0x023A, // updated 5.0
HousingEstateGreeting = 0x023B, // updated 5.0 HousingEstateGreeting = 0x023B, // updated 5.0
HousingUpdateLandFlagsSlot = 0x023C, // updated 5.0 HousingUpdateLandFlagsSlot = 0x023C, // updated 5.0
HousingLandFlags = 0x0177, // updated 5.25 HousingLandFlags = 0x0177, // updated 5.25
HousingShowEstateGuestAccess = 0x023E, // updated 5.0 HousingShowEstateGuestAccess = 0x023E, // updated 5.0
HousingObjectInitialize = 0x0240, // updated 5.0 HousingObjectInitialize = 0x0333, // updated 5.25
HousingInternalObjectSpawn = 0x241, // updated 5.0 HousingInternalObjectSpawn = 0x241, // updated 5.0
HousingWardInfo = 0x0243, // updated 5.0 HousingWardInfo = 0x01D1, // updated 5.25
HousingObjectMove = 0x0244, // updated 5.0 HousingObjectMove = 0x0244, // updated 5.0
SharedEstateSettingsResponse = 0x0245, // updated 4.5 SharedEstateSettingsResponse = 0x0245, // updated 4.5
@ -288,12 +288,12 @@ namespace Sapphire::Network::Packets
FinishLoadingHandler = 0x008A, // updated 5.25 FinishLoadingHandler = 0x008A, // updated 5.25
CFCommenceHandler = 0x0078, // updated 5.21 hotfix CFCommenceHandler = 0x0228, // updated 5.25
CFCancelHandler = 0x013E, // updated 5.25
CFRegisterDuty = 0x0118, // updated 5.21 hotfix CFRegisterDuty = 0x0180, // updated 5.25
CFRegisterRoulette = 0x037A, // updated 5.21 hotfix CFRegisterRoulette = 0x0395, // updated 5.25
PlayTimeHandler = 0x0276, // updated 5.1 PlayTimeHandler = 0x02FE, // updated 5.25
LogoutHandler = 0x00B7, // updated 5.25 LogoutHandler = 0x00B7, // updated 5.25
CancelLogout = 0x008F, // updated 5.1 CancelLogout = 0x008F, // updated 5.1
@ -329,8 +329,8 @@ namespace Sapphire::Network::Packets
ReqJoinNoviceNetwork = 0x0129, // updated 4.2 ReqJoinNoviceNetwork = 0x0129, // updated 4.2
ReqCountdownInitiate = 0x0135, // updated 5.0 ReqCountdownInitiate = 0x009A, // updated 5.25
ReqCountdownCancel = 0x0136, // updated 5.0 ReqCountdownCancel = 0x0244, // updated 5.25
ZoneLineHandler = 0x0214, // updated 5.25 ZoneLineHandler = 0x0214, // updated 5.25
ClientTrigger = 0x017D, // updated 5.25 ClientTrigger = 0x017D, // updated 5.25
@ -368,7 +368,7 @@ namespace Sapphire::Network::Packets
LandRenameHandler = 0xF177, // updated 5.0 LandRenameHandler = 0xF177, // updated 5.0
HousingUpdateHouseGreeting = 0x0178, // updated 5.0 HousingUpdateHouseGreeting = 0x0178, // updated 5.0
HousingUpdateObjectPosition = 0xF179, // updated 5.0 HousingUpdateObjectPosition = 0x0159, // updated 5.25
SetSharedEstateSettings = 0x017B, // updated 5.0 SetSharedEstateSettings = 0x017B, // updated 5.0

View file

@ -1999,6 +1999,12 @@ namespace Sapphire::Network::Packets::Server
uint32_t padding; uint32_t padding;
}; };
struct FFXIVIpcCFCancel : FFXIVIpcBasePacket< CFCancel >
{
uint32_t cancelReason;
uint32_t unknown2;
};
} }
#endif /*_CORE_NETWORK_PACKETS_SERVER_IPC_H*/ #endif /*_CORE_NETWORK_PACKETS_SERVER_IPC_H*/

View file

@ -117,6 +117,7 @@ Sapphire::Network::GameConnection::GameConnection( Sapphire::Network::HivePtr pH
setZoneHandler( ClientZoneIpcType::CFRegisterDuty, "CFRegisterDuty", &GameConnection::cfRegisterDuty ); setZoneHandler( ClientZoneIpcType::CFRegisterDuty, "CFRegisterDuty", &GameConnection::cfRegisterDuty );
setZoneHandler( ClientZoneIpcType::CFRegisterRoulette, "CFRegisterRoulette", &GameConnection::cfRegisterRoulette ); setZoneHandler( ClientZoneIpcType::CFRegisterRoulette, "CFRegisterRoulette", &GameConnection::cfRegisterRoulette );
setZoneHandler( ClientZoneIpcType::CFCommenceHandler, "CFDutyAccepted", &GameConnection::cfDutyAccepted ); setZoneHandler( ClientZoneIpcType::CFCommenceHandler, "CFDutyAccepted", &GameConnection::cfDutyAccepted );
setZoneHandler( ClientZoneIpcType::CFCancelHandler, "CFCancel", &GameConnection::cfCancel );
setZoneHandler( ClientZoneIpcType::ReqEquipDisplayFlagsChange, "ReqEquipDisplayFlagsChange", setZoneHandler( ClientZoneIpcType::ReqEquipDisplayFlagsChange, "ReqEquipDisplayFlagsChange",
&GameConnection::reqEquipDisplayFlagsHandler ); &GameConnection::reqEquipDisplayFlagsHandler );

View file

@ -155,6 +155,8 @@ namespace Sapphire::Network
DECLARE_HANDLER( cfDutyAccepted ); DECLARE_HANDLER( cfDutyAccepted );
DECLARE_HANDLER( cfCancel );
DECLARE_HANDLER( actionHandler ); DECLARE_HANDLER( actionHandler );
DECLARE_HANDLER( placedActionHandler ); DECLARE_HANDLER( placedActionHandler );

View file

@ -66,10 +66,15 @@ void Sapphire::Network::GameConnection::cfRegisterDuty( const Packets::FFXIVARR_
player.sendDebug( "Duty register request for contentid#{0}", contentId ); player.sendDebug( "Duty register request for contentid#{0}", contentId );
// let's cancel it because otherwise you can't register it again // let's cancel it because otherwise you can't register it again
/*
auto cfCancelPacket = makeZonePacket< FFXIVIpcCFNotify >( player.getId() ); auto cfCancelPacket = makeZonePacket< FFXIVIpcCFNotify >( player.getId() );
cfCancelPacket->data().state1 = 3; cfCancelPacket->data().state1 = 3;
cfCancelPacket->data().state2 = 1; // Your registration is withdrawn. cfCancelPacket->data().state2 = 1; // Your registration is withdrawn.
queueOutPacket( cfCancelPacket ); queueOutPacket( cfCancelPacket );
*/
auto packet = makeZonePacket< FFXIVIpcCFCancel >( player.getId() );
packet->data().cancelReason = 890;
queueOutPacket( packet );
auto cfCondition = exdData.get< Sapphire::Data::ContentFinderCondition >( contentId ); auto cfCondition = exdData.get< Sapphire::Data::ContentFinderCondition >( contentId );
if( !cfCondition ) if( !cfCondition )
@ -90,10 +95,15 @@ void Sapphire::Network::GameConnection::cfRegisterDuty( const Packets::FFXIVARR_
void Sapphire::Network::GameConnection::cfRegisterRoulette( const Packets::FFXIVARR_PACKET_RAW& inPacket, void Sapphire::Network::GameConnection::cfRegisterRoulette( const Packets::FFXIVARR_PACKET_RAW& inPacket,
Entity::Player& player ) Entity::Player& player )
{ {
/*
auto cfCancelPacket = makeZonePacket< FFXIVIpcCFNotify >( player.getId() ); auto cfCancelPacket = makeZonePacket< FFXIVIpcCFNotify >( player.getId() );
cfCancelPacket->data().state1 = 3; cfCancelPacket->data().state1 = 3;
cfCancelPacket->data().state2 = 1; // Your registration is withdrawn. cfCancelPacket->data().state2 = 1; // Your registration is withdrawn.
queueOutPacket( cfCancelPacket ); queueOutPacket( cfCancelPacket );
*/
auto packet = makeZonePacket< FFXIVIpcCFCancel >( player.getId() );
packet->data().cancelReason = 890;
queueOutPacket( packet );
player.sendDebug( "Roulette register" ); player.sendDebug( "Roulette register" );
} }
@ -103,3 +113,11 @@ void Sapphire::Network::GameConnection::cfDutyAccepted( const Packets::FFXIVARR_
{ {
player.sendDebug( "TODO: Duty accept" ); player.sendDebug( "TODO: Duty accept" );
} }
void Sapphire::Network::GameConnection::cfCancel( const Packets::FFXIVARR_PACKET_RAW& inPacket,
Entity::Player& player )
{
auto packet = makeZonePacket< FFXIVIpcCFCancel >( player.getId() );
packet->data().cancelReason = 890;
queueOutPacket( packet );
}