Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
 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())
         });
     }
 }
Exemplo n.º 3
0
        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;
        }
Exemplo n.º 4
0
        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);
            }
        }
Exemplo n.º 5
0
        public DungeonPortal(DungeonID dungeon)
            : base(0x4B8F)
        {
            ID     = dungeon;
            Active = true;

            Movable = false;
        }
Exemplo n.º 6
0
 public void SetLockout(DungeonID id, TimeSpan t)
 {
     if (t > TimeSpan.Zero)
     {
         Entries[id] = DateTime.UtcNow + t;
     }
     else
     {
         Entries.Remove(id);
     }
 }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
        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);
        }
Exemplo n.º 9
0
 public bool IsLockedOut(DungeonID id, out TimeSpan t)
 {
     return((t = GetLockout(id)) > TimeSpan.Zero);
 }
Exemplo n.º 10
0
 public bool IsLockedOut(DungeonID id)
 {
     return(GetLockout(id) > TimeSpan.Zero);
 }
Exemplo n.º 11
0
 public void ClearLockout(DungeonID id)
 {
     SetLockout(id, TimeSpan.Zero);
 }