diff --git a/src/world/Network/GameConnection.cpp b/src/world/Network/GameConnection.cpp index 45ca24d0..cf347d26 100644 --- a/src/world/Network/GameConnection.cpp +++ b/src/world/Network/GameConnection.cpp @@ -136,8 +136,8 @@ Sapphire::Network::GameConnection::GameConnection( Sapphire::Network::HivePtr pH setChatHandler( ClientChatIpcType::TellReq, "TellReq", &GameConnection::tellHandler ); setChatHandler( ClientZoneIpcType::PartyChatHandler, "PartyChatHandler", &GameConnection::partyChatHandler ); - setZoneHandler( ClientZoneIpcType::SocialInviteHandler, "SocialInviteHandler", &GameConnection::socialInviteHandler ); - setZoneHandler( ClientZoneIpcType::SocialInviteResponseHandler, "SocialInviteResponseHandler", &GameConnection::socialInviteResponseHandler ); + setZoneHandler( ClientZoneIpcType::SocialReqSendHandler, "SocialReqSendHandler", &GameConnection::socialInviteHandler ); + setZoneHandler( ClientZoneIpcType::SocialResponseHandler, "SocialResponseHandler", &GameConnection::socialInviteResponseHandler ); setZoneHandler( ClientZoneIpcType::PartySetLeaderHandler, "PartySetLeaderHandler", &GameConnection::partySetLeaderHandler ); setZoneHandler( ClientZoneIpcType::LeavePartyHandler, "LeavePartyHandler", &GameConnection::leavePartyHandler ); setZoneHandler( ClientZoneIpcType::KickPartyMemberHandler, "KickPartyMemberHandler", &GameConnection::kickPartyMemberHandler ); diff --git a/src/world/Network/Handlers/PacketHandlers.cpp b/src/world/Network/Handlers/PacketHandlers.cpp index dfd16443..43bcc454 100644 --- a/src/world/Network/Handlers/PacketHandlers.cpp +++ b/src/world/Network/Handlers/PacketHandlers.cpp @@ -879,7 +879,7 @@ void Sapphire::Network::GameConnection::worldInteractionhandler( const Packets:: void Sapphire::Network::GameConnection::socialInviteHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { - const auto packetIn = ZoneChannelPacket< Client::FFXIVIpcSocialInviteHandler >( inPacket ); + const auto packetIn = ZoneChannelPacket< Client::FFXIVIpcSocialReqSendHandler >( inPacket ); switch( packetIn.data().socialType ) { case 1: @@ -894,7 +894,7 @@ void Sapphire::Network::GameConnection::socialInviteHandler( const Packets::FFXI auto targetPlayer = session->getPlayer(); if( targetPlayer->isInParty() ) return; - auto packet1 = makeZonePacket< FFXIVIpcSocialInviteMessage2 >( player.getId() ); + auto packet1 = makeZonePacket< FFXIVIpcSocialMessage2 >( player.getId() ); packet1->data().contentId = targetPlayer->getContentId(); packet1->data().p1 = packetIn.data().p1; packet1->data().p2 = packetIn.data().p2; @@ -902,7 +902,7 @@ void Sapphire::Network::GameConnection::socialInviteHandler( const Packets::FFXI memcpy( packet1->data().name, targetPlayer->getName().c_str(), targetPlayer->getName().length() + 1 ); player.queuePacket( packet1 ); - auto packet2 = makeZonePacket< FFXIVIpcSocialInviteMessage >( targetPlayer->getId() ); + auto packet2 = makeZonePacket< FFXIVIpcSocialMessage >( targetPlayer->getId() ); packet2->data().contentId = player.getContentId(); packet2->data().expireTime = Common::Util::getTimeSeconds() + 30; packet2->data().p1 = packetIn.data().p1; @@ -922,7 +922,7 @@ void Sapphire::Network::GameConnection::socialInviteHandler( const Packets::FFXI void Sapphire::Network::GameConnection::socialInviteResponseHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { - const auto packetIn = ZoneChannelPacket< Client::FFXIVIpcSocialInviteResponseHandler >( inPacket ); + const auto packetIn = ZoneChannelPacket< Client::FFXIVIpcSocialResponseHandler >( inPacket ); switch( packetIn.data().socialType ) { case 1: @@ -932,7 +932,7 @@ void Sapphire::Network::GameConnection::socialInviteResponseHandler( const Packe auto response = packetIn.data().response; auto sender = player.getPartyInvitationSender(); player.setPartyInvitationSender( nullptr ); - auto packet1 = makeZonePacket< FFXIVIpcSocialInviteResponseMessage >( player.getId() ); + auto packet1 = makeZonePacket< FFXIVIpcSocialRequestResponse >( player.getId() ); packet1->data().contentId = sender->getContentId(); packet1->data().u1AlwaysOne = 1; packet1->data().response = response; @@ -964,7 +964,7 @@ void Sapphire::Network::GameConnection::socialInviteResponseHandler( const Packe m->queuePacket( packetMsg ); } ); - auto packet2 = makeZonePacket< FFXIVIpcSocialInviteMessage >( sender->getId() ); + auto packet2 = makeZonePacket< FFXIVIpcSocialMessage >( sender->getId() ); packet2->data().contentId = player.getContentId(); packet2->data().expireTime = Common::Util::getTimeSeconds() + 30; packet2->data().p1 = packetIn.data().p1; @@ -977,7 +977,7 @@ void Sapphire::Network::GameConnection::socialInviteResponseHandler( const Packe } else { - auto packet2 = makeZonePacket< FFXIVIpcSocialInviteMessage >( sender->getId() ); + auto packet2 = makeZonePacket< FFXIVIpcSocialMessage >( sender->getId() ); packet2->data().contentId = player.getContentId(); packet2->data().expireTime = Common::Util::getTimeSeconds() + 30; packet2->data().p1 = packetIn.data().p1; diff --git a/src/world/Network/PacketWrappers/PlayerSetupPacket.h b/src/world/Network/PacketWrappers/PlayerSetupPacket.h index e30b45d3..ecff1f4d 100644 --- a/src/world/Network/PacketWrappers/PlayerSetupPacket.h +++ b/src/world/Network/PacketWrappers/PlayerSetupPacket.h @@ -25,7 +25,7 @@ namespace Sapphire::Network::Packets::Server private: void initialize( Entity::Player& player ) { - memset( &m_data.unknownOword[ 0 ], 255, reinterpret_cast< uint64_t >( &m_data.pvpLevel ) - reinterpret_cast< uint64_t >( &m_data.unknownOword[ 0 ] ) ); + memset( &m_data.unknownOword[ 0 ], 255, reinterpret_cast< uint64_t >( &m_data.padding2 ) - reinterpret_cast< uint64_t >( &m_data.unknownOword[ 0 ] ) ); m_data.contentId = player.getContentId(); @@ -62,16 +62,17 @@ namespace Sapphire::Network::Packets::Server } //memcpy( m_data.orchestrionMask, player.getOrchestrionBitmask(), sizeof( m_data.orchestrionMask ) ); - + //m_data.orchestrionMask[0] = 0xFE; //memcpy( m_data.mountGuideMask, player.getMountGuideBitmask(), sizeof( m_data.mountGuideMask ) ); - memset( m_data.mountGuideMask, 255, sizeof( m_data.mountGuideMask ) ); + memset( m_data.mountGuideMask, 0xFF, sizeof( m_data.mountGuideMask ) ); + m_data.mountGuideMask[21] = 0xBF; // mask out the broken mount //memcpy( m_data.unlockBitmask, player.getUnlockBitmask(), sizeof( m_data.unlockBitmask ) ); - + //m_data.unlockBitmask[0] = 0xFD; //memcpy( m_data.discovery, player.getDiscoveryBitmask(), sizeof( m_data.discovery ) ); - + //m_data.discovery[0] = 0xFB; //memcpy( m_data.howto, player.getHowToArray(), sizeof( m_data.howto ) ); - + //m_data.howto[0] = 0xEF; // possibly max level or current level m_data.maxLevel = Common::MAX_PLAYER_LEVEL; m_data.expansion = Common::CURRENT_EXPANSION_ID; @@ -82,10 +83,15 @@ namespace Sapphire::Network::Packets::Server // enable all raids/guildhests/dungeons memset( m_data.unlockedDungeons, 0xFF, sizeof( m_data.unlockedDungeons ) ); + //m_data.unlockedDungeons[0] = 0xEE; memset( m_data.unlockedGuildhests, 0xFF, sizeof( m_data.unlockedGuildhests ) ); + //m_data.unlockedGuildhests[0] = 0xDF; memset( m_data.unlockedPvp, 0xFF, sizeof( m_data.unlockedPvp ) ); + //m_data.unlockedPvp[0] = 0xDE; memset( m_data.unlockedRaids, 0xFF, sizeof( m_data.unlockedRaids ) ); + //m_data.unlockedRaids[0] = 0xDD; memset( m_data.unlockedTrials, 0xFF, sizeof( m_data.unlockedTrials ) ); + //m_data.unlockedTrials[0] = 0xDB; }; };