Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我用 Java 制作了一个带有服务器和客户端的游戏。客户端计算玩家等级的进度。在此期间,它会在上次更新时从服务器获取。然后看看时差是多少。然后水平+=时间差。但是客户端可以将自己的时间设置为 2 我们的时间,并且比级别 += 2 晚。
我该如何解决这个问题?
最好的解决方法是所有时间都以 UTC 进行通信和存储。(通常是一个长值:从 1.1. 1970 开始的秒数或毫秒数,也称为 Unix 时间)。
在 Java 上,你得到了这个时间
long utcMillis = System.currentTimeMillis();
存储并传达该价值。计算差异。
为避免在游戏中作弊,您可以随时使用服务器时间。