Core/Disables: Added DISABLE_TYPE_PHASE_AREA
Port From (https://github.com/TrinityCore/TrinityCore/commit/3aae692ec33fc1e66453442bf19a10983804c18b)
This commit is contained in:
@@ -229,6 +229,17 @@ namespace Game
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case DisableType.PhaseArea:
|
||||||
|
{
|
||||||
|
if (!CliDB.PhaseStorage.HasRecord(entry))
|
||||||
|
{
|
||||||
|
Log.outError(LogFilter.Sql, $"Phase entry {entry} from `disables` doesn't exist in dbc, skipped.");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (flags != 0)
|
||||||
|
Log.outError(LogFilter.Sql, $"Disable flags specified for phase {entry}, useless data.");
|
||||||
|
break;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -371,6 +382,7 @@ namespace Game
|
|||||||
case DisableType.OutdoorPVP:
|
case DisableType.OutdoorPVP:
|
||||||
case DisableType.Criteria:
|
case DisableType.Criteria:
|
||||||
case DisableType.MMAP:
|
case DisableType.MMAP:
|
||||||
|
case DisableType.PhaseArea:
|
||||||
return true;
|
return true;
|
||||||
case DisableType.VMAP:
|
case DisableType.VMAP:
|
||||||
return flags.HasAnyFlag((DisableFlags)data.flags);
|
return flags.HasAnyFlag((DisableFlags)data.flags);
|
||||||
@@ -401,7 +413,8 @@ namespace Game
|
|||||||
VMAP = 6,
|
VMAP = 6,
|
||||||
MMAP = 7,
|
MMAP = 7,
|
||||||
LFGMap = 8,
|
LFGMap = 8,
|
||||||
Max = 9
|
PhaseArea = 9,
|
||||||
|
Max
|
||||||
}
|
}
|
||||||
|
|
||||||
[Flags]
|
[Flags]
|
||||||
|
|||||||
@@ -280,6 +280,9 @@ namespace Game
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
uint phaseId = phaseArea.PhaseInfo.Id;
|
uint phaseId = phaseArea.PhaseInfo.Id;
|
||||||
|
if (Global.DisableMgr.IsDisabledFor(DisableType.PhaseArea, phaseId, obj))
|
||||||
|
continue;
|
||||||
|
|
||||||
if (Global.ConditionMgr.IsObjectMeetToConditions(srcInfo, phaseArea.Conditions))
|
if (Global.ConditionMgr.IsObjectMeetToConditions(srcInfo, phaseArea.Conditions))
|
||||||
phaseShift.AddPhase(phaseId, GetPhaseFlags(phaseId), phaseArea.Conditions);
|
phaseShift.AddPhase(phaseId, GetPhaseFlags(phaseId), phaseArea.Conditions);
|
||||||
else
|
else
|
||||||
@@ -348,7 +351,7 @@ namespace Game
|
|||||||
|
|
||||||
foreach (var pair in suppressedPhaseShift.Phases.ToList())
|
foreach (var pair in suppressedPhaseShift.Phases.ToList())
|
||||||
{
|
{
|
||||||
if (Global.ConditionMgr.IsObjectMeetToConditions(srcInfo, pair.Value.AreaConditions))
|
if (!Global.DisableMgr.IsDisabledFor(DisableType.PhaseArea, pair.Key, obj) && Global.ConditionMgr.IsObjectMeetToConditions(srcInfo, pair.Value.AreaConditions))
|
||||||
{
|
{
|
||||||
changed = phaseShift.AddPhase(pair.Key, pair.Value.Flags, pair.Value.AreaConditions, pair.Value.References) || changed;
|
changed = phaseShift.AddPhase(pair.Key, pair.Value.Flags, pair.Value.AreaConditions, pair.Value.References) || changed;
|
||||||
suppressedPhaseShift.ModifyPhasesReferences(pair.Key, pair.Value, -pair.Value.References);
|
suppressedPhaseShift.ModifyPhasesReferences(pair.Key, pair.Value, -pair.Value.References);
|
||||||
@@ -592,6 +595,8 @@ namespace Game
|
|||||||
phases.Append($" ({cosmetic})");
|
phases.Append($" ({cosmetic})");
|
||||||
if (pair.Value.Flags.HasFlag(PhaseFlags.Personal))
|
if (pair.Value.Flags.HasFlag(PhaseFlags.Personal))
|
||||||
phases.Append($" ({personal})");
|
phases.Append($" ({personal})");
|
||||||
|
if (Global.DisableMgr.IsDisabledFor(DisableType.PhaseArea, pair.Key, null))
|
||||||
|
phases.Append(" (Disabled)");
|
||||||
}
|
}
|
||||||
|
|
||||||
chat.SendSysMessage(CypherStrings.PhaseshiftPhases, phases.ToString());
|
chat.SendSysMessage(CypherStrings.PhaseshiftPhases, phases.ToString());
|
||||||
|
|||||||
Reference in New Issue
Block a user