mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-05-01 16:37:45 +00:00
Added triggerOwner to bnpc
This commit is contained in:
parent
00f0c1b431
commit
9ab636662d
6 changed files with 21 additions and 4 deletions
|
@ -517,6 +517,16 @@ void Sapphire::Entity::BNpc::hateListRemove( Sapphire::Entity::CharaPtr pChara )
|
|||
}
|
||||
}
|
||||
|
||||
uint32_t Sapphire::Entity::BNpc::getTriggerOwnerId() const
|
||||
{
|
||||
return m_triggerOwnerId;
|
||||
}
|
||||
|
||||
void Sapphire::Entity::BNpc::setTriggerOwnerId( uint32_t triggerOwnerId )
|
||||
{
|
||||
m_triggerOwnerId = triggerOwnerId;
|
||||
}
|
||||
|
||||
bool Sapphire::Entity::BNpc::hateListHasActor( Sapphire::Entity::CharaPtr pChara )
|
||||
{
|
||||
for( auto& listEntry : m_hateList )
|
||||
|
|
|
@ -87,6 +87,8 @@ namespace Sapphire::Entity
|
|||
|
||||
uint8_t getAggressionMode() const;
|
||||
|
||||
uint32_t getTriggerOwnerId() const;
|
||||
void setTriggerOwnerId( uint32_t triggerOwnerId );
|
||||
|
||||
float getNaviTargetReachedDistance() const;
|
||||
|
||||
|
@ -159,6 +161,7 @@ namespace Sapphire::Entity
|
|||
uint32_t m_rank;
|
||||
uint32_t m_boundInstanceId;
|
||||
uint32_t m_layoutId;
|
||||
uint32_t m_triggerOwnerId;
|
||||
|
||||
uint32_t m_flags;
|
||||
|
||||
|
|
|
@ -61,7 +61,7 @@ namespace Sapphire::Network::Packets::WorldPackets::Server
|
|||
m_data.MainTarget = bnpc.getTargetId();
|
||||
// no idea ... m_data.spawnerId = Common::INVALID_GAME_OBJECT_ID64;
|
||||
m_data.ParentId = Common::INVALID_GAME_OBJECT_ID;
|
||||
m_data.TriggerId = 0;
|
||||
m_data.TriggerId = bnpc.getTriggerOwnerId();
|
||||
m_data.ChannelingTarget = Common::INVALID_GAME_OBJECT_ID;
|
||||
m_data.OwnerId = Common::INVALID_GAME_OBJECT_ID;
|
||||
|
||||
|
|
|
@ -92,6 +92,10 @@ Sapphire::InstanceObjectCache::InstanceObjectCache()
|
|||
auto pPopRange = std::reinterpret_pointer_cast< LGB_POP_RANGE_ENTRY >( pEntry );
|
||||
m_popRangeCache.insert( id, pPopRange );
|
||||
}
|
||||
else if( pEntry->getType() == LgbEntryType::SharedGroup6 )
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -850,14 +850,14 @@ uint32_t Sapphire::Territory::getNextEffectSequence()
|
|||
return m_effectCounter++;
|
||||
}
|
||||
|
||||
Sapphire::Entity::BNpcPtr Sapphire::Territory::createBNpcFromInstanceId( uint32_t levelId, uint32_t hp, Common::BNpcType bnpcType )
|
||||
Sapphire::Entity::BNpcPtr Sapphire::Territory::createBNpcFromInstanceId( uint32_t levelId, uint32_t hp, Common::BNpcType bnpcType, uint32_t triggerOwnerId )
|
||||
{
|
||||
auto infoPtr = m_bNpcBaseMap.find( levelId );
|
||||
if( infoPtr == m_bNpcBaseMap.end() )
|
||||
return nullptr;
|
||||
|
||||
auto pBNpc = std::make_shared< Entity::BNpc >( getNextActorId(), infoPtr->second, shared_from_this(), hp, bnpcType );
|
||||
|
||||
pBNpc->setTriggerOwnerId( triggerOwnerId );
|
||||
pushActor( pBNpc );
|
||||
return pBNpc;
|
||||
}
|
||||
|
|
|
@ -169,7 +169,7 @@ namespace Sapphire
|
|||
|
||||
void registerEObj( Entity::EventObjectPtr object );
|
||||
|
||||
Entity::BNpcPtr createBNpcFromInstanceId( uint32_t levelId, uint32_t hp, Common::BNpcType bnpcType );
|
||||
Entity::BNpcPtr createBNpcFromInstanceId( uint32_t levelId, uint32_t hp, Common::BNpcType bnpcType, uint32_t triggerOwnerId = 0 );
|
||||
|
||||
Entity::BNpcPtr getActiveBNpcByInstanceId( uint32_t instanceId );
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue