[0091] Define SPELL_ATTR_EX8_IGNORE_TARGET_FOR_COMBO_POINTS

Signed-off-by: Yaki Khadafi <ElSolDolLo@gmail.com>
This commit is contained in:
Yaki Khadafi 2012-08-14 19:06:50 +03:00 committed by Antz
parent 33ab9c7277
commit 19d898c836
4 changed files with 7 additions and 5 deletions

View file

@ -300,7 +300,7 @@ enum SpellAttributesEx
SPELL_ATTR_EX_UNK19 = 0x00080000,// 19
SPELL_ATTR_EX_REQ_TARGET_COMBO_POINTS = 0x00100000,// 20 Req combo points on target
SPELL_ATTR_EX_UNK21 = 0x00200000,// 21
SPELL_ATTR_EX_REQ_COMBO_POINTS = 0x00400000,// 22 Use combo points (in 4.x not required combo point target selected)
SPELL_ATTR_EX_REQ_COMBO_POINTS = 0x00400000,// 22 Use combo points
SPELL_ATTR_EX_UNK23 = 0x00800000,// 23
SPELL_ATTR_EX_UNK24 = 0x01000000,// 24 Req fishing pole??
SPELL_ATTR_EX_UNK25 = 0x02000000,// 25
@ -549,7 +549,7 @@ enum SpellAttributesEx8
SPELL_ATTR_EX8_UNK16 = 0x00010000,// 16
SPELL_ATTR_EX8_UNK17 = 0x00020000,// 17
SPELL_ATTR_EX8_UNK18 = 0x00040000,// 18 Dark Simulacrum, Soul Swap
SPELL_ATTR_EX8_UNK19 = 0x00080000,// 19 Slice and Dice, Savage Roar, Recuperate
SPELL_ATTR_EX8_IGNORE_TARGET_FOR_COMBO_POINTS = 0x00080000,// 19 Slice and Dice, Savage Roar, Recuperate
SPELL_ATTR_EX8_ARMOR_SPECIALIZATION = 0x00100000,// 20
SPELL_ATTR_EX8_UNK21 = 0x00200000,// 21 some spells that summon smth
SPELL_ATTR_EX8_UNK22 = 0x00400000,// 22 some health-affecting spells

View file

@ -5132,7 +5132,8 @@ SpellCastResult Spell::CheckCast(bool strict)
}
if (!m_IsTriggeredSpell && NeedsComboPoints(m_spellInfo) && !m_caster->IsIgnoreUnitState(m_spellInfo, IGNORE_UNIT_TARGET_STATE) &&
(!m_targets.getUnitTarget() || m_targets.getUnitTarget()->GetObjectGuid() != ((Player*)m_caster)->GetComboTargetGuid()))
(!m_targets.getUnitTarget() || m_targets.getUnitTarget()->GetObjectGuid() != ((Player*)m_caster)->GetComboTargetGuid()) &&
!m_spellInfo->HasAttribute(SPELL_ATTR_EX8_IGNORE_TARGET_FOR_COMBO_POINTS))
// warrior not have real combo-points at client side but use this way for mark allow Overpower use
return m_caster->getClass() == CLASS_WARRIOR ? SPELL_FAILED_CASTER_AURASTATE : SPELL_FAILED_NO_COMBO_POINTS;
}

View file

@ -9291,7 +9291,8 @@ int32 Unit::CalculateSpellDamage(Unit const* target, SpellEntry const* spellProt
int32 value = basePoints;
// random damage
if (comboDamage != 0 && unitPlayer && target && (target->GetObjectGuid() == unitPlayer->GetComboTargetGuid()))
if (comboDamage != 0 && unitPlayer &&
(target && target->GetObjectGuid() == unitPlayer->GetComboTargetGuid() || spellProto->HasAttribute(SPELL_ATTR_EX8_IGNORE_TARGET_FOR_COMBO_POINTS)))
value += (int32)(comboDamage * comboPoints);
if (Player* modOwner = GetSpellModOwner())

View file

@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__
#define __REVISION_NR_H__
#define REVISION_NR "0090"
#define REVISION_NR "0091"
#endif // __REVISION_NR_H__