Core/Spells: Rename SPELL_ATTR6_ONLY_CAST_WHILE_POSSESSED to SPELL_ATTR6_CAST_BY_CHARMER and assign m_caster in Spell::Spell instead of m_originalCaster
This commit is contained in:
@@ -497,7 +497,7 @@ enum SpellAttr6
|
|||||||
SPELL_ATTR6_UNK15 = 0x00008000, // 15 not set in 3.0.3
|
SPELL_ATTR6_UNK15 = 0x00008000, // 15 not set in 3.0.3
|
||||||
SPELL_ATTR6_UNK16 = 0x00010000, // 16
|
SPELL_ATTR6_UNK16 = 0x00010000, // 16
|
||||||
SPELL_ATTR6_UNK17 = 0x00020000, // 17
|
SPELL_ATTR6_UNK17 = 0x00020000, // 17
|
||||||
SPELL_ATTR6_ONLY_CAST_WHILE_POSSESSED = 0x00040000, // 18 client won't allow to cast these spells when unit is not possessed && charmer of caster will be original caster
|
SPELL_ATTR6_CAST_BY_CHARMER = 0x00040000, // 18 client won't allow to cast these spells when unit is not possessed && charmer of caster will be original caster
|
||||||
SPELL_ATTR6_UNK19 = 0x00080000, // 19
|
SPELL_ATTR6_UNK19 = 0x00080000, // 19
|
||||||
SPELL_ATTR6_UNK20 = 0x00100000, // 20
|
SPELL_ATTR6_UNK20 = 0x00100000, // 20
|
||||||
SPELL_ATTR6_CLIENT_UI_TARGET_EFFECTS = 0x00200000, // 21 it's only client-side attribute
|
SPELL_ATTR6_CLIENT_UI_TARGET_EFFECTS = 0x00200000, // 21 it's only client-side attribute
|
||||||
|
|||||||
@@ -496,10 +496,11 @@ m_caster(caster), m_spellValue(new SpellValue(m_spellInfo))
|
|||||||
if (Item* pItem = m_caster->ToPlayer()->GetWeaponForAttack(RANGED_ATTACK))
|
if (Item* pItem = m_caster->ToPlayer()->GetWeaponForAttack(RANGED_ATTACK))
|
||||||
m_spellSchoolMask = SpellSchoolMask(1 << pItem->GetTemplate()->Damage[0].DamageType);
|
m_spellSchoolMask = SpellSchoolMask(1 << pItem->GetTemplate()->Damage[0].DamageType);
|
||||||
|
|
||||||
|
if (info->AttributesEx6 & SPELL_ATTR6_CAST_BY_CHARMER)
|
||||||
|
const_cast<Unit*>(m_caster) = caster->GetCharmerOrOwner();
|
||||||
|
|
||||||
if (originalCasterGUID)
|
if (originalCasterGUID)
|
||||||
m_originalCasterGUID = originalCasterGUID;
|
m_originalCasterGUID = originalCasterGUID;
|
||||||
else if (info->AttributesEx6 & SPELL_ATTR6_ONLY_CAST_WHILE_POSSESSED)
|
|
||||||
m_originalCasterGUID = m_caster->GetCharmerOrOwnerGUID();
|
|
||||||
else
|
else
|
||||||
m_originalCasterGUID = m_caster->GetGUID();
|
m_originalCasterGUID = m_caster->GetGUID();
|
||||||
|
|
||||||
@@ -4747,7 +4748,7 @@ SpellCastResult Spell::CheckCast(bool strict)
|
|||||||
}
|
}
|
||||||
|
|
||||||
//! Client checks this already
|
//! Client checks this already
|
||||||
if (m_spellInfo->AttributesEx6 & SPELL_ATTR6_ONLY_CAST_WHILE_POSSESSED && !m_caster->GetCharmerOrOwnerGUID())
|
if (m_spellInfo->AttributesEx6 & SPELL_ATTR6_CAST_BY_CHARMER && !m_caster->GetCharmerOrOwnerGUID())
|
||||||
return SPELL_FAILED_DONT_REPORT;
|
return SPELL_FAILED_DONT_REPORT;
|
||||||
|
|
||||||
Unit* target = m_targets.GetUnitTarget();
|
Unit* target = m_targets.GetUnitTarget();
|
||||||
|
|||||||
Reference in New Issue
Block a user