- UID
- 260893
- 帖子
- 16995
- 精华
- 17
- 威望
- 125
- 阅读权限
- 101
- 注册时间
- 2005-1-25

|
[历史] [神教][蛋疼向]客户端、补丁修改基础课。。
本帖不提供任何补丁或相关程式下载(其实置顶都有),只是单纯的扫盲。。
さぁ。。はじめましょ。。
客户端读取资料的顺序
fdata.grf->data.grf->data文件夹
遇到相同的文档,视以上优先级,决定采用哪个文件。
注:纯净的客户端是没有data文件夹的,全部内容都已打包进各grf文档。
而我们通常需要修改(置换)的内容,都压缩放置于data.grf文件内,过去采取的方式为修改ragexe.exe(ragfree.exe)实现以上三者的读取顺序调换,一般为:data文件夹->fdata.grf->data.grf
这样,我们只要将需要替换的东西,放置于data文件夹内,由于读取顺序的改变,使得我们修改的东西优先于原始档案被读取加载,从而实现补丁的效果。
现在由于服务器端对ragfree.exe进行了限制,一些非法的修改会造成掉线,所以通过改ragfree实现文件(夹)读取顺序调换便不可行了
而data.grf又有1G的大小,对其编辑起来非常麻烦,所以,我们只有把目标放在fdata.grf上,因为初始的fdata.grf只有4个xml档而已,把需要置换的东西压进去就好。(这就是现在免费服补丁做的事。)
另外,无限发言、无限视野、Gv显伤害、无声尖叫冷笑、多开(免费服默认开启)、tele、光环除去等都是必须修改ragexe.exe(ragfree.exe)实现,故除了无限视野,其他在免费服均不适用。
但是关于无声尖叫冷笑,可以通过其他方法达成。
关键字限制则可以通过置换txt文档实现。
再来说说某些补丁实现的原理
一、魔法简化:
将那些魔法的绚丽效果帖图,部分或全部用空白图片取代,从而达到简化效果。但是振动则跟帖图无关,所以,一般来说不大好修改。(我记得neb是通过str溢出实现的?具体忘了。。)
另外一些3D、旋转等效果,并不是单纯的帖图,所以不一定好改。有兴趣的同学可以自行研究。
还要说明的是,很多技能效果,使用的帖图是重复的,改一边,另一边必定会受到影响。除了忍受外,无解。
二、免鉴定:
游戏内每一种道具都有唯一的id编号,道具、道具说明都是由几个txt文档控制的
文档分成2种
1、鉴定过的,全部实名显示。
2、未鉴定的,部分物品名称和说明如客户端内所间,写着“未鉴定”等等字样。
所谓免鉴定,就是把上述1类文件改成2类文件的名字,然后让客户端优先读取。所以只是单纯的能看到那些未鉴定的是什么东西,想要真正运用(因为实际并未鉴定),还是必须使用放大镜或技能进行鉴定。
这里顺带一提,前一阵子出现的假冒精练、伪造物品,就可以通过修改道具文档内容实现。比如,把“长靴 1S”改为“+7 长靴 1S”;把“波利卡片”改为“幽灵波利卡片”。(当然,前提是要让对方使用你修改过的文档)
三、职业形象、怪物形象补丁:
ro内,绝大多数2d的可动object(玩家、mob、npc等等)都是由spr和对应的act构成的。
spr是人物的各个动作帧的合集,act则是相关的控制(动作、效果等等)。
所以,替换形象,不过就是将修改过的spr档利用先读(当然,覆盖也行),替换你需要修改的spr档。但是这仅仅适用于2d,3d的物件无法采用此法实现。(3d物件也有别的工具可以改,有兴趣的可以自行找相关程式的来研究)
四、图档替换
很多游戏内看到的图片(NPC图、道具图、小地图、Loading等等)都是一张张bmp文件,所以想要更改的话,置换就行(类似三)
五、BGM修改
两种方法
1、直接改bgm文件夹内的文件,用新的替换现有的。
2、修改客户端内的mp3nametable.txt文档。(显然这是个非常蛋疼的方法,除非是官方发布时就错了)
六、宠物对话
宠物对话,是由一个xml文档控制的,可以对其进行编辑,但是这是仅仅是本地的。也就是说自己能看到修改过后的对话,但是别人的机器上看,还是原始的语句。(除非你将你的xml档也给了对方)
七、技能文字、技能说明修改
由txt档控制,修改方式类似于六。
八、冷笑尖叫语句
冷笑尖叫是由txt文档控制,可自行修改内容(有最小行数限制)。冷笑尖叫均为普通发言,所以修改后的内容,其他玩家也是能看的到的。
以上八条中,除了最后一条,前面的均只有本机可见(除非让对方也做了相同的修改)。
最后再说一下
由文章开头的先读顺序可知,如果fdata.grf,data.grf文件均不存在的话,客户端会从data文件夹内读取内容。
所以,一些懒得反复打包的同学,可以采取将客户端内所有的grf文档全部解开的方法,然后需要什么补丁效果,就直接覆盖相应的文件。
此法的缺点在于需要占用大量的硬盘空间(完全爆开的data.grf有3、4G大小),且对客户端不熟悉的话,误操作挽回比较困难。
另外需要注意的是,这些grf还是得存留备份(可以采取改名、改路径存放),因为客户端更新时候,依旧是寻找相关的grf档进行更新改写。找不到档的话。。很可能就会出这样那样的问题了。
嘛。。暂时蛋疼这么多了。。开放开放。。想到其他的再写了。。
[ 本帖最后由 lolicon 于 2007-8-22 12:42 编辑 ] |
|