From ff6c0d6b2719aaab2f3f673885004f4def311f7f Mon Sep 17 00:00:00 2001 From: gsy1519 <614054460@qq.com> Date: Thu, 30 Mar 2023 18:09:17 +0800 Subject: [PATCH 1/2] fix: :bug: fix bugs of Playback and MessageToClient --- logic/Server/CopyInfo.cs | 4 ++-- logic/Server/GameServer.cs | 30 ++++++++---------------------- 2 files changed, 10 insertions(+), 24 deletions(-) diff --git a/logic/Server/CopyInfo.cs b/logic/Server/CopyInfo.cs index 4404046..c190748 100644 --- a/logic/Server/CopyInfo.cs +++ b/logic/Server/CopyInfo.cs @@ -241,10 +241,10 @@ namespace Server case Preparation.Utility.GameObjType.EmergencyExit: if (((EmergencyExit)gameObj).CanOpen) return HiddenGate((EmergencyExit)gameObj); - else return new MessageOfObj(); + else return null; case Preparation.Utility.GameObjType.Door: return Door((Door)gameObj); - default: return new MessageOfObj(); + default: return null; } } public static MessageOfObj? Auto(MessageOfNews news) diff --git a/logic/Server/GameServer.cs b/logic/Server/GameServer.cs index 2855356..2ba24e9 100644 --- a/logic/Server/GameServer.cs +++ b/logic/Server/GameServer.cs @@ -10,6 +10,7 @@ using Preparation.Utility; using Playback; using Newtonsoft.Json; using Newtonsoft.Json.Linq; +using Preparation.Interface; namespace Server @@ -118,7 +119,6 @@ namespace Server SendGameResult(); this.endGameSem.Release(); } - public void ReportGame(GameState gameState, bool requiredGaming = true) { var gameObjList = game.GetGameObj(); @@ -129,38 +129,24 @@ namespace Server { case GameState.GameRunning: case GameState.GameEnd: - foreach (GameObj gameObj in gameObjList) - { - currentGameInfo.ObjMessage.Add(CopyInfo.Auto(gameObj)); - } - lock (newsLock) - { - foreach (var news in currentNews) - { - currentGameInfo.ObjMessage.Add(CopyInfo.Auto(news)); - } - currentNews.Clear(); - } - currentGameInfo.GameState = gameState; - currentGameInfo.AllMessage = GetMessageOfAll(); - mwr?.WriteOne(currentGameInfo); - break; case GameState.GameStart: currentGameInfo.ObjMessage.Add(currentMapMsg); foreach (GameObj gameObj in gameObjList) { - currentGameInfo.ObjMessage.Add(CopyInfo.Auto(gameObj)); + MessageOfObj? msg = CopyInfo.Auto(gameObj); + if (msg != null) currentGameInfo.ObjMessage.Add(CopyInfo.Auto(gameObj)); } lock (newsLock) { foreach (var news in currentNews) { - currentGameInfo.ObjMessage.Add(CopyInfo.Auto(news)); + MessageOfObj? msg = CopyInfo.Auto(news); + if (msg != null) currentGameInfo.ObjMessage.Add(CopyInfo.Auto(news)); } currentNews.Clear(); } currentGameInfo.GameState = gameState; - currentGameInfo.AllMessage = GetMessageOfAll(); // 还没写 + currentGameInfo.AllMessage = GetMessageOfAll(); mwr?.WriteOne(currentGameInfo); break; default: @@ -230,8 +216,8 @@ namespace Server { game.GameMap.GameObjLockDict[GameObjType.Character].ExitReadLock(); } - //msg.GateOpened = - //msg.HiddenGateRefreshed = + //msg.GateOpened + //msg.HiddenGateRefreshed //msg.HiddenGateOpened return msg; } From 9bb265b6d7d57c278d93bfb5fceda58183fd5b44 Mon Sep 17 00:00:00 2001 From: gsy1519 <614054460@qq.com> Date: Thu, 30 Mar 2023 18:19:19 +0800 Subject: [PATCH 2/2] fix: :bug: fix problem of calling AllPlayerUsePassiveSkill --- logic/Server/GameServer.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/logic/Server/GameServer.cs b/logic/Server/GameServer.cs index 2ba24e9..2850612 100644 --- a/logic/Server/GameServer.cs +++ b/logic/Server/GameServer.cs @@ -57,6 +57,7 @@ namespace Server if (flag == true) { ReportGame(GameState.GameStart); + game.AllPlayerUsePassiveSkill(); flag = false; } else ReportGame(GameState.GameRunning);