From b51bac2abe5c1c38c37c32e5b531db7998c0b11a Mon Sep 17 00:00:00 2001 From: lishuo Date: Fri, 10 Feb 2023 09:43:04 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=B9=E6=88=98=E6=88=BF=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App.config | 14 ++++++++++---- Model/RoomModel.cs | 5 ++++- Unility/ConfigHelp.cs | 9 +++++++++ ViewModels/MainWindowViewModel.cs | 14 +++++++++----- 4 files changed, 32 insertions(+), 10 deletions(-) diff --git a/App.config b/App.config index 37e3262..9f64160 100644 --- a/App.config +++ b/App.config @@ -1,10 +1,16 @@  - + - - - + + + + + + + + + \ No newline at end of file diff --git a/Model/RoomModel.cs b/Model/RoomModel.cs index 4940f1e..ca6f3ba 100644 --- a/Model/RoomModel.cs +++ b/Model/RoomModel.cs @@ -10,7 +10,10 @@ namespace OnlineUserPool.Model public int RoomId { get; set; } public string Name { get; set; } public int UserId { get; set; }//房主 - public int Status { get; set; }//房间状态 0 :准备状态 1:开始loading 2:结束 + /// + /// 房间状态 0 :准备状态 1:开始loading 2:结束 + /// + public int Status { get; set; } public DateTime StatusChangedTime { get; set; } public DateTime CreateTime { get; set; }//创建时间 public DateTime? StartTime { get; set; }//开始时间 diff --git a/Unility/ConfigHelp.cs b/Unility/ConfigHelp.cs index e065fa3..bf99ff0 100644 --- a/Unility/ConfigHelp.cs +++ b/Unility/ConfigHelp.cs @@ -34,6 +34,15 @@ namespace OnlineUserPool.Unility UdpPort = int.Parse(System.Configuration.ConfigurationManager.AppSettings["Port"]); TcpPort = int.Parse(System.Configuration.ConfigurationManager.AppSettings["TcpPort"]); +#if DEBUG + Host = System.Configuration.ConfigurationManager.AppSettings["DevHost"]; + //Top = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["Top"]); + ShowVirtualUser = bool.Parse(System.Configuration.ConfigurationManager.AppSettings["DevShowVirtualUser"]); + //Ip = System.Configuration.ConfigurationManager.AppSettings["Ip"]; + UdpPort = int.Parse(System.Configuration.ConfigurationManager.AppSettings["DevPort"]); + + TcpPort = int.Parse(System.Configuration.ConfigurationManager.AppSettings["DevTcpPort"]); +#endif } } } diff --git a/ViewModels/MainWindowViewModel.cs b/ViewModels/MainWindowViewModel.cs index 76c311d..3d8d955 100644 --- a/ViewModels/MainWindowViewModel.cs +++ b/ViewModels/MainWindowViewModel.cs @@ -387,15 +387,19 @@ namespace OnlineUserPool.ViewModels private void HandleCreateGameRoom(ReceiveModel msg) { var createMsg = msg as CreateGameRoomCommand; - RemoveOtherRoomInfo(createMsg.UserId); + + RemoveOtherRoomInfo(createMsg.UserId, createMsg.Id); + + var roomId = RoomMaxId + 1; var list = new List(); list.Add(new RoomDetailModel() { + RoomId = roomId, UserId = createMsg.UserId, JoinAt = DateTime.Now.ToUniversalTime(), IsOwner = true, }); - var roomId = RoomMaxId + 1; + var room = new RoomModel { RoomId = roomId, @@ -427,9 +431,9 @@ namespace OnlineUserPool.ViewModels RoomMaxId = room.RoomId; } //先移除当前用户在其他房间的信息(考虑服务器重启的时候没有响应客户端退出命令) - private void RemoveOtherRoomInfo(int userId) + private void RemoveOtherRoomInfo(int userId, int roomId) { - var preRoom = RoomList.ToList().Where(c => c.Status == 0 && c.List.Where(c => c.UserId == userId).Any()).FirstOrDefault(); + var preRoom = RoomList.ToList().Where(c => c.Status == 0 && c.List.Where(c => c.UserId == userId).Any() && c.RoomId != roomId).FirstOrDefault(); if (preRoom != null) { var needRemove = preRoom.List.Where(c => c.UserId == userId).FirstOrDefault(); @@ -446,7 +450,7 @@ namespace OnlineUserPool.ViewModels private void HandleJoinGameRoom(ReceiveModel msg) { var msg1 = msg as JoinGameRoomCommand; - RemoveOtherRoomInfo(msg1.UserId); + RemoveOtherRoomInfo(msg1.UserId,msg1.RoomId); var room = RoomList.ToList().Where(c => c.RoomId == msg1.RoomId).FirstOrDefault(); var client = Clients.FirstOrDefault(n => n.MemberId.Equals(msg1.UserId)); //更新房间信息