diff options
| author | iThorgrim <125808072+iThorgrim@users.noreply.github.com> | 2025-01-18 16:26:39 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-01-18 12:26:39 -0300 |
| commit | 90566589b0349fc31941af6e6ed660d30a0a761e (patch) | |
| tree | 0073320b69ca18be943ed690ec03142d2221433c /src/server/game/Scripting/ScriptDefines | |
| parent | c55346dbe366dbfb42f3f0e4ca5a4e5c40863d18 (diff) | |
feat(Scripting/Spell): Add new hooks for Spell (OnSpellCast, OnSpellPrepare, OnSpellCancel) (#21149)
Diffstat (limited to 'src/server/game/Scripting/ScriptDefines')
| -rw-r--r-- | src/server/game/Scripting/ScriptDefines/AllSpellScript.cpp | 15 | ||||
| -rw-r--r-- | src/server/game/Scripting/ScriptDefines/AllSpellScript.h | 9 |
2 files changed, 24 insertions, 0 deletions
diff --git a/src/server/game/Scripting/ScriptDefines/AllSpellScript.cpp b/src/server/game/Scripting/ScriptDefines/AllSpellScript.cpp index 0c3fea4fa1..44f0866ee2 100644 --- a/src/server/game/Scripting/ScriptDefines/AllSpellScript.cpp +++ b/src/server/game/Scripting/ScriptDefines/AllSpellScript.cpp @@ -84,6 +84,21 @@ void ScriptMgr::OnDummyEffect(WorldObject* caster, uint32 spellID, SpellEffIndex CALL_ENABLED_HOOKS(AllSpellScript, ALLSPELLHOOK_ON_DUMMY_EFFECT_ITEM, script->OnDummyEffect(caster, spellID, effIndex, itemTarget)); } +void ScriptMgr::OnSpellCastCancel(Spell* spell, Unit* caster, SpellInfo const* spellInfo, bool bySelf) +{ + CALL_ENABLED_HOOKS(AllSpellScript, ALLSPELLHOOK_ON_CAST_CANCEL, script->OnSpellCastCancel(spell, caster, spellInfo, bySelf)); +} + +void ScriptMgr::OnSpellCast(Spell* spell, Unit* caster, SpellInfo const* spellInfo, bool skipCheck) +{ + CALL_ENABLED_HOOKS(AllSpellScript, ALLSPELLHOOK_ON_CAST, script->OnSpellCast(spell, caster, spellInfo, skipCheck)); +} + +void ScriptMgr::OnSpellPrepare(Spell* spell, Unit* caster, SpellInfo const* spellInfo) +{ + CALL_ENABLED_HOOKS(AllSpellScript, ALLSPELLHOOK_ON_PREPARE, script->OnSpellPrepare(spell, caster, spellInfo)); +} + AllSpellScript::AllSpellScript(char const* name, std::vector<uint16> enabledHooks) : ScriptObject(name, ALLSPELLHOOK_END) { diff --git a/src/server/game/Scripting/ScriptDefines/AllSpellScript.h b/src/server/game/Scripting/ScriptDefines/AllSpellScript.h index 9f1682f2f7..3dd2711bdb 100644 --- a/src/server/game/Scripting/ScriptDefines/AllSpellScript.h +++ b/src/server/game/Scripting/ScriptDefines/AllSpellScript.h @@ -36,6 +36,9 @@ enum AllSpellHook ALLSPELLHOOK_ON_DUMMY_EFFECT_GAMEOBJECT, ALLSPELLHOOK_ON_DUMMY_EFFECT_CREATURE, ALLSPELLHOOK_ON_DUMMY_EFFECT_ITEM, + ALLSPELLHOOK_ON_CAST_CANCEL, + ALLSPELLHOOK_ON_CAST, + ALLSPELLHOOK_ON_PREPARE, ALLSPELLHOOK_END }; @@ -100,6 +103,12 @@ public: * @param itemTarget Contains information about the Item */ virtual void OnDummyEffect(WorldObject* /*caster*/, uint32 /*spellID*/, SpellEffIndex /*effIndex*/, Item* /*itemTarget*/) { } + + virtual void OnSpellCastCancel(Spell* /*spell*/, Unit* /*caster*/, SpellInfo const* /*spellInfo*/, bool /*bySelf*/) { } + + virtual void OnSpellCast(Spell* /*spell*/, Unit* /*caster*/, SpellInfo const* /*spellInfo*/, bool /*skipCheck*/) { } + + virtual void OnSpellPrepare(Spell* /*spell*/, Unit* /*caster*/, SpellInfo const* /*spellInfo*/) { } }; // Compatibility for old scripts |
