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

PlayerSpawn fixup

(cherry picked from commit 17f5a5ae2bb7ee2342f6a50d5eb4f3835f80bb9b)
This commit is contained in:
Lucy 2023-01-23 05:31:57 +01:00
parent 62d04d58ca
commit 7166526341
2 changed files with 13 additions and 9 deletions

View file

@ -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];

View file

@ -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 ) )