内容发布更新时间 : 2024/11/11 3:22:44星期一 下面是文章的全部内容请认真阅读。
图二 – MPQ Viewer列出的Patch_D2.MPQ的文件
在文件名前的路径表示它在MPQ文件中存放的位置,与Windows中目录和文件的存放形式一样。表二中说明只有2种类型txt文件:数据库文件以及描述文件。只有数据库文件对我们有用而且它们都存放在:data\\global\\excel。找到Misc.txt并保存。然后就可以关闭MPQ Viewer了。
图三 – 用D2EXCEL打开的Misc.txt
用D2EXCEL打开Misc.txt,出现图三所示界面。在打开的文件中你会发现每一行就是一条记录,而每一列是一个字段,这和数据库没有什么区别。我们想要调整Key的数量就需要调整Maxstock段的值。
首先点选右下角的“Lock First Column?”。(注意:软件中的这个单词写错了-_-a)这样,记录的Name段就被锁定了,这样我们能够轻易在对应“Skeleton Key”行的“Maxstock”段找到我们需要的内容。(图三用笔圈住的部分)我们看见这个位置的纪录为12,这是原始设定。现在,只需要将数值改为50,并选择“Save txt”(存储为TXT文件)即可。Load bin以及Save Bin的功能尚未实现。
我们是怎么知道“Skeleton Key”就是我们要修改的部分呢?这是txt文件修改部分最难的内容,这里显示的name并不是你在游戏里所见到的名字。在txt文件里,name仅仅是一个字段名,用来指向在tbl文件中的名字,而tbl文件中的内容才是游戏里最终显示的名字。我们将在第4章的练习里详细说明。
你很快会发现,这样的做法可用于所有有数量可被放在一起的物品。比如:让箭再多一点或者让一个Tome里有40个Scroll。你只需要在该物品的“Maxstock”列修改数量就可以了。但是注意,这个数量不能超过511。
如何使它工作?
现在,我们已经做好了修改,那么怎么运行游戏呢?我们修改了txt文件,但是游戏运行时却不读取这些文件。当游戏运行时,它会调用经过预先编译的,与txt文件内容相同,但是经过压缩成为二进制码的bin文件来获取数据。我们之前说过,D2EXCEL不支持bin文件。我们需要用特殊的游戏方式来为已经过修改的txt文件创建bin文件。这个方法就是命令参数:“-direct -txt”。每次用这个参数运行游戏,游戏会读取所有的txt文件,不管它已经被打包为MPQ或者是原始的txt文件,并且生成整套bin文件。在109x系列版本中你会得到大约70个bin文件,在110中则有90个左右。
在MPQ Viewer中我们会看到txt和bin文件是如何以data\\global\\excel路径在mpq压缩包中存放的。我们必须在游戏目录创建相同的目录结构。首先,在游戏目录(Diablo II)下创建data目录,接着在data目录中创建global目录,在global目录下创建excel目录。返回游戏目录(diablo II),按住右键拖动game.exe,然后选择创建快捷方式。接下来,右键单击快捷方式 game.exe,选择“属性”。
图四 – 创建-direct -txt模式快捷方式
图四所示即为参数的位置及写法。注意,如果在路径中有空格,那么整个路径包括文件一定要用引号括起。然后在最后加入命令参数“-direct -txt”。在参数与文件名之间以及参数与参数之间都有空格。保存快捷方式。
拷贝修改后的“Misc.txt”到刚才创建的“data\\global\\excel”目录。用新创建的快捷方式运行游戏并且用测试用人物进入游戏进行测试。每当你测试一个新的MOD,尽量使用测试人物进行游戏,这样即便出现问题也不会对你造成很大影响。在游戏里你可以买些钥匙来测试是否钥匙的存放数量已经改变。
如果你在生成bin文件后对txt文件又做了修改,那么在运行快捷方式前最好删除在“data\\global\\excel”目录下的bin文件。这样可以确保bin文件和最新的txt文件的一致性。因为在bin文件被创建时,一个文件中的部分内容经常会被其他文件所调用。补充最重要的一点:因为很多时候这些文件之间具有关联性,建议在打包时选择所有文件。个人不推荐作为标准打包方式。请参照练习2WinMPQ的用法。
★ 现在你需要决定你的MOD将打包为MPQ文件或是使用“-direct -txt”方式运行。
如果要将文件打包,那么你需要将修改后的文件封装入Patch_D2.mpq,并且将其复制到游戏目录,然后用一般方式运行游戏即可。并且,如果你想和使用MAC电脑的朋友分享你的MOD,你只能是用这种方式,但是不幸的是,它只在109b或109d中起作用,而在110beta中不能用这种方法(实际上还是可以用的)。第二种方式不需要打包为MPQ文件但是对于玩家来说,他们必须创建整一套文件存放路径。 ★ 接下来我们要做的是将修改后的txt文件以及对应生成的bin文件放入MPQ压缩包
中。进入“data\\global\\excel”目录找到“misc.bin”并且将它复制到你工作的文件夹。
使用MPQ2K 操作MPQ压缩包
在运行MPQ2K之前我们需要了解一些相关知识。MPQ2K不能在windows的图形界面下使用。如果你在windows界面运行它,你会看到一个dos窗口出现并随即关闭。你要做的是用MPQ2K的命令写一个脚本以及一个批处理文件来运行它。因为这两个文件都是标准的text文件,你可以用Notepad(记事本)来打开它们。
我们先从脚本文件开始。MPQ2K最重要的命令是打开压缩包、添加文件至压缩包以及关闭压缩包。用记事本创建MPQLoad,txt并写入以下四行内容。
O patch_D2.mpq
a misc.txt data\\global\\excel\\misc.txt a misc.bin data\\global\\excel\\misc.bin C patch_D2.mpq
注:O就是Open的缩写,a是Add,C是Close。
确定路径和上面内容一样使用的是反斜线。
打开和关闭压缩包的命令一定要是大写字母。小写字母“o”用于使用只读方式打开压缩包,此时你不能添加文件。添加文件命令也大小写之分,不过它们唯一的区别是小写的添加命令会压缩所要添加的文件,这有利于减小MPQ压缩包的容量。 现在要创建批处理文件。你只需要用记事本写一行内容并存为RunMPQ2K.bat即可。你需要确认在存储窗口中的“保存类型”为“所有文件”,然后在“文件名”处输入完全的文件名“RunMPQ2K.bat”。
mpq2k s MPQLoad.txt
现在已经可以打包了。你必须确认“patch_D2.mpq”,你修改过的txt文件,对应的bn文件,脚本文件,批处理文件以及MPQ2K所必需的4个文件(mpq2k.exe, staredit.exe, storm.dll, lmpqapi.dll)在同一目录下。双击批处理文件“RunMPQ2K.bat”然后你会看到由DOS窗口出现并关闭,此时,新的文件已经添加入“Patch_D2.mpq”。
如果你想看看它的工作记录,可以在批处理文件中写入如下内容。 @echo off
mpq2k s MPQLoad.txt > MPQLoad_Log.txt type MPQLoad_Log.txt | more pause
这个批处理中生成的文件“MPQ2Kload.txt”可以被记事本打开,并且你会了解MPQ2K是否正常运作。
图五 – 批处理文件的调用结果
最好再确认一次你已经将原始的“Patch_D2.MPQ”备份好了,否则你将不能进行标准游戏,而且,在MOD修改失败并造成无法运行游戏时,你还能够恢复。现在,将修改后的“Patch_D2.MPQ”复制到游戏目录并覆盖,然后用一般方式运行游戏,不要用“-direct -txt”命令。玩一会儿,看是否有问题,并且测试在一格空间能不能放多于12个钥匙。如果成功,那么恭喜你。你的第一个暗黑2MOD制作完毕。
练习 #2 – 贩卖的物品
这项练习最初是用于109b和109d的。在110版,可以买到魔法瓶。你可以从这个练习中发现110是如何做到这点的。而且,对于购买其他药水,宝石,珠宝,符石以及各种的装备都可以用这种方式来实现。Vendor这一字段在所有版本中通用。
在上一个联系中你学会了如何提取文件,编辑txt数据库,用“-direct -txt”命令模式调用游戏以及将文件加入MPQ压缩包。在这一节,我们回到“Misc.txt”并且学习如何让NPC卖其他的物品。方法是一样的,我们只需要在不同的记录中修改。
打开Misc.txt并找到“healing potion”和“mana potion”那几行。然后水平滚动,找到它们所在的Code段。Name栏中的名字和它在游戏中显示的名字并不一样。比如说:“Strong Healing Potion”对应游戏里的“Greater Healing Potion”, 而“Greater Healing Potion”对应的实际上是游戏里的“Super Healing Potion”。
图六 - Misc.txt药水的位置