diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index 76318858..917e4b55 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -722,9 +722,9 @@ namespace Sapphire::Network::Packets::WorldPackets::Server uint16_t MpMax; uint16_t NormalAI; uint8_t OnlineStatus; + uint8_t __padding1; uint8_t PermissionInvisibility; uint8_t FirstAttackType; - uint8_t __padding1; uint64_t FirstAttackId; uint8_t LinkReply; uint8_t LinkCountLimit; @@ -733,16 +733,14 @@ namespace Sapphire::Network::Packets::WorldPackets::Server uint8_t LinkFamily; uint8_t LinkParent; uint8_t PoseEmote; - uint8_t __padding3; - uint16_t Flag; uint8_t __padding2; + uint16_t Flag; + uint8_t __padding3; uint8_t __padding4; Common::StatusWork Status[30]; MountStruct Mount; uint8_t Name[32]; uint8_t Customize[26]; - uint8_t __padding5; - uint8_t __padding6; uint32_t Equipment[10]; float Pos[3]; uint8_t FreeCompanyTag[6]; diff --git a/src/world/Network/PacketWrappers/PlayerSpawnPacket.h b/src/world/Network/PacketWrappers/PlayerSpawnPacket.h index abbb31cb..a647a006 100644 --- a/src/world/Network/PacketWrappers/PlayerSpawnPacket.h +++ b/src/world/Network/PacketWrappers/PlayerSpawnPacket.h @@ -37,6 +37,7 @@ namespace Sapphire::Network::Packets::WorldPackets::Server m_data.Hp = player.getHp(); m_data.Mp = player.getMp(); + m_data.Tp = player.getTp(); m_data.HpMax = player.getMaxHp(); m_data.MpMax = player.getMaxMp(); @@ -83,6 +84,10 @@ namespace Sapphire::Network::Packets::WorldPackets::Server m_data.Mount.Id = player.getCurrentMount(); m_data.OnlineStatus = static_cast< uint8_t >( player.getOnlineStatus() ); + m_data.PermissionInvisibility = 0; + + m_data.GrandCompany = player.getGc(); + m_data.GrandCompanyRank = player.getGcRankArray()[ player.getGc() - 1 ]; //m_data.u23 = 0x04; //m_data.u24 = 256; @@ -102,25 +107,26 @@ namespace Sapphire::Network::Packets::WorldPackets::Server } // 0x20 == spawn hidden to be displayed by the spawneffect control m_data.ActiveType = player.getStance(); + m_data.Flag = 0; if( player.getZoningType() != Common::ZoneingType::None || player.getGmInvis() ) { - m_data.ActiveType |= static_cast< uint16_t >( Common::DisplayFlags::Invisible ); + m_data.Flag |= static_cast< uint16_t >( Common::DisplayFlags::Invisible ); } if( player.getEquipDisplayFlags() & Sapphire::Common::EquipDisplayFlags::HideHead ) { - m_data.ActiveType |= static_cast< uint16_t >( Common::DisplayFlags::HideHead ); + m_data.Flag |= static_cast< uint16_t >( Common::DisplayFlags::HideHead ); } if( player.getEquipDisplayFlags() & Sapphire::Common::EquipDisplayFlags::HideWeapon ) { - m_data.ActiveType |= static_cast< uint16_t >( Common::DisplayFlags::HideWeapon ); + m_data.Flag |= static_cast< uint16_t >( Common::DisplayFlags::HideWeapon ); } if( player.getEquipDisplayFlags() & Sapphire::Common::EquipDisplayFlags::Visor ) { - m_data.ActiveType |= static_cast< uint16_t >( Common::DisplayFlags::Visor ); + m_data.Flag |= static_cast< uint16_t >( Common::DisplayFlags::Visor ); } if( !( player.getEquipDisplayFlags() & Sapphire::Common::EquipDisplayFlags::HideLegacyMark ) )