1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-04-28 07:07:45 +00:00

Add option for scripts to enable the generic/lut handler

This commit is contained in:
Lucy 2023-03-08 18:13:29 +01:00
parent ec3c109898
commit 9daf224019
2 changed files with 14 additions and 2 deletions

View file

@ -517,8 +517,9 @@ void Action::Action::handleAction()
auto& scriptMgr = Common::Service< Scripting::ScriptMgr >::ref(); auto& scriptMgr = Common::Service< Scripting::ScriptMgr >::ref();
auto hasLutEntry = hasValidLutEntry(); auto hasLutEntry = hasValidLutEntry();
auto hasScript = scriptMgr.onExecute( *this );
if( !scriptMgr.onExecute( *this ) && !hasLutEntry ) if( !hasScript && !hasLutEntry )
{ {
if( auto player = m_pSource->getAsPlayer() ) if( auto player = m_pSource->getAsPlayer() )
{ {
@ -528,9 +529,12 @@ void Action::Action::handleAction()
return; return;
} }
if( !hasScript )
m_enableGenericHandler = true;
Network::Util::Player::sendHudParam( *m_pSource->getAsPlayer() ); Network::Util::Player::sendHudParam( *m_pSource->getAsPlayer() );
if( !hasLutEntry || m_hitActors.empty() ) if( !m_enableGenericHandler || !hasLutEntry || m_hitActors.empty() )
{ {
// send any effect packet added by script or an empty one just to play animation for other players // send any effect packet added by script or an empty one just to play animation for other players
m_effectBuilder->buildAndSendPackets( m_hitActors ); m_effectBuilder->buildAndSendPackets( m_hitActors );
@ -962,3 +966,8 @@ uint64_t Action::Action::getCastTimeRest() const
{ {
return m_castTimeRestMs; return m_castTimeRestMs;
} }
void Action::Action::enableGenericHandler()
{
m_enableGenericHandler = true;
}

View file

@ -53,6 +53,8 @@ namespace Sapphire::World::Action
uint64_t getCastTimeRest() const; uint64_t getCastTimeRest() const;
void enableGenericHandler();
/*! /*!
* @brief Checks if a chara has enough resources available to cast the action (tp/mp/etc) * @brief Checks if a chara has enough resources available to cast the action (tp/mp/etc)
* @return true if they have the required resources * @return true if they have the required resources
@ -207,6 +209,7 @@ namespace Sapphire::World::Action
bool m_canTargetFriendly{}; bool m_canTargetFriendly{};
bool m_canTargetHostile{}; bool m_canTargetHostile{};
bool m_canTargetDead{}; bool m_canTargetDead{};
bool m_enableGenericHandler{};
Common::ActionInterruptType m_interruptType; Common::ActionInterruptType m_interruptType;