[8369] Some step back in triggered effect caster selection.

This must fix some broken after [8360] spells.
This commit is contained in:
VladimirMangos 2009-08-14 04:07:03 +04:00
parent 6e8aca42f9
commit 8d30f01a73
3 changed files with 25 additions and 7 deletions

View file

@ -1961,7 +1961,7 @@ void Spell::EffectForceCast(uint32 i)
unitTarget->CastSpell(unitTarget, spellInfo, true, NULL, NULL, m_originalCasterGUID);
}
void Spell::EffectTriggerSpell(uint32 i)
void Spell::EffectTriggerSpell(uint32 effIndex)
{
// only unit case known
if (!unitTarget)
@ -1971,7 +1971,7 @@ void Spell::EffectTriggerSpell(uint32 i)
return;
}
uint32 triggered_spell_id = m_spellInfo->EffectTriggerSpell[i];
uint32 triggered_spell_id = m_spellInfo->EffectTriggerSpell[effIndex];
// special cases
switch(triggered_spell_id)
@ -2087,6 +2087,9 @@ void Spell::EffectTriggerSpell(uint32 i)
return;
}
// select formal caster for triggered spell
Unit* caster = m_caster;
// some triggered spells require specific equipment
if (spellInfo->EquippedItemClass >=0 && m_caster->GetTypeId()==TYPEID_PLAYER)
{
@ -2118,8 +2121,14 @@ void Spell::EffectTriggerSpell(uint32 i)
return;
}
}
else
{
// Note: not exist spells with weapon req. and IsSpellHaveCasterSourceTargets == true
// so this just for speedup places in else
caster = IsSpellWithCasterSourceTargetsOnly(spellInfo) ? unitTarget : m_caster;
}
unitTarget->CastSpell(unitTarget,spellInfo,true,NULL,NULL,m_originalCasterGUID);
caster->CastSpell(unitTarget,spellInfo,true,NULL,NULL,m_originalCasterGUID);
}
void Spell::EffectTriggerMissileSpell(uint32 effect_idx)