Core/Player: Add helper function to determine if war mode can be enabled in area

Port From (https://github.com/TrinityCore/TrinityCore/commit/626c8f5de12daac6b88989807eba65d3d7a061dd)
This commit is contained in:
hondacrx
2021-06-07 11:06:13 -04:00
parent db0d46c9d1
commit 9c58042e07
10 changed files with 58 additions and 23 deletions
+1 -1
View File
@@ -5460,7 +5460,7 @@ namespace Game.Spells
BattleField Bf = Global.BattleFieldMgr.GetBattlefieldToZoneId(m_originalCaster.GetZoneId());
var area = CliDB.AreaTableStorage.LookupByKey(m_originalCaster.GetAreaId());
if (area != null)
if (area.Flags[0].HasAnyFlag(AreaFlags.NoFlyZone) || (Bf != null && !Bf.CanFlyIn()))
if (area.Flags.HasFlag(AreaFlags.NoFlyZone) || (Bf != null && !Bf.CanFlyIn()))
return SpellCastResult.NotHere;
}
break;
+2 -2
View File
@@ -3268,14 +3268,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.Flags[0].HasAnyFlag(AreaFlags.AllowDuels))
if (casterAreaEntry != null && !casterAreaEntry.Flags.HasFlag(AreaFlags.AllowDuels))
{
SendCastResult(SpellCastResult.NoDueling); // Dueling isn't allowed here
return;
}
AreaTableRecord targetAreaEntry = CliDB.AreaTableStorage.LookupByKey(target.GetAreaId());
if (targetAreaEntry != null && !targetAreaEntry.Flags[0].HasAnyFlag(AreaFlags.AllowDuels))
if (targetAreaEntry != null && !targetAreaEntry.Flags.HasFlag(AreaFlags.AllowDuels))
{
SendCastResult(SpellCastResult.NoDueling); // Dueling isn't allowed here
return;