mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-05-07 11:17:46 +00:00
fix player combat state
This commit is contained in:
parent
e8ab350ad2
commit
adfd397bba
2 changed files with 7 additions and 4 deletions
|
@ -329,7 +329,7 @@ void Sapphire::Entity::BNpc::hateListAddOrUpdate( Sapphire::Entity::CharaPtr pCh
|
|||
if( pChara->isPlayer() )
|
||||
{
|
||||
auto pPlayer = pChara->getAsPlayer();
|
||||
pPlayer->hateListAdd( getAsBNpc() );
|
||||
pPlayer->onMobAggro( getAsBNpc() );
|
||||
}
|
||||
auto& scriptMgr = Common::Service< Sapphire::Scripting::ScriptMgr >::ref();
|
||||
scriptMgr.onBNpcHateListAdd( *this, *pChara );
|
||||
|
|
|
@ -1657,14 +1657,17 @@ void Sapphire::Entity::Player::sendHateList()
|
|||
void Sapphire::Entity::Player::onMobAggro( BNpcPtr pBNpc )
|
||||
{
|
||||
hateListAdd( pBNpc );
|
||||
queuePacket( makeActorControl( getId(), ToggleAggro, 1 ) );
|
||||
setStateFlag( Common::PlayerStateFlag::InCombat );
|
||||
if( !hasStateFlag( Common::PlayerStateFlag::InCombat ) )
|
||||
{
|
||||
queuePacket( makeActorControl( getId(), ToggleAggro, 1 ) );
|
||||
setStateFlag( Common::PlayerStateFlag::InCombat );
|
||||
}
|
||||
}
|
||||
|
||||
void Sapphire::Entity::Player::onMobDeaggro( BNpcPtr pBNpc )
|
||||
{
|
||||
hateListRemove( pBNpc );
|
||||
if( m_actorIdTohateSlotMap.empty() )
|
||||
if( m_actorIdTohateSlotMap.empty() && hasStateFlag( Common::PlayerStateFlag::InCombat ) )
|
||||
{
|
||||
queuePacket( makeActorControl( getId(), ToggleAggro ) );
|
||||
unsetStateFlag( Common::PlayerStateFlag::InCombat );
|
||||
|
|
Loading…
Add table
Reference in a new issue