设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 5263|回复: 10
打印 上一主题 下一主题

[已经解决] 如何防作弊?防存档修改?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
102 小时
注册时间
2016-5-9
帖子
58
跳转到指定楼层
1
发表于 2016-6-21 14:55:15 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
如题……游戏发出去之后想要在一定程度上防止他人对游戏存档进行修改,起码不让人那么容易的作弊……有脚本或什么办法能实现吗?

评分

参与人数 1星屑 +35 收起 理由
RyanBern + 35 手动认可奖励

查看全部评分

Lv1.梦旅人

梦石
0
星屑
76
在线时间
1379 小时
注册时间
2012-7-5
帖子
1698

开拓者

2
发表于 2016-6-21 18:04:01 | 只看该作者
本帖最后由 kuerlulu 于 2016-6-22 12:25 编辑

作弊基本是没法避免的, 你听说过内存注入吗
关于存档方法有很多, 比如自己定义存档数据的加密解密算法什么的
不过,
你这个游戏值得玩家去作弊, 修改存档吗
---- 6月22日更新 ----
补一张图hh

https://knewone.com/entries/566e751a102b537cf5000701

点评

_啊咧, 我没有中言伤害的的意思辣 ; w ;  发表于 2016-6-22 15:14
你觉得怎样好我可以当做参考,也谢谢你的建议。 但是能不能不要在我的问题中出言伤害我? 大神,人与人之间为何总要互相伤害呢?  发表于 2016-6-22 12:41
反正只要防住无脑修改器就好了  发表于 2016-6-22 01:38

评分

参与人数 1星屑 +150 收起 理由
myownroc + 150 我很赞同

查看全部评分


  -fk: -azogi:
回复 支持 0 反对 1

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
102 小时
注册时间
2016-5-9
帖子
58
3
 楼主| 发表于 2016-6-21 18:22:45 | 只看该作者
kuerlulu 发表于 2016-6-21 18:04
作弊基本是没法避免的, 你听说过内存注入吗
关于存档方法有很多, 比如自己定义存档数据的加密解密算法什么 ...

人们为什么要互相伤害呢……
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
12931
在线时间
1046 小时
注册时间
2007-12-15
帖子
188
4
发表于 2016-6-21 19:01:39 | 只看该作者
存档修改是很难防御的,所以,与其消耗精力去搞反修改,还不如去专心搞好游戏……

点评

很赞同这种理念,甚至包括游戏本身的加密,我也是觉得不加密也无所谓。【比如饥荒基本全部暴露在外边  发表于 2016-6-22 01:39

正在研究自己编写 DLL 来调用 DirectX ……DLL 完成了,脚本却遇到问题了……
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
12157
在线时间
4435 小时
注册时间
2014-4-11
帖子
5955

开拓者

5
发表于 2016-6-21 21:58:22 | 只看该作者
进入游戏后弹出选择(普通版)(完美存档版)(一键通关版)
回复 支持 反对

使用道具 举报

Lv1.梦旅人

路人党员

梦石
0
星屑
52
在线时间
2276 小时
注册时间
2010-12-30
帖子
3225
6
发表于 2016-6-21 22:12:18 | 只看该作者
本帖最后由 英顺的马甲 于 2016-6-21 22:26 编辑

一般上只有两种玩家会想要作弊
1. 只想看剧情,因此以作弊加快游戏进度
2. 爱炫耀但没能力通关的玩家

第一种人的出现证明了游戏剧情的优秀,而第二种人稍微防一防就能去掉大半,毕竟有能力的人还需要作弊?
至于那些防不住的,就让他们带着羞耻心去玩游戏吧

p/s:个人认为玩游戏纯粹图个开心,怎么玩是玩家的事,而游戏开发者只要开发出好游戏就行了,而作弊的玩家自然有作弊玩家如果安安分分的玩个开心就算了那没什么,但如果遇到作弊了还到处炫耀的熊孩子玩家,你跟熊孩子计较不久中计了么?一款游戏的精髓到底是游戏本身还是游戏加密这点不能本末倒置,如果说作弊破坏了游戏的精髓,那么作弊玩家正是那种体验不到游戏精髓的悲哀玩家。

注:以上言论不适于用在网游,单机再怎么折腾都不会影响他人,但联机作弊就会影响游戏的公平性,因此需要大幅度提防

点评

