MD梦幻模拟战2修改-职业兵种扩充

  • 内容
  • 评论
  • 相关

MDL2里原有的职业代码是从00到9C,从9D到FF是没有被利用的,我们可以作一些修改,把它利用起来,达到增加自己原创职业的目的。需要修改的地方有几个:

1.属性
从0x0005EDDC开始是职业属性,每职业0x1C字节,原来是9D * 1C = 112C 字节,现在扩充为100 * 1C = 1C00字节。方法很简单,把0x0005EDDC-0x0005FF07这块数据移动到0x00160000,然后搜索0005EDDC,把所有的0005EDDC修改成00160000。另外职业属性前6字节是三个指针,指针1:兵种相克,指针2:移动消耗,指针3:地形效果,还需要把0x0005FF08-0x00060363这块数据移动到0x00161C00,并修改职业属性的三个指针的指向。0x0016112C-0x00161BFF就是新的职业代码9D-FF的属性。
2.默认形象
0x0005DDE6开始是职业的默认形象,每职业2字节,代表使用从52980/58280开始的第x个职业形象。有转职表的角色,如我方角色,每人都会有一个职业与形象对应的表。其他没有转职表的角色,如敌方/npc/小兵,会使用默认形象。0x0005DDE6-0x0005DF1F这块数据移动到0x00162060。搜索0005DDE6,修改成00162060。由原来的0x013A字节扩充为0x0200字节,从0x0016219A-0x0016225F就是新职业代码9D-FF的默认形象。
3.形象
职业形象由原来的00-B1扩充为00-FF,添加的形象数据按顺序放在原数据后面,新的形象代码为B2-FF。

职业形象1: 52980 + i * 0x80,把0x00052980-0x0005827F移动到0x00162260,搜索00052980,修改成00162260。
职业形象2: 58280 + i * 0x80,把0x00058280-0x0005DB7F移动到0x0016A260,搜索00058280,修改成0016A260。
4.战斗形象
从0x0008840A开始是职业的战斗形象的数据,每职业0x10字节。第1、2字节代表从0x000B0000开始第x个战斗形象,如809A,与7FFF作与操作后得到009A,代表从0x000B0000开始的第9A个指针。其他字节的含义自己摸索。把0x0008840A-0x00088DD9这块数据移动到0x00172260,搜索0008840A,修改成00172260。
0x000B0000这块数据就是图片导出导入工具的图片数据,0x000B0000-0x000B06B3是指针,0x000B06B4开始是压缩后的图片数据。0x000B0000-0x000B06B3这块指针表扩充到0x000B0000-0x000B083F,把原来0x000B06B4-0x00138151这块数据放在0x000B0840-0x001382DD,增加的战斗形象用图片导出导入工具压缩后放在后面,然后修改指针表的指针指向。新增加的战斗形象的代码为81AD,以此类推。
5.名称
从0x0005E6D6开始是职业的名称的指针,每个指针4字节,把职业名称的文本移动,然后从0x0005E6D6开始修改指向这些文本的指针就可以了,每个职业的文本以FF为结束符。这里演示把职业名称扩充为00-FF,文本移动到0x173260,文本指针扩充为5E6D6-5EAD5。

 

附修改成品,基于狼组原版修改,成品把属性、形象、战斗形象扩充为00-FF,增加了测试职业9D。

测试图:巴尔特第一个佣兵改成职业9D

Download:https://pan.baidu.com/s/1sl7Bzml

加载中,请稍候...

评论

1条评论
  1. 子寒 回复

    扩充的方法理解了,但是有个疑问,比如我希望扩充可以选择的兵种数量,ROM中原可选的兵种字节是2字节(FF FF -> 1111 1111 1111 1111)总共16个兵种(包含市民),我要怎么调整才能扩充可选则的兵种数量呢,例如扩充到32种(4字节)

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注