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

Following and retreating works

This commit is contained in:
Mordred 2019-04-19 14:50:00 +02:00
parent eeded4c4f0
commit c0c88ca783
2 changed files with 17 additions and 2 deletions

View file

@ -419,6 +419,14 @@ void Sapphire::Entity::BNpc::update( uint64_t tickCount )
{ {
setInvincibilityType( InvincibilityType::InvincibilityIgnoreDamage ); setInvincibilityType( InvincibilityType::InvincibilityIgnoreDamage );
auto pNaviMgr = m_pFw->get< World::Manager::NaviMgr >();
auto pNaviProvider = m_pCurrentZone->getNaviProvider();
if( pNaviProvider )
{
//if( !pNaviProvider->hasTargetState( *this ) )
pNaviProvider->setMoveTarget( *this, m_spawnPos );
}
if( moveTo( m_spawnPos ) ) if( moveTo( m_spawnPos ) )
{ {
setInvincibilityType( InvincibilityType::InvincibilityNone ); setInvincibilityType( InvincibilityType::InvincibilityNone );
@ -521,6 +529,13 @@ void Sapphire::Entity::BNpc::update( uint64_t tickCount )
if( !hasFlag( Immobile ) && ( distance > minActorDistance ) ) if( !hasFlag( Immobile ) && ( distance > minActorDistance ) )
{ {
auto pNaviMgr = m_pFw->get< World::Manager::NaviMgr >();
auto pNaviProvider = m_pCurrentZone->getNaviProvider();
if( pNaviProvider )
{
//if( !pNaviProvider->hasTargetState( *this ) )
pNaviProvider->setMoveTarget( *this, pHatedActor->getPos() );
}
//auto pTeriMgr = m_pFw->get< World::Manager::TerritoryMgr >(); //auto pTeriMgr = m_pFw->get< World::Manager::TerritoryMgr >();
//if ( ( currTime - m_lastAttack ) > 600 && pTeriMgr->isDefaultTerritory( getCurrentZone()->getTerritoryTypeId() ) ) //if ( ( currTime - m_lastAttack ) > 600 && pTeriMgr->isDefaultTerritory( getCurrentZone()->getTerritoryTypeId() ) )
moveTo( pHatedActor->getPos() ); moveTo( pHatedActor->getPos() );

View file

@ -571,7 +571,7 @@ int32_t Sapphire::World::Navi::NaviProvider::addAgent( Entity::Chara& chara )
dtCrowdAgentParams params; dtCrowdAgentParams params;
std::memset( &params, 0, sizeof( params ) ); std::memset( &params, 0, sizeof( params ) );
params.height = 7.f; params.height = 7.f;
params.maxAcceleration = 16.f; params.maxAcceleration = 26.f;
params.maxSpeed = 13.5f; params.maxSpeed = 13.5f;
params.radius = 2.f; params.radius = 2.f;
params.collisionQueryRange = params.radius * 12.0f; params.collisionQueryRange = params.radius * 12.0f;