Core/Areas: Update AreaFlags

Port From (https://github.com/TrinityCore/TrinityCore/commit/f8f1c3b4f0ca631e76101f8492b9688c6d2dca01)
This commit is contained in:
hondacrx
2023-05-23 08:07:33 -04:00
parent 55148a9ca4
commit ef250e0400
13 changed files with 95 additions and 95 deletions
+3 -5
View File
@@ -5717,11 +5717,9 @@ namespace Game.Spells
// allow always ghost flight spells
if (m_originalCaster != null && m_originalCaster.IsTypeId(TypeId.Player) && m_originalCaster.IsAlive())
{
BattleField Bf = Global.BattleFieldMgr.GetBattlefieldToZoneId(m_originalCaster.GetMap(), m_originalCaster.GetZoneId());
var area = CliDB.AreaTableStorage.LookupByKey(m_originalCaster.GetAreaId());
if (area != null)
if (area.HasFlag(AreaFlags.NoFlyZone) || (Bf != null && !Bf.CanFlyIn()))
return SpellCastResult.NotHere;
BattleField battleField = Global.BattleFieldMgr.GetBattlefieldToZoneId(m_originalCaster.GetMap(), m_originalCaster.GetZoneId());
if (battleField != null && !battleField.CanFlyIn())
return SpellCastResult.NotHere;
}
break;
}
+2 -2
View File
@@ -2827,14 +2827,14 @@ namespace Game.Spells
// Players can only fight a duel in zones with this flag
AreaTableRecord casterAreaEntry = CliDB.AreaTableStorage.LookupByKey(caster.GetAreaId());
if (casterAreaEntry != null && !casterAreaEntry.HasFlag(AreaFlags.AllowDuels))
if (casterAreaEntry != null && !casterAreaEntry.GetFlags().HasFlag(AreaFlags.AllowDueling))
{
SendCastResult(SpellCastResult.NoDueling); // Dueling isn't allowed here
return;
}
AreaTableRecord targetAreaEntry = CliDB.AreaTableStorage.LookupByKey(target.GetAreaId());
if (targetAreaEntry != null && !targetAreaEntry.HasFlag(AreaFlags.AllowDuels))
if (targetAreaEntry != null && !targetAreaEntry.GetFlags().HasFlag(AreaFlags.AllowDueling))
{
SendCastResult(SpellCastResult.NoDueling); // Dueling isn't allowed here
return;
+4 -4
View File
@@ -842,19 +842,19 @@ namespace Game.Spells
// continent limitation (virtual continent)
if (HasAttribute(SpellAttr4.OnlyFlyingAreas))
{
uint mountFlags = 0;
AreaMountFlags mountFlags = 0;
if (player && player.HasAuraType(AuraType.MountRestrictions))
{
foreach (AuraEffect auraEffect in player.GetAuraEffectsByType(AuraType.MountRestrictions))
mountFlags |= (uint)auraEffect.GetMiscValue();
mountFlags |= (AreaMountFlags)auraEffect.GetMiscValue();
}
else
{
AreaTableRecord areaTable = CliDB.AreaTableStorage.LookupByKey(area_id);
if (areaTable != null)
mountFlags = areaTable.MountFlags;
mountFlags = areaTable.GetMountFlags();
}
if (!Convert.ToBoolean(mountFlags & (uint)AreaMountFlags.FlyingAllowed))
if (!mountFlags.HasFlag(AreaMountFlags.AllowFlyingMounts))
return SpellCastResult.IncorrectArea;
if (player)