Core/Instances: Instance lock rewrite (WIP)

Port From (https://github.com/TrinityCore/TrinityCore/commit/17665c929c3a9fb7fe75dd680648129bc1c1f874)
This commit is contained in:
hondacrx
2022-10-04 10:00:07 -04:00
parent d21624fd87
commit d3dde761a2
27 changed files with 907 additions and 431 deletions
+13 -2
View File
@@ -1628,9 +1628,20 @@ namespace Framework.Constants
Scenario = 5
}
public enum MapDifficultyFlags : byte
public enum MapDifficultyFlags : int
{
CannotExtend = 0x10
LimitToPlayersFromOneRealm = 0x01,
UseLootBasedLockInsteadOfInstanceLock = 0x02, // Lock to single encounters
LockedToSoloOwner = 0x04,
ResumeDungeonProgressBasedOnLockout = 0x08, // Mythic dungeons with this flag zone into leaders instance instead of always using a fresh one (Return to Karazhan, Operation: Mechagon)
DisableLockExtension = 0x10,
}
public enum MapDifficultyResetInterval : byte
{
Anytime = 0,
Daily = 1,
Weekly = 2
}
public enum AreaMountFlags
+3
View File
@@ -71,6 +71,8 @@ namespace Framework.Constants
public const string VMapMagic = "VMAP_4.B";
public const float VMAPInvalidHeightValue = -200000.0f;
public const uint MaxDungeonEncountersPerBoss = 4;
}
public enum NewWorldReason
@@ -182,6 +184,7 @@ namespace Framework.Constants
CannotEnterNotInRaid, // Target Instance Is A Raid Instance And The Player Is Not In A Raid Group
CannotEnterCorpseInDifferentInstance, // Player Is Dead And Their Corpse Is Not In Target Instance
CannotEnterInstanceBindMismatch, // Player'S Permanent Instance Save Is Not Compatible With Their Group'S Current Instance Bind
CannotEnterAlreadyCompletedEncounter, // Player is locked to encounter that wasn't defeated in the instance yet
CannotEnterTooManyInstances, // Player Has Entered Too Many Instances Recently
CannotEnterMaxPlayers, // Target Map Already Has The Maximum Number Of Players Allowed
CannotEnterZoneInCombat, // A Boss Encounter Is Currently In Progress On The Target Map
+2 -3
View File
@@ -943,9 +943,8 @@ namespace Framework.Constants
public enum MapFlags
{
CanToggleDifficulty = 0x0100,
FlexLocking = 0x8000, // All difficulties share completed encounters lock, not bound to a single instance id
// heroic difficulty flag overrides it and uses instance id bind
CanToggleDifficulty = 0x100,
FlexLocking = 0x8000,
Garrison = 0x4000000
}
+1 -1
View File
@@ -324,7 +324,7 @@ namespace Framework.Database
}
}
public void EscapeString(ref string str)
public static void EscapeString(ref string str)
{
str = MySqlHelper.EscapeString(str);
}
+1
View File
@@ -417,6 +417,7 @@ public enum LogFilter
Garrison,
Gameevent,
Guild,
Instance,
Lfg,
Loot,
MapsScript,