From 0f69e644d2bf449e9e065edcffc9becedf7a1313 Mon Sep 17 00:00:00 2001 From: ariel- Date: Sat, 7 May 2022 16:51:54 +0200 Subject: [PATCH] Core/PlayerAI: perform cast checks on auto ranged attack --- src/server/game/AI/PlayerAI/PlayerAI.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/server/game/AI/PlayerAI/PlayerAI.cpp b/src/server/game/AI/PlayerAI/PlayerAI.cpp index d4aa7e7e683..454537e7b52 100644 --- a/src/server/game/AI/PlayerAI/PlayerAI.cpp +++ b/src/server/game/AI/PlayerAI/PlayerAI.cpp @@ -659,7 +659,21 @@ void PlayerAI::DoRangedAttackIfReady() if (!rangedAttackSpell) return; - me->CastSpell(victim, rangedAttackSpell, TRIGGERED_CAST_DIRECTLY); + SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(rangedAttackSpell); + if (!spellInfo) + return; + + Spell* spell = new Spell(me, spellInfo, TRIGGERED_CAST_DIRECTLY); + if (spell->CheckPetCast(victim) != SPELL_CAST_OK) + { + delete spell; + return; + } + + SpellCastTargets targets; + targets.SetUnitTarget(victim); + spell->prepare(targets); + me->resetAttackTimer(RANGED_ATTACK); }