登录/注册

游戏知识库

官方服务器教程及游戏常见问题

SCUM如何修改自定义物资节点

SCUM
本文版权归 GssHosting 所有,未经授权禁止转载、引用或商业使用。

如何修改自定义物资节点 实现特定对象被检查后掉落的物品


本文档描述了《SCUM》中的修改自定义物资节点功能。自定义物资是通过创建和修改各种JSON文件来实现的。

熟悉JSON的基础知识是前提条件,因此如果您从未听说过JSON,只需要阅读下面说明,依据示例进行修改即可。

JSON文件在游戏启动时加载,任何后续的更改都可以通过:#ReloadLootCustomizationsAndResetSpawners 命令重新加载,以便快速测试修改内容。

ps:游戏对象并不一定需要使用节点来指定它们掉落的物品。它们可以直接引用物品,而不使用任何节点。

        游戏中不同对象掉落物品的不同方式将在 生成器预设 部分中详细说明。


首先你需要获取服务器管理员权限,在「黑白名单」「管理员列表 AdminUsers」输入 你的STEAM ID [SetGodMode] 保存即可。

参考文章: SCUM 如何设置管理员 https://gsshosting.com/knowledge/209


修改自定义物资节点步骤:

1.      导出游戏中的默认自定义物资节点,在游戏中输入指令:#ExportDefaultLootTree

执行此命令后,你将在以下文件夹中获得自定义物资节点:<Server>\SCUM\Saved\Config\WindowsServer\Loot\Nodes\Default

ItemLootTreeNodes 是游戏中所有自定义物资节点节点的根节点,会被导出到多个 JSON 文件中,每个文件包含节点的每个直接子节点的 JSON 数据。

这些子节点进一步细分了物品的类别和具体物品,形成了一个层次化的自定义物资节点结构。文件夹结构如下所示:

在你导出默认自定义物资节点之后,你还没有进行任何自定义。你只是得到了一个用于分析和修改的起点。


2.      在以下路径中创建一个名为 Override 的文件夹:

<Server>\SCUM\Saved\Config\WindowsServer\Loot\Nodes\

游戏会从 Override 文件夹中读取所有的自定义物资节点自定义设置。

Override 文件夹中创建自定义命名的json 文件,并将默认自定义物资节点的 JSON 文件复制粘贴到该文件目录中进行修改。


3.      参照默认自定义物资节点,在 Override 的文件夹中新建你的自定义物资节点-JSON文件

节点修改示例:

我们现在将完全自定义下图中绿皮垃圾桶掉落的物品作为演示。

我们的想法是让红色垃圾桶掉落饮料/食物。

饮料掉落的概率比食物更高。

当掉落饮料时,掉落的是水/啤酒,其中啤酒掉落更少;

当掉落食物时,掉落相等概率的苹果/香蕉。

为了实现上述目标,我们需要根据描述创建一个自定义物资节点的 JSON 文件。


{

      "Name": "ItemLootTreeNodes",

      "Children": [  

             {

                    "Name": "Trash",

                    "ChildrenMergeMode": "Replace",

                    "Children": [  

                           {

                                  "Name": "Drinks",

                                  "Rarity": "Abundant",

                                  "Children": [

                                         {

                                                "Name": "Water_05l",

                                                "Rarity": "Abundant"

                                         },

                                         {

                                                "Name": "Beer",

                                                "Rarity": "Rare"

                                         }

                                  ]

                           },

                           {

                                  "Name": "Food",

                                  "Rarity": "Common",

                                  "Children": [

                                         {

                                                "Name": "Apple"

                                         },

                                         {

                                                "Name": "Banana"

                                         }

                                  ]

                           }

                    ]

             }

      ]

}



{

      "名称": "物品战利品树节点",

      "子节点": [

             {

                    "名称": "垃圾",

                    "子节点合并模式": "替换",

                    "子节点": [

                           {

                                  "名称": "饮料",

                                  "稀有度": "丰富",

                                  "子节点": [

                                         {

                                                "名称": "0.5 升水",

                                                "稀有度": "丰富"

                                         },

                                         {

                                                "名称": "啤酒",

                                                "稀有度": "稀有"

                                         }

                                  ]

                           },

                           {

                                  "名称": "食物",

                                  "稀有度": "常见",

                                  "子节点": [

                                         {

                                                "名称": "苹果"

                                         },

                                         {

                                                "名称": "香蕉"

                                         }

                                  ]

                           }

                    ]

             }

      ]

}

ChildrenMergeMode 属性的作用是指导自定义物资系统如何合并具有相同 ID 的两个集合的子节点。

在默认自定义物资节点中,已经存在一个具有ID ItemLootTreeNodes.Trash 的集合,但它与我们正在创建的集合完全不同。

·"ChildrenMergeMode": "Replace", 完全替换:将默认集合的子节点完全替换为自定义集合的子节点。

·"ChildrenMergeMode": "UpdateOrAdd", 合并子节点:将子节点合并,使得结果集合中的子节点名称相同的会被更新,并且新的子节点会被添加。

上述我们为自定义集合选择了 替换"Replace",因为不会出现默认的自定义物资节点中包含的任何内容,只有水/啤酒/苹果/香蕉。


您可以使用 #ExportCurrentLootTree 命令查看实际作用的当前自定义物资节点,它会导出到命名为[Current]的文件夹中。

如果您没有任何自定义物资节点的自定义设置,那么当前自定义物资节点与默认自定义物资节点是相同的。


如何测试修改是否成功?

使用命令 #ReloadLootCustomizationsAndResetSpawners

这个命令会重新加载你放在 Override 文件夹中的自定义物资节点配置,并重置所有检查生成器的冷却时间,让你能够立即看到修改后的掉落效果。