diff --git a/src/servers/sapphire_zone/Actor/Actor.cpp b/src/servers/sapphire_zone/Actor/Actor.cpp index 7c855c43..560d5b9b 100644 --- a/src/servers/sapphire_zone/Actor/Actor.cpp +++ b/src/servers/sapphire_zone/Actor/Actor.cpp @@ -313,10 +313,13 @@ void Core::Entity::Actor::setCurrentZone( ZonePtr currZone ) m_pCurrentZone = currZone; } -/*! \return InstanceContentPtr to the current instance, null if not an instance or not set */ +/*! \return InstanceContentPtr to the current instance, nullptr if not an instance or not set */ Core::InstanceContentPtr Core::Entity::Actor::getCurrentInstance() const { - return getCurrentZone()->getAsInstanceContent(); + if( m_pCurrentZone ) + return m_pCurrentZone->getAsInstanceContent(); + + return nullptr; } /*! diff --git a/src/servers/sapphire_zone/Actor/EventObject.cpp b/src/servers/sapphire_zone/Actor/EventObject.cpp index 9784e8e1..87fba41a 100644 --- a/src/servers/sapphire_zone/Actor/EventObject.cpp +++ b/src/servers/sapphire_zone/Actor/EventObject.cpp @@ -56,6 +56,15 @@ void Core::Entity::EventObject::setState( uint8_t state ) { m_state = state; + for( const auto& player : m_inRangePlayers ) + { + ZoneChannelPacket< FFXIVIpcActorControl142 > eobjUpdatePacket( getId(), player->getId() ); + eobjUpdatePacket.data().category = Common::ActorControlType::DirectorEObjMod; + eobjUpdatePacket.data().param1 = state; + + player->queuePacket( eobjUpdatePacket ); + } + //m_parentInstance->updateEObj( InstanceObjectPtr( this ) ); }