mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-05-07 19:27:45 +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() )
|
if( pChara->isPlayer() )
|
||||||
{
|
{
|
||||||
auto pPlayer = pChara->getAsPlayer();
|
auto pPlayer = pChara->getAsPlayer();
|
||||||
pPlayer->hateListAdd( getAsBNpc() );
|
pPlayer->onMobAggro( getAsBNpc() );
|
||||||
}
|
}
|
||||||
auto& scriptMgr = Common::Service< Sapphire::Scripting::ScriptMgr >::ref();
|
auto& scriptMgr = Common::Service< Sapphire::Scripting::ScriptMgr >::ref();
|
||||||
scriptMgr.onBNpcHateListAdd( *this, *pChara );
|
scriptMgr.onBNpcHateListAdd( *this, *pChara );
|
||||||
|
|
|
@ -1657,14 +1657,17 @@ void Sapphire::Entity::Player::sendHateList()
|
||||||
void Sapphire::Entity::Player::onMobAggro( BNpcPtr pBNpc )
|
void Sapphire::Entity::Player::onMobAggro( BNpcPtr pBNpc )
|
||||||
{
|
{
|
||||||
hateListAdd( pBNpc );
|
hateListAdd( pBNpc );
|
||||||
queuePacket( makeActorControl( getId(), ToggleAggro, 1 ) );
|
if( !hasStateFlag( Common::PlayerStateFlag::InCombat ) )
|
||||||
setStateFlag( Common::PlayerStateFlag::InCombat );
|
{
|
||||||
|
queuePacket( makeActorControl( getId(), ToggleAggro, 1 ) );
|
||||||
|
setStateFlag( Common::PlayerStateFlag::InCombat );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Sapphire::Entity::Player::onMobDeaggro( BNpcPtr pBNpc )
|
void Sapphire::Entity::Player::onMobDeaggro( BNpcPtr pBNpc )
|
||||||
{
|
{
|
||||||
hateListRemove( pBNpc );
|
hateListRemove( pBNpc );
|
||||||
if( m_actorIdTohateSlotMap.empty() )
|
if( m_actorIdTohateSlotMap.empty() && hasStateFlag( Common::PlayerStateFlag::InCombat ) )
|
||||||
{
|
{
|
||||||
queuePacket( makeActorControl( getId(), ToggleAggro ) );
|
queuePacket( makeActorControl( getId(), ToggleAggro ) );
|
||||||
unsetStateFlag( Common::PlayerStateFlag::InCombat );
|
unsetStateFlag( Common::PlayerStateFlag::InCombat );
|
||||||
|
|
Loading…
Add table
Reference in a new issue