《植物大战僵尸》自定义地图 简易教程

您所在的位置:网站首页 植物大战僵尸怎么改大小 《植物大战僵尸》自定义地图 简易教程

《植物大战僵尸》自定义地图 简易教程

2024-07-09 08:33| 来源: 网络整理| 查看: 265

如何实现一个自定义地图呢?比如这样:

可以看到图片里原本的地图是中间两行是泳池,可现在变成了下面三行全是泳池了。这个怎么做到呢?下面我们按照这个地图规则来给大家介绍,如何实现一个自定义地图并能够玩起来。

第一部分 编辑存档文件

这部分是整个里面比较难的一部分,因为尚未学过编程基本知识的同学们可能不太好理解一些定义。我们这里尽量不介绍任何的术语词汇,照着做就可以做。

注意,本文按照游戏在电脑上为基础介绍内容。所有下面介绍的东西均为电脑程序,请勿在手机的应用商店上下载和搜索这些东西。

第一步 下载 WinHex 软件

这里我们介绍一个软件,叫做 WinHex。软件长这样:

WinHex 软件网上有下载,虽然是付费的,但是也有免费的版本。请下载一个并安装到你的电脑上。安装软件的细节就不介绍了,因为基本上下载好之后,就是绿色版软件,下载下来一般都是压缩包,解压之后直接就可以打开。

第二步 找到你的游戏存档文件

为了能够让我们的程序能够直接使用这样的地图,我们先要知道一点的是,整个程序会把基本的地图数据保存至存档文件里。存档文件是以 dat 结尾的文件,它保存在你的游戏程序的相关位置下。

XP 系统以及之前的版本:游戏的程序文件同一个目录下就有一个叫 userdata 的文件夹,里面就保存了游戏的存档文件;

其它的 Windows 系统版本:路径位于 C 盘:C:\ProgramData\PopCap Games\PlantsVsZombies\userdata。

原版的游戏版本里,我们用的是 13 号存档,这个存档是生存模式(无尽)的存档。所谓的存档编号,是你打开 userdata 文件夹之后看到的类似 game1_xx.dat 的文件名的这个 xx 部分。如果没有的话,你可以先打开无尽模式,先选卡之后,开始游戏。开始游戏后,僵尸会有一段时间之后才会出来。我们这段时间就不要继续玩下去了,因为存档还没有修改。这个时候(僵尸还没有出现之前)就退出游戏,并选择保存游戏进度。

然后你就会发现,userdata 文件夹下多了一个叫 game1_13.dat 的文件。这个文件就是我们现在要用到的无尽存档。

第三步 把 game1_13.dat 拖到 WinHex 里打开

这一步就直接用 WinHex 打开。打开方式有很多,比如把存档文件直接拖进程序里,也可以在 WinHex 里选择打开文件,然后找到 game1_13.dat 文件,然后确定。

如果要想 WinHex 是中文版的话,可以下载之后,选择上面菜单栏里 Help 下的 Settings,选择中文就可以了。

打开之后,就跟前面那个图片里显示的内容一致了。下面我们需要修改这个存档。

第四步 编辑存档文件的地图部分

我们找到左侧 Offset(偏移量)位于 00000010 到 000000E0 期间的这些数据。这些我们地图的数据。至于为什么是这些,这个是游戏规定的,这个我们记住就可以了。

另外,我这里介绍的是原版的存档,它们位于这里。如果你玩的是别的改版,或者是新版的 PVZ,可能地图信息就不是这一段了。这个可能你需要网上搜一下。我这里说的是原版的存档的情况。

选中的这些数据,是一组四个两位数构成,其中第一个数是 01 到 03 的数据,而剩下三个数都是 00。我们只改前面是 01 到 03 的这些数。这个 01 到 03 分别对应了如下信息:

01:普通的地面

02:无草皮的地面

03:水

这个数据对应的是一格一格的数据,而并非是一整行或一整列的数据。可以数一下这一段数据里的非 00 的数据,刚好是 54 个数,对应到游戏地图一共 6 行、每行 9 个格子构成的地图完整地形。

请注意顺序。从 00000010 行开始的第 8 列开始,每读一个数,代表的是从左上角开始,从上往下、从左往右的数据。比如第一个数据的 01 对应的是整个游戏地图的左上角的第一个格子。然后第二个数对应的是整个地图第二排的左起第一格。

