diff options
Diffstat (limited to 'src/server/game/Spells/SpellScript.cpp')
| -rwxr-xr-x | src/server/game/Spells/SpellScript.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/server/game/Spells/SpellScript.cpp b/src/server/game/Spells/SpellScript.cpp index 52a06bd1f2e..fcb3bef7e30 100755 --- a/src/server/game/Spells/SpellScript.cpp +++ b/src/server/game/Spells/SpellScript.cpp @@ -146,6 +146,16 @@ std::string _SpellScript::EffectAuraNameCheck::ToString() } } +SpellScript::CheckCastHandler::CheckCastHandler(SpellCheckCastFnType checkCastHandlerScript) +{ + _checkCastHandlerScript = checkCastHandlerScript; +} + +SpellCastResult SpellScript::CheckCastHandler::Call(SpellScript* spellScript) +{ + return (spellScript->*_checkCastHandlerScript)(); +} + SpellScript::EffectHandler::EffectHandler(SpellEffectFnType _pEffectHandlerScript,uint8 _effIndex, uint16 _effName) : _SpellScript::EffectNameCheck(_effName), _SpellScript::EffectHook(_effIndex) { @@ -445,6 +455,17 @@ void SpellScript::FinishCast(SpellCastResult result) m_spell->finish(result == SPELL_CAST_OK); } +void SpellScript::SetCustomCastResultMessage(SpellCustomErrors result) +{ + if (!IsInCheckCastHook()) + { + sLog->outError("TSCR: Script: `%s` Spell: `%u`: function SpellScript::SetCustomCastResultMessage was called while spell not in check cast phase!", m_scriptName->c_str(), m_scriptSpellId); + return; + } + + m_spell->m_customError = result; +} + bool AuraScript::_Validate(SpellEntry const * entry) { for (std::list<EffectApplyHandler>::iterator itr = OnEffectApply.begin(); itr != OnEffectApply.end(); ++itr) |
