mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-04-28 15:17:46 +00:00
Properly reset aggro on mob retreat
This commit is contained in:
parent
f704aa4582
commit
ad6de5fe00
2 changed files with 4 additions and 3 deletions
|
@ -352,7 +352,7 @@ bool Sapphire::Entity::BNpc::hateListHasActor( Sapphire::Entity::CharaPtr pChara
|
||||||
void Sapphire::Entity::BNpc::aggro( Sapphire::Entity::CharaPtr pChara )
|
void Sapphire::Entity::BNpc::aggro( Sapphire::Entity::CharaPtr pChara )
|
||||||
{
|
{
|
||||||
auto pRNGMgr = m_pFw->get< World::Manager::RNGMgr >();
|
auto pRNGMgr = m_pFw->get< World::Manager::RNGMgr >();
|
||||||
auto variation = static_cast< uint32_t >( pRNGMgr->getRandGenerator< float >( 50, 600 ).next() );
|
auto variation = static_cast< uint32_t >( pRNGMgr->getRandGenerator< float >( 500, 1000 ).next() );
|
||||||
|
|
||||||
m_lastAttack = Util::getTimeMs() + variation;
|
m_lastAttack = Util::getTimeMs() + variation;
|
||||||
hateListUpdate( pChara, 1 );
|
hateListUpdate( pChara, 1 );
|
||||||
|
@ -380,7 +380,8 @@ void Sapphire::Entity::BNpc::deaggro( Sapphire::Entity::CharaPtr pChara )
|
||||||
if( pChara->isPlayer() )
|
if( pChara->isPlayer() )
|
||||||
{
|
{
|
||||||
PlayerPtr tmpPlayer = pChara->getAsPlayer();
|
PlayerPtr tmpPlayer = pChara->getAsPlayer();
|
||||||
tmpPlayer->queuePacket( makeActorControl142( getId(), ActorControlType::ToggleWeapon, 0, 1, 1 ) );
|
sendToInRangeSet( makeActorControl142( getId(), ActorControlType::ToggleWeapon, 0, 1, 1 ) );
|
||||||
|
sendToInRangeSet( makeActorControl142( getId(), ActorControlType::ToggleAggro, 0, 0, 0 ) );
|
||||||
tmpPlayer->onMobDeaggro( getAsBNpc() );
|
tmpPlayer->onMobDeaggro( getAsBNpc() );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -578,7 +578,7 @@ int32_t Sapphire::World::Navi::NaviProvider::addAgent( Entity::Chara& chara )
|
||||||
params.collisionQueryRange = params.radius * 12.0f;
|
params.collisionQueryRange = params.radius * 12.0f;
|
||||||
params.pathOptimizationRange = params.radius * 20.0f;
|
params.pathOptimizationRange = params.radius * 20.0f;
|
||||||
params.updateFlags = 0;
|
params.updateFlags = 0;
|
||||||
//params.updateFlags |= DT_CROWD_OBSTACLE_AVOIDANCE;
|
params.updateFlags |= DT_CROWD_ANTICIPATE_TURNS;
|
||||||
float position[] = { chara.getPos().x, chara.getPos().y, chara.getPos().z };
|
float position[] = { chara.getPos().x, chara.getPos().y, chara.getPos().z };
|
||||||
return m_pCrowd->addAgent( position, ¶ms );
|
return m_pCrowd->addAgent( position, ¶ms );
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue