Beispiel #1
0
        public static AccessLevelMod GetMod(PlayerMobile from)
        {
            AccessLevelMod mod = null;

            m_Mobiles.TryGetValue(from, out mod);

            return(mod);
        }
Beispiel #2
0
        public static AccessLevel GetRawAccessLevel(PlayerMobile from)
        {
            AccessLevelMod mod = null;

            m_Mobiles.TryGetValue(from, out mod);

            if (mod != null)
            {
                return(mod.Level);
            }
            else
            {
                return(from.AccessLevel);
            }
        }
Beispiel #3
0
        public static void Staff_OnCommand(CommandEventArgs e)
        {
            if (!(e.Mobile is PlayerMobile))
            {
                return;
            }
            PlayerMobile from = (PlayerMobile)e.Mobile;

            AccessLevelMod mod = GetMod(from);

            if (mod != null)
            {
                if (e.Length == 0)
                {
                    from.AccessLevel = mod.Level;
                    m_Mobiles.Remove(from);
                    from.SetCustomFlag(CustomPlayerFlag.StaffLevel, false);
                }
                else
                {
                    AccessLevel level;
                    if (!ArgumentToAccessLevel(e.Arguments[0], out level))
                    {
                        from.SendMessage("Invalid AccessLevel: " + e.Arguments[0]);
                    }
                    else
                    {
                        if (mod.Level < level)
                        {
                            from.SendMessage("Invalid AccessLevel: " + e.Arguments[0]);
                        }
                        else
                        {
                            if (mod.Level == level)
                            {
                                m_Mobiles.Remove(from);
                                from.SetCustomFlag(CustomPlayerFlag.StaffLevel, false);
                            }
                            from.AccessLevel = level;
                        }
                    }
                }
            }
            else if (from.AccessLevel == AccessLevel.Player)
            {
                from.Say(e.ArgString);
            }
            else
            {
                if (e.Length == 0)
                {
                    m_Mobiles.Add(from, new AccessLevelMod(from.AccessLevel));
                    from.SetCustomFlag(CustomPlayerFlag.StaffLevel, true);
                    from.AccessLevel = AccessLevel.Player;
                }
                else
                {
                    AccessLevel level;
                    if (!ArgumentToAccessLevel(e.Arguments[0], out level))
                    {
                        from.SendMessage("Invalid AccessLevel: " + e.Arguments[0]);
                    }
                    else
                    {
                        if (from.AccessLevel <= level)
                        {
                            from.SendMessage("Invalid AccessLevel: " + e.Arguments[0]);
                        }
                        else
                        {
                            m_Mobiles.Add(from, new AccessLevelMod(from.AccessLevel));
                            from.SetCustomFlag(CustomPlayerFlag.StaffLevel, true);
                            from.AccessLevel = level;
                        }
                    }
                }
            }
        }