示例#1
0
        public static int GetMapIndex(int index, byte type, int serverId)
        {
            if (index != 0 && !MapMgr._maps.Keys.Contains(index))
            {
                index = 0;
            }
            if (index != 0)
            {
                return(index);
            }
            List <int> list = new List <int>();

            foreach (int current in MapMgr._serverMap[serverId])
            {
                MapInfo mapInfo = MapMgr.FindMapInfo(current);
                if ((type & mapInfo.Type) != 0)
                {
                    list.Add(current);
                }
            }
            if (list.Count == 0)
            {
                int count = MapMgr._serverMap[serverId].Count;
                return(MapMgr._serverMap[serverId][MapMgr.random.Next(count)]);
            }
            int count2 = list.Count;

            return(list[MapMgr.random.Next(count2)]);
        }
示例#2
0
        public static int GetMapIndex(int index, byte type, int serverId)
        {
            if (index != 0 && !MapMgr._maps.Keys.Contains(index))
            {
                index = 0;
            }
            int result;

            if (index == 0)
            {
                List <int> tempIndex = new List <int>();
                foreach (int id in MapMgr._serverMap[serverId])
                {
                    MapInfo tempInfo = MapMgr.FindMapInfo(id);
                    if ((type & tempInfo.Type) != 0)
                    {
                        tempIndex.Add(id);
                    }
                }
                if (tempIndex.Count == 0)
                {
                    int count = MapMgr._serverMap[serverId].Count;
                    result = MapMgr._serverMap[serverId][MapMgr.random.Next(count)];
                }
                else
                {
                    int count = tempIndex.Count;
                    result = tempIndex[MapMgr.random.Next(count)];
                }
            }
            else
            {
                result = index;
            }
            return(result);
        }