繁体   English   中英

Javascript | 如何避免Date.now()操纵

[英]Javascript | How to avoid Date.now() manipulation

因此,我有一个混合游戏应用程序,并且我的游戏中有一个奖励系统:

if(Date.now() - lastFreeCoinsTime > 3600000){ //lastFreeCoinsTime is also Date.now()
  giveCoins();
  lastFreeCoinsTime = Date.now();
}

每小时您可以获得X数量的硬币。 通过执行以下操作,可以很容易地操纵我发现的内容:电话设置:更改日期(例如18/03-> 23/03)现在您可以再次获得奖励。 我该如何避免呢?

此类用户奖励应由您控制的外部服务器处理。 这样,您就可以跟踪自己的时间和其他数据,并且客户端(您的游戏)从服务器获取信息是唯一的事实来源。 不利的一面是,您的用户需要连接互联网才能获得奖励。 但是只要游戏的核心功能在没有互联网连接的情况下就可以玩,他们就可以在离线状态下玩游戏,并且只需要连接一小部分额外的功能(例如奖励)就可以了。

但是,考虑一下防止用户“作弊”是否值得。 如果您的奖励系统旨在通过某种形式的“免费增值”模式使您赚钱,那么您显然需要在如何获取和控制奖励方面投入大量精力。 但是,如果这是休闲游戏还是免费游戏,且赌注很低,这真的重要吗? 实际上,只有一小部分用户会花时间尝试作弊。 如果他们这样做,谁在乎呢? 让他们按照自己想玩的方式玩游戏-毕竟,他们在那里玩乐。

我认为您无法避免这种特殊行为,但是如果当前时间在lastFreeCoinsTime之前,可以通过再次减少其代币来防止某人反复滥用它。 如果《 Candy Crush》的创作者无法解决这个问题,那就必须非常艰难。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM