diff options
-rw-r--r-- | src/server/game/AI/PlayerAI/PlayerAI.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
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); } |