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

Merge pull request #847 from Skyliegirl33/ThreePointThree

[3.3] PlayerSpawn changes to fix equip flags & TP, prevent bed scene from playing
This commit is contained in:
Mordred 2023-01-23 07:51:46 +01:00 committed by GitHub
commit 7ea6d4f44d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 14 additions and 14 deletions

View file

@ -722,9 +722,9 @@ namespace Sapphire::Network::Packets::WorldPackets::Server
uint16_t MpMax; uint16_t MpMax;
uint16_t NormalAI; uint16_t NormalAI;
uint8_t OnlineStatus; uint8_t OnlineStatus;
uint8_t __padding1;
uint8_t PermissionInvisibility; uint8_t PermissionInvisibility;
uint8_t FirstAttackType; uint8_t FirstAttackType;
uint8_t __padding1;
uint64_t FirstAttackId; uint64_t FirstAttackId;
uint8_t LinkReply; uint8_t LinkReply;
uint8_t LinkCountLimit; uint8_t LinkCountLimit;
@ -733,16 +733,14 @@ namespace Sapphire::Network::Packets::WorldPackets::Server
uint8_t LinkFamily; uint8_t LinkFamily;
uint8_t LinkParent; uint8_t LinkParent;
uint8_t PoseEmote; uint8_t PoseEmote;
uint8_t __padding3;
uint16_t Flag;
uint8_t __padding2; uint8_t __padding2;
uint16_t Flag;
uint8_t __padding3;
uint8_t __padding4; uint8_t __padding4;
Common::StatusWork Status[30]; Common::StatusWork Status[30];
MountStruct Mount; MountStruct Mount;
uint8_t Name[32]; uint8_t Name[32];
uint8_t Customize[26]; uint8_t Customize[26];
uint8_t __padding5;
uint8_t __padding6;
uint32_t Equipment[10]; uint32_t Equipment[10];
float Pos[3]; float Pos[3];
uint8_t FreeCompanyTag[6]; uint8_t FreeCompanyTag[6];

View file

@ -57,7 +57,7 @@ public:
void onEnterTerritory( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override void onEnterTerritory( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
{ {
Scene00100( player ); //Scene00100( player );
} }
}; };

View file

@ -1507,7 +1507,6 @@ void Player::sendZonePackets()
initPacket->data().playerActorId = getId(); initPacket->data().playerActorId = getId();
queuePacket( initPacket ); queuePacket( initPacket );
sendStatusUpdate();
sendInventory(); sendInventory();
if( isLogin() ) if( isLogin() )
@ -1524,7 +1523,6 @@ void Player::sendZonePackets()
sendHuntingLog(); sendHuntingLog();
sendStats(); sendStats();
sendStatusUpdate();
// only initialize the UI if the player in fact just logged in. // only initialize the UI if the player in fact just logged in.
if( isLogin() ) if( isLogin() )

View file

@ -85,7 +85,6 @@ void WarpMgr::finishWarp( Entity::Player& player )
player.sendToInRangeSet( zoneInPacket ); player.sendToInRangeSet( zoneInPacket );
player.sendToInRangeSet( SetStatusPacket, true ); player.sendToInRangeSet( SetStatusPacket, true );
player.sendStatusUpdate();
auto& server = Common::Service< WorldServer >::ref(); auto& server = Common::Service< WorldServer >::ref();
server.queueForPlayer( player.getCharacterId(), zoneInPacket ); server.queueForPlayer( player.getCharacterId(), zoneInPacket );

View file

@ -594,7 +594,6 @@ void Sapphire::Network::GameConnection::commandHandler( const Packets::FFXIVARR_
auto& warpMgr = Service< WarpMgr >::ref(); auto& warpMgr = Service< WarpMgr >::ref();
warpMgr.finishWarp( player ); warpMgr.finishWarp( player );
player.setLoadingComplete( true ); player.setLoadingComplete( true );
Service< World::Manager::PlayerMgr >::ref().onEquipDisplayFlagsChanged( player );
if( player.isLogin() ) if( player.isLogin() )
player.setIsLogin( false ); player.setIsLogin( false );
break; break;

View file

@ -37,6 +37,7 @@ namespace Sapphire::Network::Packets::WorldPackets::Server
m_data.Hp = player.getHp(); m_data.Hp = player.getHp();
m_data.Mp = player.getMp(); m_data.Mp = player.getMp();
m_data.Tp = player.getTp();
m_data.HpMax = player.getMaxHp(); m_data.HpMax = player.getMaxHp();
m_data.MpMax = player.getMaxMp(); m_data.MpMax = player.getMaxMp();
@ -83,6 +84,10 @@ namespace Sapphire::Network::Packets::WorldPackets::Server
m_data.Mount.Id = player.getCurrentMount(); m_data.Mount.Id = player.getCurrentMount();
m_data.OnlineStatus = static_cast< uint8_t >( player.getOnlineStatus() ); 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.u23 = 0x04;
//m_data.u24 = 256; //m_data.u24 = 256;
@ -102,25 +107,26 @@ namespace Sapphire::Network::Packets::WorldPackets::Server
} }
// 0x20 == spawn hidden to be displayed by the spawneffect control // 0x20 == spawn hidden to be displayed by the spawneffect control
m_data.ActiveType = player.getStance(); m_data.ActiveType = player.getStance();
m_data.Flag = 0;
if( player.getZoningType() != Common::ZoneingType::None || player.getGmInvis() ) 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 ) 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 ) 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 ) 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 ) ) if( !( player.getEquipDisplayFlags() & Sapphire::Common::EquipDisplayFlags::HideLegacyMark ) )