diff --git a/src/common/Common.h b/src/common/Common.h index 7c998725..040a296d 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -523,7 +523,7 @@ namespace Common { LeveStartAnim = 0x66, LeveStartError = 0x67, DirectorEObjMod = 0x6A, - + DirectorUpdate = 0x6D, ItemObtainMsg = 0x75, diff --git a/src/servers/sapphire_zone/Actor/Player.cpp b/src/servers/sapphire_zone/Actor/Player.cpp index 0af3d7a5..2ef2eab3 100644 --- a/src/servers/sapphire_zone/Actor/Player.cpp +++ b/src/servers/sapphire_zone/Actor/Player.cpp @@ -356,6 +356,17 @@ void Core::Entity::Player::returnToHomepoint() void Core::Entity::Player::setZone( uint32_t zoneId ) { + if( !g_territoryMgr.movePlayer( zoneId, getAsPlayer() ) ) + { + // todo: this will require proper handling, for now just return the player to their previous area + m_pos = m_prevPos; + m_rot = m_prevRot; + m_zoneId = m_prevZoneId; + + if( !g_territoryMgr.movePlayer( m_zoneId, getAsPlayer() ) ) + return; + } + sendZonePackets(); } @@ -1570,8 +1581,8 @@ void Player::sendZonePackets() } // set flags, will be reset automatically by zoning ( only on client side though ) - setStateFlag( PlayerStateFlag::BetweenAreas ); - setStateFlag( PlayerStateFlag::BetweenAreas1 ); + //setStateFlag( PlayerStateFlag::BetweenAreas ); + //setStateFlag( PlayerStateFlag::BetweenAreas1 ); sendStats(); diff --git a/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp b/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp index 31495441..cedb239e 100644 --- a/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp @@ -373,7 +373,7 @@ void Core::Network::GameConnection::initHandler( const Packets::GamePacket& inPa // init handler means this is a login procedure player.setIsLogin( true ); - player.setZone( player.getZoneId() ); + player.sendZonePackets(); } diff --git a/src/servers/sapphire_zone/Zone/InstanceContent.h b/src/servers/sapphire_zone/Zone/InstanceContent.h index da52f5e0..70c8ccd7 100644 --- a/src/servers/sapphire_zone/Zone/InstanceContent.h +++ b/src/servers/sapphire_zone/Zone/InstanceContent.h @@ -25,13 +25,13 @@ public: uint32_t instanceContentId ); virtual ~InstanceContent(); - boost::shared_ptr< Core::Data::InstanceContent > getInstanceContentInfo() const; + Core::Data::ExdDataGenerated::InstanceContentPtr getInstanceContentInfo() const; uint32_t getInstanceContentId() const; private: Event::DirectorPtr m_pDirector; - boost::shared_ptr< Core::Data::InstanceContent > m_instanceContentInfo; + Core::Data::ExdDataGenerated::InstanceContentPtr m_instanceContentInfo; uint32_t m_instanceContentId; InstanceContentState m_state;