[AI] Fix TARGET_SELF-TARGET_SCRIPT target combination (c2606)

Also introduce more symmetric behaviour for TARGET_FOCUS_OR_SCRIPTED_GO
This commit is contained in:
xfurry 2015-03-25 10:56:55 +00:00 committed by Antz
parent 347fb87b3d
commit c0b73d3fee
2 changed files with 7 additions and 6 deletions

View File

@ -1 +1 @@
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

View File

@ -4330,10 +4330,11 @@ SpellCastResult Spell::CheckCast(bool strict)
for (int j = 0; j < MAX_EFFECT_INDEX; ++j)
{
if (m_spellInfo->EffectImplicitTargetA[j] == TARGET_SCRIPT ||
(m_spellInfo->EffectImplicitTargetB[j] == TARGET_SCRIPT && m_spellInfo->EffectImplicitTargetA[j] != TARGET_SELF) ||
m_spellInfo->EffectImplicitTargetA[j] == TARGET_SCRIPT_COORDINATES ||
m_spellInfo->EffectImplicitTargetB[j] == TARGET_SCRIPT_COORDINATES ||
m_spellInfo->EffectImplicitTargetA[j] == TARGET_FOCUS_OR_SCRIPTED_GAMEOBJECT)
m_spellInfo->EffectImplicitTargetB[j] == TARGET_SCRIPT ||
m_spellInfo->EffectImplicitTargetA[j] == TARGET_SCRIPT_COORDINATES ||
m_spellInfo->EffectImplicitTargetB[j] == TARGET_SCRIPT_COORDINATES ||
m_spellInfo->EffectImplicitTargetA[j] == TARGET_FOCUS_OR_SCRIPTED_GAMEOBJECT ||
m_spellInfo->EffectImplicitTargetB[j] == TARGET_FOCUS_OR_SCRIPTED_GAMEOBJECT)
{
SQLMultiStorage::SQLMSIteratorBounds<SpellTargetEntry> bounds = sSpellScriptTargetStorage.getBounds<SpellTargetEntry>(m_spellInfo->Id);
@ -4345,7 +4346,7 @@ SpellCastResult Spell::CheckCast(bool strict)
if (m_spellInfo->EffectImplicitTargetA[j] == TARGET_SCRIPT_COORDINATES || m_spellInfo->EffectImplicitTargetB[j] == TARGET_SCRIPT_COORDINATES)
{ sLog.outErrorDb("Spell entry %u, effect %i has EffectImplicitTargetA/EffectImplicitTargetB = TARGET_SCRIPT_COORDINATES, but gameobject or creature are not defined in `spell_script_target`", m_spellInfo->Id, j); }
if (m_spellInfo->EffectImplicitTargetA[j] == TARGET_FOCUS_OR_SCRIPTED_GAMEOBJECT)
if (m_spellInfo->EffectImplicitTargetA[j] == TARGET_FOCUS_OR_SCRIPTED_GAMEOBJECT || m_spellInfo->EffectImplicitTargetB[j] == TARGET_FOCUS_OR_SCRIPTED_GAMEOBJECT)
{ sLog.outErrorDb("Spell entry %u, effect %i has EffectImplicitTargetA/EffectImplicitTargetB = TARGET_FOCUS_OR_SCRIPTED_GAMEOBJECT, but gameobject are not defined in `spell_script_target`", m_spellInfo->Id, j); }
}