public static bool IsLockedOut(PlayerMobile pm, DungeonID id, out TimeSpan t) { t = TimeSpan.Zero; if (pm == null || pm.Deleted || id == DungeonID.None) { return(false); } var s = false; var state = Lockouts.GetValue(pm); if (state != null) { s = state.IsLockedOut(id, out t); if (state.IsEmpty) { Lockouts.Remove(pm); } } return(s); }
public void Save() { using (DatabaseConnection dbConnection = new DatabaseConnection(DatabaseID.Players)) { dbConnection.Database.UpdateOrInsert("script_extras_general", new IDataColumn[] { dbConnection.Database.CreateColumn(true, "CharID", Client.Player.CharID), dbConnection.Database.CreateColumn(false, "SpawnMap", SpawnMap), dbConnection.Database.CreateColumn(false, "SpawnX", SpawnX.ToString()), dbConnection.Database.CreateColumn(false, "SpawnY", SpawnY.ToString()), dbConnection.Database.CreateColumn(false, "DungeonID", DungeonID.ToString()), dbConnection.Database.CreateColumn(false, "DungeonX", DungeonX.ToString()), dbConnection.Database.CreateColumn(false, "DungeonY", DungeonY.ToString()), //dbConnection.Database.CreateColumn(false, "TurnsTaken", TurnsTaken.ToString()), dbConnection.Database.CreateColumn(false, "EvolutionActive", EvolutionActive.ToIntString()), dbConnection.Database.CreateColumn(false, "Permamuted", PermaMuted.ToIntString()), dbConnection.Database.CreateColumn(false, "HousingCenterMap", HousingCenterMap), dbConnection.Database.CreateColumn(false, "HousingCenterX", HousingCenterX.ToString()), dbConnection.Database.CreateColumn(false, "HousingCenterY", HousingCenterY.ToString()), dbConnection.Database.CreateColumn(false, "DungeonMaxX", DungeonMaxX.ToString()), dbConnection.Database.CreateColumn(false, "DungeonMaxY", DungeonMaxY.ToString()), dbConnection.Database.CreateColumn(false, "DungeonSeed", DungeonSeed.ToString()), dbConnection.Database.CreateColumn(false, "PlazaEntranceMap", PlazaEntranceMap), dbConnection.Database.CreateColumn(false, "PlazaEntranceX", PlazaEntranceX.ToString()), dbConnection.Database.CreateColumn(false, "PlazaEntranceY", PlazaEntranceY.ToString()) }); } }
public DungeonInfo( Type type, DungeonID id, Map mapParent, Point3D entrance, Point3D exit, TimeSpan duration, TimeSpan lockout, int groupSize, string name, string desc, Expansion expansion) { Type = type; ID = id; MapParent = mapParent; Entrance = entrance; Exit = exit; GroupMax = groupSize; Duration = duration; Lockout = lockout; Name = name; Desc = desc; Expansion = expansion; }
public static void SetLockout(PlayerMobile pm, DungeonID id, TimeSpan t) { if (pm == null || pm.Deleted || id == DungeonID.None) { return; } var state = Lockouts.GetValue(pm); if (state == null) { if (t <= TimeSpan.Zero) { return; } Lockouts[pm] = state = new LockoutState(pm); } state.SetLockout(id, t); if (state.IsEmpty) { Lockouts.Remove(pm); } }
public DungeonPortal(DungeonID dungeon) : base(0x4B8F) { ID = dungeon; Active = true; Movable = false; }
public void SetLockout(DungeonID id, TimeSpan t) { if (t > TimeSpan.Zero) { Entries[id] = DateTime.UtcNow + t; } else { Entries.Remove(id); } }
public TimeSpan GetLockout(DungeonID id) { var t = TimeSpan.Zero; DateTime d; if (Entries.TryGetValue(id, out d)) { var n = DateTime.UtcNow; if (d > n) { t = d - n; } else { Entries.Remove(id); } } return(t); }
public static TimeSpan GetLockout(PlayerMobile pm, DungeonID id) { if (pm == null || pm.Deleted || id == DungeonID.None) { return(TimeSpan.Zero); } var t = TimeSpan.Zero; var state = Lockouts.GetValue(pm); if (state != null) { t = state.GetLockout(id); if (state.IsEmpty) { Lockouts.Remove(pm); } } return(t); }
public bool IsLockedOut(DungeonID id, out TimeSpan t) { return((t = GetLockout(id)) > TimeSpan.Zero); }
public bool IsLockedOut(DungeonID id) { return(GetLockout(id) > TimeSpan.Zero); }
public void ClearLockout(DungeonID id) { SetLockout(id, TimeSpan.Zero); }