《真三国无双4》招式的基本动作文件MOT的替换方法

2025-01-25 16:43:54作者:饭克斯

游饭天堂会员:bkvm<原创> 在《游戏名称》中,MOV的04H所指定的动作均包含于MOT中,仅当MOT中存在该动作时,通过修改MOV才能使角色施展特定招式。所以替换MOT是改变角色招式的根本途径。例如通过组合关羽的ATK1MOT与吕布的ATK2MOT,可以创建一个既拥有关羽C4和无双,又拥有吕布C3、C6招式的角色。但是354S的MOT均打包于LINKDATA.BIN内,替换MOT的操作较为复杂,所以在修改前仔细备份是必要的。目前的方法尚不完善,本帖旨在抛砖引玉,期待大家能找到更优解法。

以吕布为例进入其ATK菜单,拖动至底部,找到文件头几个字节为42504B30的文件,即NORMALMOT。使用WINHEX的搜索功能,沿此向下搜索“42504B30”,1012C350行也出现“42504B30”,表示ATK1MOT;继续向下至1018F310行,为ATK2MOT;再向下至101E4000行,为PLAYMOT。大众招式关联的角色(如刘备、马超)仅拥有ATK2MOT和PLAYMOT(PLAYMOT位于后),而其他角色在ATK之后依次拥有NORMALMOT、ATK1MOT、ATK2MOT、PLAYMOT,每个MOT的结尾是下一个MOT的第一个字节的前一个字节。据此我们可以找到所有角色的全部MOT。

《真三国无双4》招式的基本动作文件MOT的替换方法

找到MOT后,下一步是替换。通常NORMALMOT和ATK1MOT不宜修改,仅通过替换ATK2MOT,即可实现不同角色招式的组合。但由于每个MOT的长度不一,我们通常只能用较小的MOT替换较大的MOT,否则原较小MOT的空间将无法容纳较大的新MOT,影响后续文件。例如马超可以容纳吕布的ATK2MOT,但吕布却无法容纳马超的(会影响到后面的PLAYMOT),这给我们的修改带来了一些限制。

若遇“装不下”的情况,可尝试以下方法(参考燕子启发的思路):将光标拖至整个BIN文件的底部,将第一个人MOV(包含MOV的前两行,即42504B30开头的两行)ATK和除PLAYMOT外的3个MOT全部复制到BIN文件尾部,以此扩容。然后将第二个人的ATK2MOT覆盖到相应位置,再次扩容。随后进入IDX文件,将相应人物的IDX代码指向新的扩容后地址。IDX代码的前三个字节与BIN的对应关系为:(第3个字节10000+第2个字节100+第1个字节)800=BIN文件内该文件的行地址。例如香香MOV的IDX位于第1760行,其前三个字节为4B0402,那么其BIN地址为(0210000+04100+4B)800=10225800。若在BIN文件末尾扩容,则可通过BIN地址反算IDX代码。扩容前BIN的最后一行的下一行(也是扩容后新的MOV地址)的地址为8E822800,8E822800/800=11D045,所以只需将香香的IDX的前三个字节改为450D11,即可让香香使用新的扩容后招式。

附武将MOV的BIN地址和IDX地址列表(感谢蜉蝣和凉宫的破解工作):

