我用Java制作了一个带有服务器和客户端的游戏。客户端计算玩家等级的进度。在此期间,它从服务器获取上次更新的时间。然后看时间差是多少。然后水平+=时间差。但是客户端可以将自己的时间设置为2个小时左右,并且高于+=2级。
我该如何解决这个问题?
这是最好的解决方法,即所有时间都在UTC中进行通信和存储。(通常是一个长值:从1.1开始的秒数或毫秒数。1970,也称为Unix时间)。
在Java上,这次使用
long utcMillis = System.currentTimeMillis();
存储并传达这种价值。与之产生分歧。
为了避免在游戏中作弊,你可以随时使用服务器的时间。