Browse Source

Merge pull request #207 from gsy1519/dev

fix: fix bugs of Playback and MessageToClient and fix problem of calling AllPlayerUsePassiveSkill
tags/0.1.0
shangfengh GitHub 2 years ago
parent
commit
d4567acf9d
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 24 deletions
  1. +2
    -2
      logic/Server/CopyInfo.cs
  2. +9
    -22
      logic/Server/GameServer.cs

+ 2
- 2
logic/Server/CopyInfo.cs View File

@@ -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)


+ 9
- 22
logic/Server/GameServer.cs View File

@@ -10,6 +10,7 @@ using Preparation.Utility;
using Playback;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Preparation.Interface;


namespace Server
@@ -56,6 +57,7 @@ namespace Server
if (flag == true)
{
ReportGame(GameState.GameStart);
game.AllPlayerUsePassiveSkill();
flag = false;
}
else ReportGame(GameState.GameRunning);
@@ -118,7 +120,6 @@ namespace Server
SendGameResult();
this.endGameSem.Release();
}

public void ReportGame(GameState gameState, bool requiredGaming = true)
{
var gameObjList = game.GetGameObj();
@@ -129,38 +130,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 +217,8 @@ namespace Server
{
game.GameMap.GameObjLockDict[GameObjType.Character].ExitReadLock();
}
//msg.GateOpened =
//msg.HiddenGateRefreshed =
//msg.GateOpened
//msg.HiddenGateRefreshed
//msg.HiddenGateOpened
return msg;
}


Loading…
Cancel
Save