如何在基于Cocos2dx的离线游戏中防止时间作弊?
2016-12-6 10:30:30
收藏:0
阅读:106
评论:1
最近,我正在开发一个基于Cocos2dx-lua的手机离线游戏。
我在Google Play上发现了一个叫做GameGuardian的应用,它可以设置时间速度。这个应用可能会修改libc.so中的gettimeofday()方法。我尝试过很多API,比如os.time(),SystemClock.elapsedRealtime(),但都失败了。
请问有人能给我一个避免这个应用影响游戏的方法吗?
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- Lua 虚拟机加密load(string.dump(function)) 后执行失败问题如何解决
- 我想创建一个 Nginx 规则,禁止访问
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?

唯一可靠的方法是让你的应用程序联系游戏服务器来确保时间。很多安卓游戏都这样做。例如,《猫和老鼠战争》。
比如,你可以在应用程序启动时检查时间有效性,如果没有连接可用,你可以允许资源生成一段允许的时间。例如,从上一次确认时间开始不超过1小时。
另一个想法是检查当前 fps。硬件无法加速,因此当启用 VSync 时,帧将在大致相同的时间内呈现。如果你发现单个帧的呈现时间比它应有的时间要长很多,而且如果这种情况发生在很多帧上,那么可能会表明作弊的可能性。但这不是稳定的解决方案,因为你必须确保在弱设备上fps正常,而且它并不能告诉你游戏没有运行时花费的时间。
极端情况可能包括完全擦除应用程序的状态,如果你发现自上次保存的未确认时间以来时间倒退了超过~1小时(以防用户调整了 DST 等)。
但一般来说,你无法完全保护离线游戏免受时间篡改的影响。