mirror of
https://github.com/mangosfour/server.git
synced 2025-12-16 13:37:00 +00:00
[8362] Prevent apply low-level cast limitation at positive aura apply to self in hostile to target spell.
This commit is contained in:
parent
964046eb3a
commit
acc922a11a
2 changed files with 15 additions and 5 deletions
|
|
@ -3845,11 +3845,21 @@ SpellCastResult Spell::CheckCast(bool strict)
|
||||||
// auto selection spell rank implemented in WorldSession::HandleCastSpellOpcode
|
// auto selection spell rank implemented in WorldSession::HandleCastSpellOpcode
|
||||||
// this case can be triggered if rank not found (too low-level target for first rank)
|
// this case can be triggered if rank not found (too low-level target for first rank)
|
||||||
if (m_caster->GetTypeId() == TYPEID_PLAYER && !IsPassiveSpell(m_spellInfo->Id) && !m_CastItem)
|
if (m_caster->GetTypeId() == TYPEID_PLAYER && !IsPassiveSpell(m_spellInfo->Id) && !m_CastItem)
|
||||||
|
{
|
||||||
for(int i=0;i<3;++i)
|
for(int i=0;i<3;++i)
|
||||||
if(IsPositiveEffect(m_spellInfo->Id, i) && m_spellInfo->Effect[i] == SPELL_EFFECT_APPLY_AURA)
|
{
|
||||||
if(target->getLevel() + 10 < m_spellInfo->spellLevel)
|
// check only spell that apply positive auras
|
||||||
|
if (IsPositiveEffect(m_spellInfo->Id, i) && m_spellInfo->Effect[i] == SPELL_EFFECT_APPLY_AURA &&
|
||||||
|
// at not self target
|
||||||
|
!IsCasterSourceTarget(m_spellInfo->EffectImplicitTargetA[i]) &&
|
||||||
|
// and target low level
|
||||||
|
target->getLevel() + 10 < m_spellInfo->spellLevel)
|
||||||
|
{
|
||||||
return SPELL_FAILED_LOWLEVEL;
|
return SPELL_FAILED_LOWLEVEL;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
else if (m_caster->GetTypeId() == TYPEID_PLAYER) // Target - is player caster
|
else if (m_caster->GetTypeId() == TYPEID_PLAYER) // Target - is player caster
|
||||||
{
|
{
|
||||||
// Additional check for some spells
|
// Additional check for some spells
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#ifndef __REVISION_NR_H__
|
#ifndef __REVISION_NR_H__
|
||||||
#define __REVISION_NR_H__
|
#define __REVISION_NR_H__
|
||||||
#define REVISION_NR "8361"
|
#define REVISION_NR "8362"
|
||||||
#endif // __REVISION_NR_H__
|
#endif // __REVISION_NR_H__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue