mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-05-28 20:27:46 +00:00
more fixes
This commit is contained in:
parent
ffb1a83494
commit
93479a9c75
2 changed files with 8 additions and 2 deletions
|
@ -54,7 +54,8 @@ Action::Action::Action( Entity::CharaPtr caster, uint32_t actionId, uint16_t seq
|
||||||
m_interruptType( Common::ActionInterruptType::None ),
|
m_interruptType( Common::ActionInterruptType::None ),
|
||||||
m_sequence( sequence ),
|
m_sequence( sequence ),
|
||||||
m_isAutoAttack( false ),
|
m_isAutoAttack( false ),
|
||||||
m_disableGenericHandler( false )
|
m_disableGenericHandler( false ),
|
||||||
|
m_started( false )
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -319,6 +320,8 @@ void Action::Action::start()
|
||||||
// instantly finish cast if there's no cast time
|
// instantly finish cast if there's no cast time
|
||||||
if( !hasCastTime() )
|
if( !hasCastTime() )
|
||||||
execute();
|
execute();
|
||||||
|
|
||||||
|
m_started = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Action::Action::interrupt( ActionInterruptType type )
|
void Action::Action::interrupt( ActionInterruptType type )
|
||||||
|
@ -342,7 +345,7 @@ void Action::Action::interrupt( ActionInterruptType type )
|
||||||
player->unsetStateFlag( PlayerStateFlag::Casting );
|
player->unsetStateFlag( PlayerStateFlag::Casting );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( hasCastTime() )
|
if( m_started && hasCastTime() )
|
||||||
{
|
{
|
||||||
uint8_t interruptEffect = 0;
|
uint8_t interruptEffect = 0;
|
||||||
if( m_interruptType == ActionInterruptType::DamageInterrupt )
|
if( m_interruptType == ActionInterruptType::DamageInterrupt )
|
||||||
|
@ -402,6 +405,8 @@ void Action::Action::execute()
|
||||||
pScriptMgr->onEObjHit( *player, m_targetId, getId() );
|
pScriptMgr->onEObjHit( *player, m_targetId, getId() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
m_started = false;
|
||||||
|
|
||||||
// set currently casted action as the combo action if it interrupts a combo
|
// set currently casted action as the combo action if it interrupts a combo
|
||||||
// ignore it otherwise (ogcds, etc.)
|
// ignore it otherwise (ogcds, etc.)
|
||||||
if( !m_actionData->preservesCombo )
|
if( !m_actionData->preservesCombo )
|
||||||
|
|
|
@ -202,6 +202,7 @@ namespace Sapphire::World::Action
|
||||||
bool m_canTargetDead;
|
bool m_canTargetDead;
|
||||||
bool m_isAutoAttack;
|
bool m_isAutoAttack;
|
||||||
bool m_disableGenericHandler;
|
bool m_disableGenericHandler;
|
||||||
|
bool m_started;
|
||||||
|
|
||||||
Common::ActionInterruptType m_interruptType;
|
Common::ActionInterruptType m_interruptType;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue