From 4473d6b4771678a01254373fd4bc9ed7159539d4 Mon Sep 17 00:00:00 2001 From: Mili Date: Wed, 5 Apr 2023 00:40:51 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=80=80=E5=87=BA?= =?UTF-8?q?=E6=88=BF=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FunGame.Server/Model/ServerModel.cs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/FunGame.Server/Model/ServerModel.cs b/FunGame.Server/Model/ServerModel.cs index ec366aa..db9fa8d 100644 --- a/FunGame.Server/Model/ServerModel.cs +++ b/FunGame.Server/Model/ServerModel.cs @@ -327,7 +327,17 @@ namespace Milimoe.FunGame.Server.Model break; case SocketMessageType.QuitRoom: - break; + if (args != null) + { + string? roomid = ""; + if (args.Length > 0) roomid = SocketObject.GetParam(0); + if (roomid != null && roomid.Trim() != "") + { + RoomID = "-1"; + return Send(socket, type, true); + } + } + return Send(socket, type, false); case SocketMessageType.ChangeRoomSetting: break; From aafe4f006aa668b1bbe067bff4d98ec1d82ae06d Mon Sep 17 00:00:00 2001 From: Mili Date: Wed, 5 Apr 2023 22:07:34 +0800 Subject: [PATCH 2/3] Add CreateRoom --- FunGame.Server/Model/ServerModel.cs | 32 ++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/FunGame.Server/Model/ServerModel.cs b/FunGame.Server/Model/ServerModel.cs index db9fa8d..0be7d24 100644 --- a/FunGame.Server/Model/ServerModel.cs +++ b/FunGame.Server/Model/ServerModel.cs @@ -209,14 +209,14 @@ namespace Milimoe.FunGame.Server.Model if (username != null && email != null) { // 先检查账号是否重复 - SQLHelper.ExecuteDataSet(UserQuery.Select_DuplicateUsername(username), out SQLResult result); + SQLHelper.ExecuteDataSet(UserQuery.Select_IsExistUsername(username), out SQLResult result); if (result == SQLResult.Success) { ServerHelper.WriteLine(SocketHelper.MakeClientName(ClientName, User) + " 账号已被注册"); return Send(socket, type, RegInvokeType.DuplicateUserName); } // 检查邮箱是否重复 - SQLHelper.ExecuteDataSet(UserQuery.Select_DuplicateEmail(email), out result); + SQLHelper.ExecuteDataSet(UserQuery.Select_IsExistEmail(email), out result); if (result == SQLResult.Success) { ServerHelper.WriteLine(SocketHelper.MakeClientName(ClientName, User) + " 邮箱已被注册"); @@ -324,6 +324,32 @@ namespace Milimoe.FunGame.Server.Model return Send(socket, type, Config.RoomList.GetRoomIDList()); case SocketMessageType.CreateRoom: + msg = "-1"; + if (args != null) + { + string? roomtype_string = ""; + long userid = 0; + string? password = ""; + if (args.Length > 0) roomtype_string = SocketObject.GetParam(0); + if (args.Length > 1) userid = SocketObject.GetParam(1); + if (args.Length > 2) password = SocketObject.GetParam(2); + if (!string.IsNullOrWhiteSpace(roomtype_string) && userid != 0) + { + RoomType roomtype = roomtype_string switch + { + GameMode.GameMode_Team => RoomType.Team, + GameMode.GameMode_MixHasPass => RoomType.MixHasPass, + GameMode.GameMode_TeamHasPass => RoomType.TeamHasPass, + _ => RoomType.Mix, + }; + string roomid = Verification.CreateVerifyCode(VerifyCodeType.MixVerifyCode, 7).ToUpper(); + SQLHelper.Execute(RoomQuery.Insert_CreateRoom(roomid, userid, roomtype, password ?? ""), out SQLResult result); + if (result == SQLResult.Success) + { + msg = roomid; + } + } + } break; case SocketMessageType.QuitRoom: @@ -498,7 +524,7 @@ namespace Milimoe.FunGame.Server.Model { // 每两小时触发一次SQL服务器的心跳查询,防止SQL服务器掉线 Thread.Sleep(2 * 1000 * 3600); - SQLHelper.ExecuteDataSet(UserQuery.Select_DuplicateUsername(UserName), out _); + SQLHelper.ExecuteDataSet(UserQuery.Select_IsExistUsername(UserName), out _); } } From fdc1de82e91c34a2690efccc7156a51b575fd4de Mon Sep 17 00:00:00 2001 From: Mili Date: Wed, 5 Apr 2023 22:30:09 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E5=90=91=E6=88=BF=E9=97=B4=E5=86=85?= =?UTF-8?q?=E6=89=80=E6=9C=89=E4=BA=BA=E5=8F=91=E9=80=81=E8=BF=9B=E5=87=BA?= =?UTF-8?q?=E9=80=9A=E7=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FunGame.Server/Model/ServerModel.cs | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/FunGame.Server/Model/ServerModel.cs b/FunGame.Server/Model/ServerModel.cs index 0be7d24..44a5744 100644 --- a/FunGame.Server/Model/ServerModel.cs +++ b/FunGame.Server/Model/ServerModel.cs @@ -183,6 +183,20 @@ namespace Milimoe.FunGame.Server.Model msg = "-1"; if (args != null && args.Length > 0) msg = SocketObject.GetParam(0)!; RoomID = msg; + if (RoomID != "-1") + { + // 昭告天下 + foreach (ServerModel Client in Server.GetUsersList.Cast()) + { + if (RoomID == Client.RoomID) + { + if (Client != null && User != null) + { + Client.Send(Client.Socket!, SocketMessageType.Chat, User.Username, DateTimeUtility.GetNowShortTime() + " [ " + User.Username + " ] 进入了房间。"); + } + } + } + } break; case SocketMessageType.Chat: @@ -359,6 +373,17 @@ namespace Milimoe.FunGame.Server.Model if (args.Length > 0) roomid = SocketObject.GetParam(0); if (roomid != null && roomid.Trim() != "") { + // 昭告天下 + foreach (ServerModel Client in Server.GetUsersList.Cast()) + { + if (RoomID == Client.RoomID) + { + if (Client != null && User != null) + { + Client.Send(Client.Socket!, SocketMessageType.Chat, User.Username, DateTimeUtility.GetNowShortTime() + " [ " + User.Username + " ] 离开了房间。"); + } + } + } RoomID = "-1"; return Send(socket, type, true); }