Core/Spells: prevent creatures to focus channeled spells without SPELL_ATTR1_CHANNEL_TRACK_TARGET

Port From (https://github.com/TrinityCore/TrinityCore/commit/d91e099b10a33d9205c023c81bcc966d713c39ab)
This commit is contained in:
hondacrx
2021-06-23 23:43:18 -04:00
parent 61e9d9f964
commit eefb63647d
3 changed files with 7 additions and 1 deletions
@@ -1411,6 +1411,7 @@ namespace Framework.Constants
DemonHunter = 107
}
[Flags]
public enum TriggerCastFlags : uint
{
None = 0x0, //! Not Triggered
@@ -2882,6 +2882,10 @@ namespace Game.Entities
if (_focusSpell != null)
return;
// some spells shouldn't track targets
if (focusSpell.IsFocusDisabled())
return;
SpellInfo spellInfo = focusSpell.GetSpellInfo();
// don't use spell focus for vehicle spells
+2 -1
View File
@@ -2543,7 +2543,7 @@ namespace Game.Spells
// focus if not controlled creature
if (m_caster.GetTypeId() == TypeId.Unit && !m_caster.HasUnitFlag(UnitFlags.PlayerControlled))
{
if (!(m_spellInfo.IsNextMeleeSwingSpell() || IsAutoRepeat() || _triggeredCastFlags.HasAnyFlag(TriggerCastFlags.IgnoreSetFacing)))
if (!(m_spellInfo.IsNextMeleeSwingSpell() || IsAutoRepeat()))
{
if (m_targets.GetObjectTarget() && m_caster != m_targets.GetObjectTarget())
m_caster.ToCreature().FocusTarget(this, m_targets.GetObjectTarget());
@@ -7398,6 +7398,7 @@ namespace Game.Spells
public bool IsTriggered() { return _triggeredCastFlags.HasAnyFlag(TriggerCastFlags.FullMask); }
public bool IsTriggeredByAura(SpellInfo auraSpellInfo) { return (auraSpellInfo == m_triggeredByAuraSpell); }
public bool IsIgnoringCooldowns() { return _triggeredCastFlags.HasAnyFlag(TriggerCastFlags.IgnoreSpellAndCategoryCD); }
public bool IsFocusDisabled() { return _triggeredCastFlags.HasFlag(TriggerCastFlags.IgnoreSetFacing) || (m_spellInfo.IsChanneled() && !m_spellInfo.HasAttribute(SpellAttr1.ChannelTrackTarget)); }
public bool IsProcDisabled() { return _triggeredCastFlags.HasAnyFlag(TriggerCastFlags.DisallowProcEvents); }
public bool IsChannelActive() { return m_caster.GetChannelSpellId() != 0; }