Core/Auras: Implemented new spell_area flag to allow skipping applying aura automatically when quest status changes
This commit is contained in:
@@ -2447,6 +2447,7 @@ namespace Framework.Constants
|
||||
public enum SpellAreaFlag
|
||||
{
|
||||
AutoCast = 0x1, // if has autocast, spell is applied on enter
|
||||
AutoRemove = 0x2, // if has autoremove, spell is remove automatically inside zone/area (allways removed on leaving area or zone)
|
||||
AutoRemove = 0x2, // if has autoremove, spell is remove automatically inside zone/area (always removed on leaving area or zone)
|
||||
IgnoreAutocastOnQuestStatusChange = 0x4, // if this flag is set then spell will not be applied automatically on quest status change
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1809,7 +1809,7 @@ namespace Game.Entities
|
||||
{
|
||||
if (spell.flags.HasAnyFlag(SpellAreaFlag.AutoRemove) && !spell.IsFitToRequirements(this, zone, area))
|
||||
RemoveAurasDueToSpell(spell.spellId);
|
||||
else if (spell.flags.HasAnyFlag(SpellAreaFlag.AutoCast))
|
||||
else if (spell.flags.HasAnyFlag(SpellAreaFlag.AutoCast) && !spell.flags.HasAnyFlag(SpellAreaFlag.IgnoreAutocastOnQuestStatusChange))
|
||||
if (!HasAura(spell.spellId))
|
||||
CastSpell(this, spell.spellId, true);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user