[教学]用vim做游戏修改器
发表于 : 2007-06-10 21:46
呵呵,这个题目夸张了点~首先我们看看游戏修改器是怎么来修改游戏的。
我初中的时候玩仙剑,当时没有现在这么多的方便灵巧的修改器,最好用的也就是game master了吧,还有什么fpe之类的吧。不过我只用过pctools,而且只用了它的二进制编辑功能~
游戏修改器要能够读取游戏的进度(可以是内存中的),可以确定要改的数值在哪里,可以安全的修改~能做到这几步,就是一个合格的修改器了~如果这样说,那么,vim也可以做到哦!
总结:
1、关键是命令:%!xxd是什么意思
%代表对全文件适用,!代表执行的是外部命令,xxd是以十六进制形式表示的命令行程序。所以合起来就是说:对整个文件,都将二进制代码用十六进制标识出来~
那么:%!xxd -r是什么呢?嘿嘿,r当然是reverse,反向动作拉~
2、那vim是不是可以当做ultraedit来用?
嘿嘿,bingo!以前记得有人问过,有没有可以象ultraedit一样可以进行列选定的工具~远在天边,近在眼前~还记得在visual模式下Ctrl+v的作用么?
好了,不打扰大家玩游戏的时间了~哦,不是改游戏的时间了~[/list]
我初中的时候玩仙剑,当时没有现在这么多的方便灵巧的修改器,最好用的也就是game master了吧,还有什么fpe之类的吧。不过我只用过pctools,而且只用了它的二进制编辑功能~
游戏修改器要能够读取游戏的进度(可以是内存中的),可以确定要改的数值在哪里,可以安全的修改~能做到这几步,就是一个合格的修改器了~如果这样说,那么,vim也可以做到哦!
- 首先,我们打开仙剑,买上20个水果~嘿嘿,不要说这点钱都没有,说,黑脸大个的赏钱哪去了?好,这是可以存档了~
- 备份进度后,用vim打开刚才的进度,按下:键,进入命令模式。然后输入%!xxd
- 看到没有,一堆乱码是不是变成了正常的二进制符了?呵呵,别急,保存文档,注意,这个文档现在可不是二进制的了,现在已经是简单的文本文档了~
- 把水果吃掉一个,依样画葫芦的制作另外一个文本文档,然后嘛,呵呵,比对文本文档最好用的工具是什么?当然是我们的diff命令拉!diff两个文件,很容易的就可以看出不同之处在哪,注意了,仙剑是用的明码储存的,也就是说20个水果,在内存中应该就是14,19个水果16进制就是13,呵呵,这下,很容易就看出哪个数字段是物品了吧?要猜不出来,继续上面的过程~
- 好了,找到地址段了,现在可以安全的存档文件修改了,嘿嘿,接着是让文本的文档重新变回二进制~同样的,在命令界面:%!xxd -r,就可以让文本重新成为二进制,保存好。提取旧的回忆~嘿嘿,是不是就有很多水果了?
总结:
1、关键是命令:%!xxd是什么意思
%代表对全文件适用,!代表执行的是外部命令,xxd是以十六进制形式表示的命令行程序。所以合起来就是说:对整个文件,都将二进制代码用十六进制标识出来~
那么:%!xxd -r是什么呢?嘿嘿,r当然是reverse,反向动作拉~
2、那vim是不是可以当做ultraedit来用?
嘿嘿,bingo!以前记得有人问过,有没有可以象ultraedit一样可以进行列选定的工具~远在天边,近在眼前~还记得在visual模式下Ctrl+v的作用么?
好了,不打扰大家玩游戏的时间了~哦,不是改游戏的时间了~[/list]