1、首先需要使用注册表修复工具将War3路径写入注册表,由于写入的是用户注册表,无需管理员权限
2、下面需要用到的MPQ编辑工具网上很容易搜到
3、官方提供的更新exe文件的末尾直接就是对应的MPQ文件,因此如果需要提取的话,根据exe文件PE节的信息找到最后一个节及之前的全部截去,剩下的就直接是MPQ文件了
一、“不能执行更新,因为该更新是针对另一不同的游戏版本的”
BNUpdate.log日志记录:ERROR: Wrong language patch file - E:\Game\Warcraft III\War3.exe - game: enUS - patch: zhCN
方法:编辑War3.mpq文件中config.txt文件,两个LANGID按文件中注释所列各语言改成你想要的即可(其实我估计仅第一个相关,保险起见两个都改吧)
二、“更新程序不能执行,因为该补丁与文件不匹配”
BNUpdate.log日志记录:ERROR: unable to apply patch to file 'XXXXXX'
这个。。很遗憾没找到确切原因。。我试图调试跟踪更新程序,只是发现程序中有匹配两个标识码,不符合则报这个错,但是实在没精力跟踪这个标识码如何算出的。。
我后来重新下了个完整中文版,更新时就不报错了。但是诡异地发现。。报错的文件无论在原来的汉化版还是新的中文版的War3x.mpq文件中都不存在。。完全不知道它是如何匹配的。。
综上所述,如果在汉化版上打官方的中文版补丁,肯定会报上述第一个错误,就算通过修改LANGID避免这个错误,也许后面的第二个报错也是因为是英文汉化而非中文原版文件的原因吧。。
我是不想再追查第二个问题的确切原因了。。跟踪汇编很累的。。