【发布时间】:2019-04-08 17:15:10
【问题描述】:
我正在开发简单的游戏服务器,它应该像这样工作:
- 用户连接到服务器并启动计时器,将变量 Quest 设置为 true
- 计时器将倒计时 X 秒
- 用户可以断开与服务器的连接,然后从相同或不同的设备重新连接以检查计时器进度(如果变量 Quest == true,则任务正在进行中)
- 当计时器到0时,它会将Quest设置为false
服务器应该同时处理多个用户。
我的问题:我已经完成了第 1 部分和第 2 部分,但我不知道如何将变量连接到某个用户名。任何帮助将不胜感激
【问题讨论】:
-
当用户断开连接时,您需要将时间与他们的用户名一起存储在某处,例如在数据库中。然后,当他们使用相同的用户名重新连接时,您可以通过使用该用户名进行搜索来从存储中获取值。显然,如果变量在那段时间是静态的,您需要计算自存储值以来经过的时间,并在将其提供给用户之前对其进行更新。因此,当您第一次存储它时,将当时的时间也存储起来是明智的
-
不要使用计时器。为任务设置截止日期,例如如果您使用一小时计时器,请将截止日期设置为
DateTime.Now.AddHours(1)。那么他们是否登录或注销都没有关系,您不必维护计时器。