From b46d899ef16ce15e1f8403be076993545035cddc Mon Sep 17 00:00:00 2001 From: ariel- Date: Mon, 22 Jan 2018 14:02:01 -0300 Subject: Core/PlayerAI: perform cast checks on auto ranged attack Closes #19928 (cherry picked from commit 590d2518820d45e54a4a31cc554af18c0695bcd0) --- src/server/game/AI/PlayerAI/PlayerAI.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'src/server/game') diff --git a/src/server/game/AI/PlayerAI/PlayerAI.cpp b/src/server/game/AI/PlayerAI/PlayerAI.cpp index be52282a482..edd59878942 100644 --- a/src/server/game/AI/PlayerAI/PlayerAI.cpp +++ b/src/server/game/AI/PlayerAI/PlayerAI.cpp @@ -614,7 +614,21 @@ void PlayerAI::DoRangedAttackIfReady() if (!rangedAttackSpell) return; - me->CastSpell(victim, rangedAttackSpell, TRIGGERED_CAST_DIRECTLY); + SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(rangedAttackSpell, me->GetMap()->GetDifficultyID()); + 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); } -- cgit v1.2.3