public static List <int> GetRoomServerAllRoomId(MatchServerConfig config, int roomServerId) { if (config == null || config.RoomServers.Length == 0) { return(null); } var index = -1; for (int i = 0; i < config.RoomServers.Length; i++) { if (config.RoomServers[i] == roomServerId) { index = i; break; } } if (index == -1) { return(null); } var allRooms = new List <int>(); for (int i = 0; i < config.RoomCount; i++) { var roomId = i + 1; var serverId = GetRoomServerId(config, roomId); if (serverId == roomServerId) { allRooms.Add(roomId); } } return(allRooms); }
private bool InitRoom() { var config = ConfigService.MatchConfig.Value; _matchServerConfig = config.GetMatchServerConfigByRoomServerId(Host.ServerId, out int areaId); if (_matchServerConfig == null) { Logger.LogError($"[Room][Init Room][Failed][Match Server Config Is Invalid [{Host.ServerId}]]"); return(false); } _areaId = areaId; var allRoomIds = GetRoomServerAllRoomId(_matchServerConfig, Host.ServerId); if (allRoomIds == null) { Logger.LogError($"[Room][Init Room][Failed][Empty Room Id List [{Host.ServerId}]]"); return(false); } // 初始化所有房间 foreach (var roomId in allRoomIds) { var room = new Room(roomId); _roomMap.Add(roomId, room); } Logger.LogDebug($"[Room][Init Room][Success][Server[{Host.ServerId}] RoomCount[{_roomMap.Count}]]"); return(true); }
public static int GetRoomServerId(MatchServerConfig config, int roomId) { if (config == null || config.RoomServers.Length == 0) { return(0); } int index = (roomId - 1) % config.RoomServers.Length; int roomServerId = config.RoomServers[index]; return(roomServerId); }