From 4860989242dbcdcdfe5918e86827367b732d36a7 Mon Sep 17 00:00:00 2001 From: UltraNix <80540499+UltraNix@users.noreply.github.com> Date: Mon, 12 Dec 2022 13:57:03 +0100 Subject: [PATCH] =?UTF-8?q?fix(Scripts/Spells):=20Fixed=20level=20requirem?= =?UTF-8?q?ents=20for=20Blade=20Ward=20and=20Bloo=E2=80=A6=20(#14107)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix(Scripts/Spells): Fixed level requirements for Blade Ward and Blood Draining enchants. Fixed Blood Draining proc. Fixes #12131 --- .../pending_db_world/rev_1670666174473143000.sql | 3 +++ src/server/scripts/Spells/spell_generic.cpp | 16 +++++++++++----- 2 files changed, 14 insertions(+), 5 deletions(-) create mode 100644 data/sql/updates/pending_db_world/rev_1670666174473143000.sql 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); } };