| BIN地址 | 角色 | IDX地址 | |||| | 0F193000 | 赵云 | 15C0 | | 0F2DF800 | 关羽 | 15E0 | | 0F413000 | 张飞 | 1600 | | 0F562000 | 侯惇 | 1620 | | 0F6B3800 | 典韦 | 1640 | | 0F7E1800 | 许楮 | 1660 | | 0F947800 | 周瑜 | 1680 | | 0FA82800 | 陆逊 | 16A0 | | 0FBCB800 | 太史慈 | 16C0 | | 0FD0C800 | 貂蝉 | 16E0 | | 0FE49800 | 诸葛亮 | 1700 | | 0FF80000 | 曹操 | 1720 | | 100C6800 | 吕布 | 1740 | | 10225800 | 孙尚香 | 1760 | | 10382000 | 刘备 | 1780 | | 103FF800 | 孙坚 | 17A0 | | 1047A000 | 孙权 | 17C0 | | 104FD000 | 董卓 | 17E0 | | 1057D800 | 袁绍 | 1800 | | 105F5000 | 马超 | 1820 | | 106A0000 | 黄忠 | 1840 | | 1071A000 | 夏侯渊 | 1860 | | 10797800 | 张辽 | 1880 | | 10827000 | 司马懿 | 18A0 | | 1095E000 | 吕蒙 | 18C0 | | 109CF000 | 甘宁 | 18E0 | | 10A4F800 | 姜维 | 1900 | | 10ADE000 | 张角 | 1920 | | 10C15000 | 徐晃 | 1940 | | 10D6B800 | 张颌 | 1960 | | 10EB5800 | 甄宓 | 1980 | | 10FEA000 | 黄盖 | 19A0 | | 1111D000 | 孙策 | 19C0 | | 11263000 | 魏延 | 19E0 | | 113BA000 | 庞统 | 1A00 | | 114F9800 | 孟获 | 1A20 | | 11651000 | 祝融 | 1A40 | | 117A4000 | 大乔 | 1A60 | | 118E8000 | 小乔 | 1A80 | | 11A36000 | 曹仁 | 1AA0 | | 11B68800 | 周泰 | 1AC0 | | 11CC7000 | 月英 | 1AE0 | | 11E1C800 | 曹丕 | 1B00 | | 11F90000 | 庞德 | 1B20 | | 120EB000 | 凌统 | 1B40 | | 1225A000 | 关平 | 1B60 | | 123C7800 | 星彩 | 1B80 | | 12524000 | 左慈 | 1BA0 | | 126D2000 | 大剑 | 1BC0 | | 12826800 | 细剑 | 1BE0 | | 1296F800 | 立志剑 | 1C00 | | 129ED000 | 立志枪 | 1C20 | | 12A7B800 | 立志戟 | 1C40 |

以上所有角色在IDX内均占据2行,其中第一行是MOV的地址(包含ATK和除PLAYMOT外的其他MOT),第二行是PLAYMOT的地址。所以我们可以方便地互换两个人的PLAYMOT,从而改变他们的胜利动作,而不会影响他们本身的招式。

以下角色没有PLAYMOT,所以每个角色只对应1行IDX:

| IDX地址 | 角色 | ||| | 12AEC800 | 枪护卫 | | 12B89000 | 杖护卫 | | 12C17800 | 弩护卫 | | 12CA2800 | 剑护卫 | | 12D2F000 | 扇护卫 | | 12DBB000 | 弓护卫 | | 12EA3800 | 弓兵 | | 12F06000 | 剑兵 | | 12F44000 | 武官剑大众 | | 1301C800 | 文官剑大众 | | 13155800 | 女兵 | | 13198000 | 枪兵 | | 131DB800 | 枪大众脸 | | 13333000 | 戟兵 | | 1337A000 | 戟大众脸 | | 13440800 | 投爆兵 | | 13446800 | 攻击据点兵 | | 13512800 | 防御据点兵 |

除了直接相互替换ATK2MOT之外,我们还可以用一个人的ATK2MOT替换另一个人的PLAYMOT,这样新角色就相当于获得了3个ATKMOT,招式修改的发挥空间更大。具体方法是将A角色的ATK2MOT复制到BIN文件的尾部,然后修改B角色的IDX的第2行(即PLAYMOY这一行)使其指向新的ATK2MOT地址,这样A角色的ATK2MOT就变成了B角色的PLAYMOT。注意此方法存在缺点,即B角色内与PLAYMOT相关的动作会受到牵连,但我们可以尽量弥补这一缺点,因为PLAYMOT在战斗中使用频率不高。例如可以将射箭相关动作全部改为0E、00;反击启动动作可改为10、00(格挡)或1A、00(锷破胜);上马动作用0D、00(跳跃)代替。至于胜利失败动作,则可自由发挥修改,无需拘泥于原有动作。

展开全文

热门推荐

相关攻略

猜你喜欢