如何为服务器上的每个用户运行计时器

时间:2019-04-08 17:15:10

标签: c# server

我正在简单的游戏服务器上工作,该服务器应该像这样工作:

  1. 用户连接到服务器并启动计时器,将变量Quest设置为true
  2. 计时器将倒数X秒
  3. 用户可以断开与服务器的连接,然后再次从相同或不同的设备连接以检查计时器进度(如果变量Quest == true,则说明正在进行中)
  4. 当计时器达到0时,它将Quest设置为false

该服务器应该同时处理多个用户。

我的问题:我已经完成了第1部分和第2部分,但是我不知道如何将变量连接到某些用户名。任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

如果您当前有类似的东西:

class GameServer {
    Timer questTimer;
    bool quest;
    // ...

然后您可能希望将全局状态封装为每个玩家自己的类:

class PlayerState {
    Timer questTimer;
    bool quest;
}

,并为每个玩家的状态输入一个Dictionary(以玩家的名字为键):

class GameServer {
    Dictionary<string, PlayerState> states = new Dictionary<string, PlayerState>();
    // ...

操作词典超出了此问题的范围–上面链接的文章应为您提供一些想法。