


前言
首先大家要知道饥荒世界的组成。其实很简单,记住一句:区块(room)组成地形(task),地形组成世界(taskset)。cv2234967比较详细的介绍了关于这方面的内容。
注:本操作仅基于地形布局所使用
准备工作
修改之前,我们得先把存放游戏代码的文件夹解压出来。所有需要修改代码的操作都要做这个准备。
进入饥荒联机的databundles文件夹(文件路径steam/steamapps/common/Don't Starve Together/data/databundles或WeGame/rail_apps/饥荒联机版(2000004)/datadatabundles),里面是一些文件夹压缩包。

databundles文件
打开scripts压缩包,将里面的scripts文件夹解压到data文件下,然后把压缩包里的这个scripts文件夹改成其他名字即可。

我把文件夹名字改成了2
完成后我们就可以打开解压好的scripts文件夹进行修改了。不过要注意每次游戏更新后需要重新解压,把之前解压的scripts文件夹替换掉。
修改方法
例:我想地图只生成龙蝇沙漠这一片地形
进入scripts/map文件,先进入tasksets/forest文件(也就是规定地面世界生成规则的文件,如果没有其他文件编辑工具的话就用记事本)

文件代码
这里有默认地面世界生成和经典模式(就是单机原版地形)地面世界生成两个规则。通常我们玩的都是默认模式的,所以看AddTaskSet("classic", 上面的东西就够了。
有四个部分:
tasks = { 下面的就是地形名,这十个是必出地形。
numoptionaltasks = 5,下面是非必出地形,5的意思就是从这些地形里随机选择5个地形和必出地形一起组成世界。
valid_start_tasks = { 指的是出生门所在的是哪个地形,下面的"Make a pick"就是现在出生门所在的地形了。
set_pieces = { 指的是固定形式所在生成地,这里有四个,从上到下分别是复活石、虫洞、麋鹿鹅巢穴(一个池塘附近有三棵和本区域不同的树以及三个胡萝卜四棵浆果丛组合)和洞穴出口。后面规定这些固定形式会生成在哪些地形。
要改的基本就是这四个了。
复制"Badlands",(这是龙蝇沙漠这个地形的名字),把"Make a pick"换掉(也可以是其他地形)

复制粘贴
然后把下面其他地形全部删除,只留这一个地形

删除其他地形,注意别忘了把"Badland"和}之间的空行删掉
把数字5改成0,也就是不选那些地形生成了。再把valid_start_tasks 下面的地形名也改成"Badland"(不要忘了加逗号)。最后把四种奇遇的后面都加上"Badlands"这个地形名(前两个已经有了不需要再加,如果换的地形名字都没有那就都要添加)。先在最后的地形后面加逗号,打个空格再加地形。

最终应该是这样的


操作完成后,保存关闭。进入游戏创建一个地面世界,世界就是只有一个荒漠地形了!由于没有其他地形的压制,每一个区块都是分明的(那片森林地就是出生门的区域,根据代码会融合进其他地形),区块的分布和代码也完全一样。大家可以自己到tasks文件里查看。

其他地形(包括洞穴的地形)也是可以拿上来单独生成的。方法和这也完全一样。
下面全是在地面单独生成的地形

猪王桦树林地形("Speak to the king")

兔人城市地形("RabbitCity")

猴子住宅区地形("Residential")

迷宫地形("TheLabyrinth")
PS:大家如果对洞穴地形不太熟悉的话可以看看我之前发的专栏:cv1624589、cv1627603
还有另外一种更简便的生成单个地形的方法。
例:我要单独生成绿蘑菇林地形
进入map/tasks/caves文件

往下翻,找到绿蘑菇林地形("GreenForest"),将这个地形的所有区块和下面的背景区块复制

再到map/tasks/forest文件里,将"Make a pick"的区块全部换成刚才复制的绿蘑菇林区块

再进入tasksets/forest文件,只保留"Make a pick"地形,5换成0

保存关闭。进入游戏,虽然这还是"Make a pick"地形,但是生成的就是绿蘑菇林地形的东西的,与原来绿蘑菇林地形生成的是一样的。


绿蘑菇林实截
当然单个地形可以生成,多个地形也是可以的。
例:我要地面生成红蘑菇林地形,绿蘑菇林地形和蓝蘑菇林地形
还是进入tasksets/forest文件,将必出地形改成"RedForest","GreenForest","BlueForest,5变0,下面出生门地形改为"RedForest",(也可以是其他两个)。固定形式地形添加"RedForest",(可以只加一个,只要确保这些固定形式在你的地图上有生成的地方就行)


完成后生成世界看到的就是三种蘑菇林啦

已生成三色蘑菇林
大家可以自由发挥,随意搭配地形,选择自己最满意的。更多的地形可以去tasks文件夹里面找(特别是tasks/forest),绝大部分地形都可以自由搭配,除了蚁狮沙漠("Lightning Bluff")和遗迹中庭("AtriumMaze")以及其他一些特殊地形,因为它们带有特殊的标签。
我想改生成的东西该怎么弄呢?这里拿草地区块(BGGrass)当例子(就是资源很丰富的青草地)。
例:我想上面生成香蕉树和火龙果。
打开map/rooms/forest/terrain_grass文件,找到BGGrass这个区块。

草地区块
distributeprefabs=下面的字就是会生成东西。distributepercent = .275(小数点前面没东西就是0,可以加可以不加),是这个区块的比例参数,下面那些东西的数字都是和这个数字的比例,单独拿出来是没有意义的。我们在下面添加香蕉树和火龙果。

取一个适当的比例数字
完成后创建世界,就会看到草地区块上面有香蕉树和火龙果了

地图显示

草地实截
最后祝大家玩的开心!希望大家点赞、投币、收藏、分享、关注~