本来我对曹操传剧本一直都不大熟悉,也没有要深入了解的冲动。之所以写这个工具只是由于上星期的一个意外,让我无意中发现原来现在的剧本编辑器程序是加了壳的(exe加密)。既然是加了密,出于对作者的尊敬,那么我就没必要再继续分析它的内部结构了。其实也是看不懂,或者说要弄懂的话实在太浪费时间了。如果是为了做剧本扩展功能而硬着头皮去分析汇编,倒不如重新自己写一个编辑器了。恩,所以就有了这次的尝试。
剧本的文件结构很好理解,只要用现有的编辑器保存多几条简单的指令,稍微对比一下应该就能搞清楚了。虽然现在看上去是挺简单,完全不需要再去做什么汇编代码分析就能够弄明白,但是,其实那是因为编辑器的作者当年努力替我们分析过了,如果没有前人的成果,要从头开始研究曹操传的exe再重写一个编辑器,就不是那么容易的事情了。因此,这里必须要向剧本编辑器的作者Van致敬,感谢他的无私奉献!
在了解到剧本的数据结构后,我倒不是接着去学习掌握各条指令的实际用法,如果不是翻译需要的话,其实我并不想去知道指令的具体用法。因为不需要,我写这个程序的目的之一就是为了提供一个可以自定义指令内容和数据结构的工具。也就是说,如果你有能力修改曹操传exe实现了新的指令,不需要再把新的指令用法告诉我,自己就可以在工具里手动添加新的指令进去。
另外我想实现的一个主要功能就是希望能让剧本文本化。之前看到一个吧友发布自己mod的时候号称开源,我就一直在想曹操传剧本这种二进制文件能算源码吗,到底能不能用记事本来写剧本代码呢?现在我是尝试把剧本以xml的格式来显示出来,跟eex相互间可以自由转换,总算是基本实现了可以直接手写剧本的目的。虽然大概没什么人会这样写,但是,文本跟二进制文件的最大区别就是:文本是可以随意大段大段替换而不会出问题的,二进制文件你替换长度不一样的来试试看?这里插一句,原剧本编辑器只有导出并无导入功能,因此不算真正意义上的文本化。
好了,不经不觉,又说了那么多,最初的想法和目的也就上面两个,具体其他功能或使用方法就请下载自行尝试了。本来就很简单的一个小工具而已,感觉应该不需要再写什么教程了吧。如果是碰到有疑问的地方或bug,都可以在下面留言。大家有什么的建议和意见也可以提,虽说肯定不可能全部都实现或改正,但说出来一起讨论一下也挺好。为了保持版面整洁,请大家就别发“顶”“支持”这类没有讨论价值的回复了,心领了,【如删勿怪】【谢谢合作】。
有一点差点忘记说了,当前程序并没有进行剧本指令位置有效性的校验,一来我还不是很清楚具体的约束条件,如“code0、1、2不能手动添加这类”;二来这个工具本身是不建议对指令不熟悉的人下载使用的。当然,要是有哪位了解其中约束的朋友能够把内部各种硬性规定跟我讲讲,或许能够再下个版本里添加一个约束条件也可自定义的功能。
最后贴两个截图吧:


看到这两者后,大家应该明白我为何那么大费周章非得搞个英文版的了吧。如果用中文界面的话那么跟旧版界面的相似度就实在是太高了,非常有抄袭甚至剽窃的嫌疑。为了表达对原剧本编辑器的敬意,同时证明有做出过自己的努力,希望能做到只是借鉴了表达形式,而非赤裸裸的模仿。因此,在工具发布后,我是不会再提供原先的那个中文文档下载的了,前两天有下载过的朋友,可以自己手动放到【ConfigTable】目录下使用,但不建议公开分享。其实,那些描述,自己再一个个利用【CMD Config】菜单项修改也是可以了。其他的属性描述,也同样可以自己改成中文的,只要你喜欢。
剧本的文件结构很好理解,只要用现有的编辑器保存多几条简单的指令,稍微对比一下应该就能搞清楚了。虽然现在看上去是挺简单,完全不需要再去做什么汇编代码分析就能够弄明白,但是,其实那是因为编辑器的作者当年努力替我们分析过了,如果没有前人的成果,要从头开始研究曹操传的exe再重写一个编辑器,就不是那么容易的事情了。因此,这里必须要向剧本编辑器的作者Van致敬,感谢他的无私奉献!
在了解到剧本的数据结构后,我倒不是接着去学习掌握各条指令的实际用法,如果不是翻译需要的话,其实我并不想去知道指令的具体用法。因为不需要,我写这个程序的目的之一就是为了提供一个可以自定义指令内容和数据结构的工具。也就是说,如果你有能力修改曹操传exe实现了新的指令,不需要再把新的指令用法告诉我,自己就可以在工具里手动添加新的指令进去。
另外我想实现的一个主要功能就是希望能让剧本文本化。之前看到一个吧友发布自己mod的时候号称开源,我就一直在想曹操传剧本这种二进制文件能算源码吗,到底能不能用记事本来写剧本代码呢?现在我是尝试把剧本以xml的格式来显示出来,跟eex相互间可以自由转换,总算是基本实现了可以直接手写剧本的目的。虽然大概没什么人会这样写,但是,文本跟二进制文件的最大区别就是:文本是可以随意大段大段替换而不会出问题的,二进制文件你替换长度不一样的来试试看?这里插一句,原剧本编辑器只有导出并无导入功能,因此不算真正意义上的文本化。
好了,不经不觉,又说了那么多,最初的想法和目的也就上面两个,具体其他功能或使用方法就请下载自行尝试了。本来就很简单的一个小工具而已,感觉应该不需要再写什么教程了吧。如果是碰到有疑问的地方或bug,都可以在下面留言。大家有什么的建议和意见也可以提,虽说肯定不可能全部都实现或改正,但说出来一起讨论一下也挺好。为了保持版面整洁,请大家就别发“顶”“支持”这类没有讨论价值的回复了,心领了,【如删勿怪】【谢谢合作】。
有一点差点忘记说了,当前程序并没有进行剧本指令位置有效性的校验,一来我还不是很清楚具体的约束条件,如“code0、1、2不能手动添加这类”;二来这个工具本身是不建议对指令不熟悉的人下载使用的。当然,要是有哪位了解其中约束的朋友能够把内部各种硬性规定跟我讲讲,或许能够再下个版本里添加一个约束条件也可自定义的功能。
最后贴两个截图吧:


看到这两者后,大家应该明白我为何那么大费周章非得搞个英文版的了吧。如果用中文界面的话那么跟旧版界面的相似度就实在是太高了,非常有抄袭甚至剽窃的嫌疑。为了表达对原剧本编辑器的敬意,同时证明有做出过自己的努力,希望能做到只是借鉴了表达形式,而非赤裸裸的模仿。因此,在工具发布后,我是不会再提供原先的那个中文文档下载的了,前两天有下载过的朋友,可以自己手动放到【ConfigTable】目录下使用,但不建议公开分享。其实,那些描述,自己再一个个利用【CMD Config】菜单项修改也是可以了。其他的属性描述,也同样可以自己改成中文的,只要你喜欢。