改成json倒是不用,曾经的数据库伪装器就能骗过一大票人了  发表于 2016-6-22 09:43
方法?把数据库全换成json的都能防住一大片了【担心记事本直接打开的,修改个后缀名都能骗过一大堆人了,反正基本都是用无脑修改器  发表于 2016-6-22 01:42
楼主正是需要你所谓[稍微防一防]的方法,所以还不快写上两条(这样我就可以学习了  发表于 2016-6-21 23:32

评分

参与人数 1星屑 +66 收起 理由
kuerlulu + 66 精品文章

查看全部评分

本人擅长XP,如果有脚本或者Ruby方面的问题欢迎发电邮到[email protected]咨询,本人很少检查电邮所以不一定会及时回复,本人不会直接出手解决问题只会提供一个方向,所以谢绝伸手党
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3574
在线时间
2338 小时
注册时间
2015-8-25
帖子
960

开拓者

7
发表于 2016-6-21 22:37:11 | 只看该作者
假如是我自己的话

对制作精美的游戏也会抱有敬意,会认真地体验完。

说到玩游戏习惯修改的人,本身就是已经不是服务范围之中了呢
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
102 小时
注册时间
2016-5-9
帖子
58
8
 楼主| 发表于 2016-6-22 00:04:37 | 只看该作者
英顺的马甲 发表于 2016-6-21 22:12
一般上只有两种玩家会想要作弊
1. 只想看剧情,因此以作弊加快游戏进度
2. 爱炫耀但没能力通关的玩家

RyanBern大大说了我的心理话QAQ
跪求帮忙,只是稍微防一防。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

路人党员

梦石
0
星屑
52
在线时间
2276 小时
注册时间
2010-12-30
帖子
3225
9
发表于 2016-6-22 00:58:28 | 只看该作者
本帖最后由 英顺的马甲 于 2016-6-22 01:04 编辑
望月神绮 发表于 2016-6-22 00:04
RyanBern大大说了我的心理话QAQ
跪求帮忙,只是稍微防一防。


RM的存档修改的方法不外乎就那几个,也就是说只要在存档上随便做点小手脚基本上就GG了
比如说这样:
RUBY 代码复制
  1. unless $ORIGINAL_SCENE_SAVE
  2.   $ORIGINAL_SCENE_SAVE = Scene_Save.clone
  3.   $ORIGINAL_SCENE_LOAD = Scene_Load.clone
  4.   $ORIGINAL_WINDOW_SAVEFILE = Window_SaveFile.clone
  5. end
  6. class Scene_Save < $ORIGINAL_SCENE_SAVE
  7.   def on_decision(filename)
  8.     super(filename)
  9.     buffer = ""
  10.     File.open(filename, "rb"){|f|buffer = Zlib::Deflate.deflate(f.read)}
  11.     File.open(filename, "wb"){|f|f.write [Zlib.crc32(buffer), buffer].pack("La*")}
  12.   end
  13. end
  14. class Scene_Load < $ORIGINAL_SCENE_LOAD
  15.   def on_decision(filename)
  16.     crc = 0; buffer = ""
  17.     File.open(filename, "rb"){|f|crc, buffer = f.read.unpack("La*")}
  18.     File.open(filename, "wb"){|f|f.write Zlib::Inflate.inflate(buffer)} if crc == Zlib.crc32(buffer)
  19.     super(filename)
  20.   end
  21. end
  22. class Window_SaveFile < $ORIGINAL_WINDOW_SAVEFILE
  23.   def initialize(index, filename)
  24.     @file_exist = FileTest.exist?(filename)
  25.     if @file_exist
  26.       File.open(filename, "rb"){|f|@crc, @buffer = f.read.unpack("La*")}
  27.       File.open(filename, "wb"){|f|f.write Zlib::Inflate.inflate(@buffer)}
  28.     end
  29.     super(index, filename)
  30.     if @file_exist
  31.       File.open(filename, "wb"){|f|f.write [@crc, @buffer].pack("La*")}
  32.     end
  33.   end
  34. end
但这只是最简单的手脚,稍微厉害一些的人还没打开脚本就看破了

还有个方法就是利用真假存档掩护,假存档光明正大的摆在那让人改,但是每次读取时读取的都是藏在别处的真存档

评分

参与人数 1梦石 +1 收起 理由
RyanBern + 1 触瞎

查看全部评分

本人擅长XP,如果有脚本或者Ruby方面的问题欢迎发电邮到[email protected]咨询,本人很少检查电邮所以不一定会及时回复,本人不会直接出手解决问题只会提供一个方向,所以谢绝伸手党
回复 支持 1 反对 0

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
102 小时
注册时间
2016-5-9
帖子
58
10
 楼主| 发表于 2016-6-24 12:21:14 | 只看该作者
@RyanBern ,给我扣分,给马甲发卡吧。
差不多明白怎么做了。

点评

得看看是啥脚本,八成无效  发表于 2016-6-24 13:35
我引战撕逼了…… 其实不太明白你那个脚本,我装了一个更改存档位置(创建一个SAVE文件夹,截图并保存存档)的脚本。再用这个脚本还有效吗?  发表于 2016-6-24 12:53
为毛给你扣分啊?  发表于 2016-6-24 12:26
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-13 20:45

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表