Пример #1
0
        /// <summary> Returns all online players that the given player can see, ordered by rank </summary>
        public static List <OnlineListEntry> GetOnlineList(Player p, LevelPermission plRank, out int total)
        {
            List <OnlineListEntry> all = new List <OnlineListEntry>();

            total = 0;

            foreach (Group group in Group.GroupList)
            {
                OnlineListEntry e = OnlineOfRank(p, plRank, group);
                total += e.players.Count;
                all.Add(e);
            }

            // Highest ranks first
            all.Reverse();
            return(all);
        }
Пример #2
0
        static OnlineListEntry OnlineOfRank(Player p, LevelPermission plRank, Group group)
        {
            OnlineListEntry entry = new OnlineListEntry();

            entry.group   = group;
            entry.players = new List <Player>();

            Player[] online = PlayerInfo.Online.Items;
            foreach (Player pl in online)
            {
                if (pl.group != group || !p.CanSee(pl, plRank))
                {
                    continue;
                }
                entry.players.Add(pl);
            }
            return(entry);
        }