我们按照水陆对半的地图介绍,那么地图修改应该改成这样:

是的,连续重复 9 组的 01、01、01、03、03、03,因为这样对应的才是水陆对半的地图。

改变完成后,可以按下 Ctrl + S 保存文件,也可以在上面的菜单栏里第一列找到保存。宣告第一阶段的修改完成。

第五步 编辑存档文件的出怪部分

当然了,地图修改完成后,游戏还需要改变出怪类型。我们找到 Offset 位于 00000480 行第 8 列的地方开始:

我们选择的这部分是我们需要修改的部分。注意这一段数据表示出怪到底是陆地僵尸还是水路特有的僵尸。和刚才的地图数据结构差不多,也是四个两位数一组,第一个数表示出怪信息,后面三个保持 00 即可。改变的数据可以是 00 到 02 里的数据。其中:

00:这一行不出怪

01:这一行出陆地僵尸

02:这一行出水路特有的僵尸

请看到这一段。这一段我们要按照游戏地图顺序从上到下修改,水陆对半的地图出怪是上面三行是陆地僵尸,后面三行是水路特有僵尸,因此我们改成这样才行:

可以看到,修改后的数据依次是 01、01、01、02、02、02。这是显然的。

好了,存档修改完成。记得保存。保存后,WinHex 就可以关掉了。

第二部分 编辑游戏地图(背景)第一步 下载打包解包工具

当然,我们是自己改变的数据,因此背景图片不可能不改吧。这里我们需要使用一个程序工具来解锁编辑游戏的背景图片。这个程序叫“植物大战僵尸 辅助工具 V3.1”,长这样。

它自带一些修改器的功能,不过我们一个都用不上。我们这里只用下面的打包和解包模式。这个软件可以在贴吧里找到,你可以去找一个下载下来。下载下来之后我们需要解包 pak 文件。

第二步 解包 pak 文件

我们找到游戏目录下,有一个叫 main.pak 文件。

这个文件是游戏的各个素材的加密压缩包文件。这个地方我们需要解包这个文件,才能查看里面的东西。我们使用刚才下载的软件,选择解压模式。然后在“PAK 目录”里输入和选择你接下来把各个素材保存到哪个文件夹里,然后“PAK 文件”里输入和选择这个 pak 文件的路径。

选择好之后,我给一个参考结果:

这个就是最终结果,你可以按照你电脑的样子灵活变动这里的结果。接着点击执行即可。一会儿,程序会弹出“解包 PAK 文件完成”的内容,这样就表示你解包操作成功了。然后我们打开刚才选择的各种素材的保存文件夹,就可以找到各个素材的具体内容。

第三步 自由发挥地图背景图片

我们打开文件夹,然后里面是使用若干文件夹列举的素材。我们用到的背景图片使用的是 images 文件夹。打开 images 文件夹,我们可以找到 background3.jpg 文件:

请注意这个图片的中间是白色的,因为你在玩游戏的时候可以发现,泳池在游戏期间是“晃动”的,水是在里面有动态效果。不过我们自定义地图可能不再需要这样的效果了,因为我们改变地图之后,水不一定在这里了。

我们使用 PhotoShop、画图工具等等你喜欢的图片编辑工具来修改这个图片。这里需要你至少会画图工具来编辑一个图片。我们把它改成大概可以放三行陆地三行泳池的效果就可以了。

改成这样就可以了。这个图片是我自己用画图工具做的,很多地方都有瑕疵(比如地图第一列左边明显有修改痕迹),但是不妨事我们玩游戏,因为游戏地图的泳池和草皮已经够我们使用了。然后,把这个编辑的新文件覆盖掉原来的 background3.jpg 文件。注意是覆盖,要完全把原来的泳池地图给替换掉。你的编辑的图片甚至必须是 jpg 格式的,一定不能是 png 等别的格式,否则不生效,因为游戏程序只读取 jpg 文件。

第四步 消除泳池里的水晃动特效

编辑完成后,我们还需要去除游戏自带的晃动水的特效。如果不去掉的话,你玩游戏即使地图成功替换了,但是你还是会发现水的晃动特效仍然在地图原本的中间两行地面上,而且特效会盖掉你原来地图中间两行的图片,因此这样的特效我们现在不需要,因此我们要消去它们。

