Core/Spells: Implemented SPELL_ATTR6_NO_PUSHBACK

Port From (https://github.com/TrinityCore/TrinityCore/commit/50eff8c23828e4aa8dcce6c5f3ffdfa4e0cf7baa)
This commit is contained in:
hondacrx
2022-06-01 16:11:32 -04:00
parent 5d06fd77be
commit d07b57f930
2 changed files with 9 additions and 10 deletions
@@ -1807,7 +1807,7 @@ namespace Framework.Constants
AllowWhileRidingVehicle = 0x1000, // Allow While Riding Vehicle
IgnorePhaseShift = 0x2000, // Ignore Phase Shift
AiPrimaryRangedAttack = 0x4000, /*Nyi*/ // Ai Primary Ranged Attack
NoPushback = 0x8000, /*Nyi*/ // No Pushback
NoPushback = 0x8000, // No Pushback
NoJumpPathing = 0x10000, /*Nyi*/ // No Jump Pathing
AllowEquipWhileCasting = 0x20000, // Allow Equip While Casting
OriginateFromController = 0x40000, // Originate From Controller Description Client Will Prevent Casting If Not Possessed, Charmer Will Be Caster For All Intents And Purposes
+8 -9
View File
@@ -2682,7 +2682,7 @@ namespace Game.Entities
if (damagetype != DamageEffectType.NoDamage && damagetype != DamageEffectType.DOT)
{
if (victim != attacker && (spellProto == null || !(spellProto.HasAttribute(SpellAttr7.NoPushbackOnDamage) || spellProto.HasAttribute(SpellAttr3.TreatAsPeriodic))))
if (victim != attacker && (spellProto == null || !(spellProto.HasAttribute(SpellAttr6.NoPushback) || spellProto.HasAttribute(SpellAttr7.NoPushbackOnDamage) || spellProto.HasAttribute(SpellAttr3.TreatAsPeriodic))))
{
Spell spell = victim.GetCurrentSpell(CurrentSpellTypes.Generic);
if (spell != null)
@@ -2723,15 +2723,14 @@ namespace Game.Entities
spell.Delayed();
}
}
}
if (damage != 0 && victim.IsPlayer())
{
Spell spell1 = victim.GetCurrentSpell(CurrentSpellTypes.Channeled);
if (spell1 != null)
if (spell1.GetState() == SpellState.Casting && spell1.m_spellInfo.HasChannelInterruptFlag(SpellAuraInterruptFlags.DamageChannelDuration))
spell1.DelayedChannel();
}
if (damage != 0 && victim.IsPlayer())
{
Spell spell1 = victim.GetCurrentSpell(CurrentSpellTypes.Channeled);
if (spell1 != null)
if (spell1.GetState() == SpellState.Casting && spell1.m_spellInfo.HasChannelInterruptFlag(SpellAuraInterruptFlags.DamageChannelDuration))
spell1.DelayedChannel();
}
}