diff options
Diffstat (limited to 'Client/Assembly-CSharp/GameData.cs')
-rw-r--r-- | Client/Assembly-CSharp/GameData.cs | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/Client/Assembly-CSharp/GameData.cs b/Client/Assembly-CSharp/GameData.cs index 5069a13..b67158b 100644 --- a/Client/Assembly-CSharp/GameData.cs +++ b/Client/Assembly-CSharp/GameData.cs @@ -6,9 +6,14 @@ using Hazel; using InnerNet; using UnityEngine; -//c 单局游戏数据,同步频率比较小 +//c 单局游戏数据,同步频率比较小。是由host玩家管理的结构。 +// 单局游戏内只有一个这个结构,且clientId是host玩家的id,由host玩家所有,所以只有host玩家会序列化,其他玩家的机器deserialize +// 这样做能够保证客户端不会冲突,不会出现某台机器上某个任务完成了,但另一台机器没有完成的情况 +// 所有的全局数据全部由host玩家管理。 +// 类似的还有ship status public class GameData : InnerNetObject, IDisconnectHandler { + // 玩家个数 public int PlayerCount { get @@ -22,8 +27,10 @@ public class GameData : InnerNetObject, IDisconnectHandler // 所有角色数据,包括外观、装饰、是否是imposter、是否死亡 public List<GameData.PlayerInfo> AllPlayers = new List<GameData.PlayerInfo>(); + // 全部任务数 public int TotalTasks; + // 完成了的任务数 public int CompletedTasks; public const byte InvalidPlayerId = 255; @@ -197,7 +204,7 @@ public class GameData : InnerNetObject, IDisconnectHandler { sbyte i; sbyte j; - for (i = 0; i < 10; i = j + 1) + for (i = 0; i < 10; i = (sbyte)(j + 1)) { if (!this.AllPlayers.Any((GameData.PlayerInfo p) => p.PlayerId == (byte)i)) { |