diff --git a/data/sql/updates/pending_db_world/rev_1670666174473143000.sql b/data/sql/updates/pending_db_world/rev_1670666174473143000.sql new file mode 100644 index 000000000..990ee257f --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1670666174473143000.sql @@ -0,0 +1,3 @@ +-- +UPDATE `spell_script_names` SET `spell_id`=64579 WHERE `spell_id`=64568 AND `ScriptName`='spell_gen_proc_above_75'; +UPDATE `spell_script_names` SET `spell_id`=64441 WHERE `spell_id`=64440 AND `ScriptName`='spell_gen_proc_above_75'; diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp index fc801dfef..7bbd294ff 100644 --- a/src/server/scripts/Spells/spell_generic.cpp +++ b/src/server/scripts/Spells/spell_generic.cpp @@ -850,18 +850,24 @@ class spell_gen_fixate_aura : public AuraScript /* 64440 - Blade Warding 64568 - Blood Reserve */ -class spell_gen_proc_above_75 : public AuraScript +class spell_gen_proc_above_75 : public SpellScript { - PrepareAuraScript(spell_gen_proc_above_75); + PrepareSpellScript(spell_gen_proc_above_75); - bool CheckProc(ProcEventInfo& eventInfo) + SpellCastResult CheckLevel() { - return eventInfo.GetActor() && eventInfo.GetActor()->getLevel() >= 75; + Unit* caster = GetCaster(); + if (caster->getLevel() < 75) + { + return SPELL_FAILED_LOWLEVEL; + } + + return SPELL_CAST_OK; } void Register() override { - DoCheckProc += AuraCheckProcFn(spell_gen_proc_above_75::CheckProc); + OnCheckCast += SpellCheckCastFn(spell_gen_proc_above_75::CheckLevel); } };