仍在 images 文件夹下,在后面有一系列以 pool 开头的图片文件:

这些文件是我们要替换过去的文件。请注意,这是我修改后的样子,你需要把这些图改成我上面这样。请注意,特别是 pool_shading_.jpg 这个文件,它原本是自带波光粼粼的效果的图片,这里我们要给图片改成全黑的。

最后要注意一下,在修改图片的时候,不管你怎么改,图片原本的尺寸大小都不要改变。你只需要在基础上,涂黑的涂黑,涂白的涂白即可。编辑完成后,图片和上一步差不多,也得覆盖掉原来的图片。

第五步 重新打包文件

刚才我们修改完成了图片后,我们得重新打包回去,然后程序才可以识别。于是我们现在仍然使用刚才的程序,这次选择打包模式而不是解包模式了。这次,我们要把这个文件夹作为基础文件夹,然后生成 pak 文件。文件路径随便选一个地方就行。

参考结果是这样的。然后按执行即可。然后 pak 文件就会在指定的路径下保存下来。和刚才一致,如果看到弹窗写的是“打包完成”的字样就说明保存成功了。

至此,整个 pak 文件也编辑完成了。

第六步 替换掉原来游戏目录下的 pak 文件

下面我们把刚才的 pak 文件直接替换掉原本的 main.pak 文件。注意这里是直接替换,如果你觉得可能会不成功的话,可以改掉原来游戏目录下的 main.pak,随便改个名字,这样游戏就识别不了了,你再把刚才产生的 main.pak 文件给粘贴进目录下即可。

最后,启动游戏。期待结果成功吧!

如果你看到了这样的结果,那么恭喜你,自定义地图完成!

第三部分 疑问解答

前面两个部分我们完成了地图的自定义,下面我们介绍一些可能你会遇到或者会想到的问题。

一、既然地图按格子为单位,那么同一行同时有水和草皮会如何?

实际上,游戏可以做到这样的效果,不过要看情况。我们刚才说到,地图数据修改和出怪信息是分开的,如果出怪是 01(出陆地僵尸)的话,那么普通的那几种僵尸(普通、旗帜、路障、铁桶和纱窗门僵尸)遇到水会自动下水,但其它陆地僵尸遇到水则直接当成陆地一样直接走过去。正是因为这个游戏有这类 bug,因此我们不建议你这样编辑地图信息:请尽量保持单行的所有格子的类型一致。

二、能否全地图水路?

可以,但也有 bug。游戏机制导致不建议你这么编辑。如果所有陆地都改成水,并且六行都改成出水路特有僵尸的话,正常的地方都挺正常的,确实六路都会正常出水路特有僵尸。但 bug 会使得最后一行(最下面这一行)仍然会出陆地僵尸。换句话说,陆地僵尸仍会从最后一行出现,并且按照刚才的 bug 一样,那几种僵尸会有下水效果,但其它僵尸会自动按陆地一样直接走过这一行的每一个格子。而且,它们甚至还不会伤害你的植物。但我们强烈不建议你这么编辑地图数据。

三、可否修改僵尸的具体出现种类?

对不起,不行。因为每一轮的僵尸是程序随机生成的,因此你无法从存档层面修改它们。即使你能够找到它们的具体数据位置,使用 WinHex 改掉,但这 2 flags 通过后,僵尸又会随机生成新的结果,因此无法达到你想要的长期效果。

四、能否修改僵尸和植物血量?

呃……我们讲的是怎么自定义地图,这些都不在我这个文章的讨论范畴。实际上也做不到,你甚至也不能更改每一次选卡后能够打多少 flags 这类信息。因为它们是程序控制的,不是存档控制的。

五、如果我把泳池地图替换成本来就只有五行的那些地图,会怎样?

我们刚才的操作是基于六行的地图修改的。如果你变更游戏地图的背景图片的话,可能植物种植就不会按照我们预期的放在植物的对应格子上去了。如果我们要模拟出那样的效果(只有五行的地图,但用泳池的地图来改),我们需要保留最后一行是无草皮的状态——按照刚才无草皮的数据对应地图和出怪信息改掉它们,然后图片同步改成最后一行无草皮即可。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3