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)]); }
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); }