diff --git a/src/world/Actor/BNpc.cpp b/src/world/Actor/BNpc.cpp index fc453a9d..586341ba 100644 --- a/src/world/Actor/BNpc.cpp +++ b/src/world/Actor/BNpc.cpp @@ -419,6 +419,14 @@ void Sapphire::Entity::BNpc::update( uint64_t tickCount ) { 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 ) ) { setInvincibilityType( InvincibilityType::InvincibilityNone ); @@ -521,9 +529,16 @@ void Sapphire::Entity::BNpc::update( uint64_t tickCount ) 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 >(); //if ( ( currTime - m_lastAttack ) > 600 && pTeriMgr->isDefaultTerritory( getCurrentZone()->getTerritoryTypeId() ) ) - moveTo( pHatedActor->getPos() ); + moveTo( pHatedActor->getPos() ); } else { diff --git a/src/world/Navi/NaviProvider.cpp b/src/world/Navi/NaviProvider.cpp index 690070a7..da0338c6 100644 --- a/src/world/Navi/NaviProvider.cpp +++ b/src/world/Navi/NaviProvider.cpp @@ -571,7 +571,7 @@ int32_t Sapphire::World::Navi::NaviProvider::addAgent( Entity::Chara& chara ) dtCrowdAgentParams params; std::memset( ¶ms, 0, sizeof( params ) ); params.height = 7.f; - params.maxAcceleration = 16.f; + params.maxAcceleration = 26.f; params.maxSpeed = 13.5f; params.radius = 2.f; params.collisionQueryRange = params.radius * 12.0f;