diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index e5603ccd..2f883670 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -698,14 +698,16 @@ namespace Sapphire::Network::Packets::WorldPackets::Server uint8_t LinkFamily; uint8_t LinkParent; uint8_t PoseEmote; + uint8_t __padding3; + uint16_t Flag; uint8_t __padding2; - uint32_t Flag; + uint8_t __padding4; Common::StatusWork Status[30]; MountStruct Mount; uint8_t Name[32]; uint8_t Customize[26]; - uint8_t __padding3; - uint8_t __padding4; + uint8_t __padding5; + uint8_t __padding6; uint32_t Equipment[10]; float Pos[3]; uint8_t FreeCompanyTag[6]; diff --git a/src/world/Actor/Player.cpp b/src/world/Actor/Player.cpp index ca7eead9..4ad1e8c3 100644 --- a/src/world/Actor/Player.cpp +++ b/src/world/Actor/Player.cpp @@ -998,7 +998,12 @@ void Sapphire::Entity::Player::spawn( Entity::PlayerPtr pTarget ) { Logger::debug( "[{0}] Spawning {1} for {2}", pTarget->getId(), getName(), pTarget->getName() ); - pTarget->queuePacket( std::make_shared< PlayerSpawnPacket >( *this, *pTarget ) ); + auto spawnPacket = std::make_shared< PlayerSpawnPacket >( *this, *pTarget ); + FILE *fp; + fp = fopen( "spawnPacket1.bin", "wb" ); + fwrite( spawnPacket->getData().data(), spawnPacket->getData().size(), 1, fp ); + fclose( fp ); + pTarget->queuePacket( spawnPacket ); } // despawn @@ -1628,10 +1633,6 @@ void Sapphire::Entity::Player::sendZonePackets() queuePacket( contentFinderList ); auto statusPacket = makePlayerSetup( *this ); - /*FILE *fp; - fp = fopen( "statusDump.bin", "wb" ); - fwrite( statusPacket->getData().data(), statusPacket->getData().size(), 1, fp ); - fclose( fp );*/ queuePacket( statusPacket ); diff --git a/src/world/Network/Handlers/PacketHandlers.cpp b/src/world/Network/Handlers/PacketHandlers.cpp index 3fde0d16..7193f96f 100644 --- a/src/world/Network/Handlers/PacketHandlers.cpp +++ b/src/world/Network/Handlers/PacketHandlers.cpp @@ -432,22 +432,16 @@ void Sapphire::Network::GameConnection::newDiscoveryHandler( const Packets::FFXI -void Sapphire::Network::GameConnection::loginHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, - Entity::Player& player ) +void Sapphire::Network::GameConnection::loginHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { auto& teriMgr = Common::Service< World::Manager::TerritoryMgr >::ref(); // init handler means this is a login procedure player.setIsLogin( true ); teriMgr.joinWorld( player ); - - - - //player.sendZonePackets(); } -void Sapphire::Network::GameConnection::getBlacklistHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, - Entity::Player& player ) +void Sapphire::Network::GameConnection::getBlacklistHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { const auto packet = ZoneChannelPacket< Client::FFXIVIpcGetBlacklist >( inPacket ); auto& data = packet.data(); diff --git a/src/world/Network/PacketWrappers/PlayerSpawnPacket.h b/src/world/Network/PacketWrappers/PlayerSpawnPacket.h index 084eaae4..c208222a 100644 --- a/src/world/Network/PacketWrappers/PlayerSpawnPacket.h +++ b/src/world/Network/PacketWrappers/PlayerSpawnPacket.h @@ -42,7 +42,8 @@ namespace Sapphire::Network::Packets::WorldPackets::Server m_data.Lv = player.getLevel(); m_data.GMRank = player.getGmRank(); - m_data.ModeArgs = player.getPose(); + m_data.ModeArgs = player.getPersistentEmote(); + m_data.PoseEmote = player.getPose(); if( player.isDirectorInitialized() ) {