diff options
| author | Seyden <saiifii@live.de> | 2022-01-18 21:06:10 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-01-18 21:06:10 +0100 |
| commit | 12d00e2e5f7e2cc7efe1ea8d126f9408055c05f8 (patch) | |
| tree | fbc657e293e61a4f9edff3fd0186c79caedc2d81 /src/server/game/Spells/Spell.cpp | |
| parent | f383c0ea214cc4da2d02b81e26297d77ff59c7ed (diff) | |
Scripts/Spells: Implement OnPrecast scripting hook for spell scripts (#27632)
* Fires before cast bar starts
Diffstat (limited to 'src/server/game/Spells/Spell.cpp')
| -rw-r--r-- | src/server/game/Spells/Spell.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 7afa210808f..fa5f19f1ff5 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -3228,6 +3228,8 @@ SpellCastResult Spell::prepare(SpellCastTargets const& targets, AuraEffect const // set timer base at cast time ReSetTimer(); + CallScriptOnPrecastHandler(); + TC_LOG_DEBUG("spells", "Spell::prepare: spell id %u source %u caster %d customCastFlags %u mask %u", m_spellInfo->Id, m_caster->GetEntry(), m_originalCaster ? m_originalCaster->GetEntry() : -1, _triggeredCastFlags, m_targets.GetTargetMask()); if (m_spellInfo->HasAttribute(SPELL_ATTR12_START_COOLDOWN_ON_CAST_START)) @@ -8012,6 +8014,16 @@ void Spell::LoadScripts() } } +void Spell::CallScriptOnPrecastHandler() +{ + for (auto scritr = m_loadedScripts.begin(); scritr != m_loadedScripts.end(); ++scritr) + { + (*scritr)->_PrepareScriptCall(SPELL_SCRIPT_HOOK_ON_PRECAST); + (*scritr)->OnPrecast(); + (*scritr)->_FinishScriptCall(); + } +} + void Spell::CallScriptBeforeCastHandlers() { for (auto scritr = m_loadedScripts.begin(); scritr != m_loadedScripts.end(); ++scritr) |
