mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-02-07 21:01:37 +00:00
fix(Core/SmartAI): Skip positive spells when determining attack distance (#24381)
Co-authored-by: blinkysc <blinkysc@users.noreply.github.com>
This commit is contained in:
@@ -0,0 +1,8 @@
|
|||||||
|
--
|
||||||
|
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 314 AND `id` = 1);
|
||||||
|
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||||
|
(314, 0, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 20819, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Eliza - In Combat - Cast Frostbolt');
|
||||||
|
|
||||||
|
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 5354 AND `id` = 0);
|
||||||
|
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||||
|
(5354, 0, 0, 0, 4, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 11922, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Gnarl Leafbrother - On Aggro - Cast Entangling Roots');
|
||||||
@@ -951,6 +951,14 @@ void SmartAI::InitializeAI()
|
|||||||
if (!(event.action.cast.castFlags & SMARTCAST_MAIN_SPELL))
|
if (!(event.action.cast.castFlags & SMARTCAST_MAIN_SPELL))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(event.action.cast.spell);
|
||||||
|
if (spellInfo && spellInfo->IsPositive())
|
||||||
|
{
|
||||||
|
LOG_WARN("scripts.ai", "SmartAI: Creature {} has SMARTCAST_MAIN_SPELL on positive spell {} - positive spells should not be used as main spell",
|
||||||
|
me->GetEntry(), event.action.cast.spell);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
SetMainSpell(event.action.cast.spell);
|
SetMainSpell(event.action.cast.spell);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -966,6 +974,11 @@ void SmartAI::InitializeAI()
|
|||||||
if (!(event.action.cast.castFlags & SMARTCAST_COMBAT_MOVE))
|
if (!(event.action.cast.castFlags & SMARTCAST_COMBAT_MOVE))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
// Don't use positive (healing/buff) spells to determine attack distance
|
||||||
|
SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(event.action.cast.spell);
|
||||||
|
if (spellInfo && spellInfo->IsPositive())
|
||||||
|
continue;
|
||||||
|
|
||||||
SetMainSpell(event.action.cast.spell);
|
SetMainSpell(event.action.cast.spell);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user