Skip to content

制作自定义转换

游戏中有几种容器类型是转换器,例如 酿造桶晾晒架熟成架。它们不会腐烂,而是将其内容物转换为产品。

然而,它们的产品都是硬编码的。您可以通过使用 CWL Trait CustomConverter 和一份转换规则文件将您的容器转变为自定义转换器。

例如,这一行是从 brewery(酿造桶)复制的:

trait 单元格有5个参数,分别是 CustomConverterwidth(宽度)、height(高度)、inventory style(库存样式)、inventory ID(库存ID)、conversion rule ID(转换规则ID)。当您将第5个参数 conversion rule ID 留空时,将使用物品ID。

定义转换规则

转换规则是一个简单的JSON文件,位于您的 LangMod/**/Data/ 文件夹中,文件名为 converter_ID.json,此ID是转换规则的独特ID,例如 converter_fruit_barrel.json

json
{
    "DecaySpeed": 500,
    "IdMsg": "driedFood",
    "Conversions": {
        "origin:fruit": [
            {
                "Id": "dried_fruit",
                "Num": 1,
                "PriceAdd": "base * 0.25"
            }
        ],
        "grape": [
            {
                "Id": "raisin",
                "Num": 5,
                "PriceAdd": "base * 0.06 + 5"
            }
        ],
        "tomato": [
            {
                "Id": "dried_fruit",
                "Num": 1,
                "PriceAdd": "0"
            }
        ]
    }
}

DecaySpeed(腐烂速度)是转换速度,500 是游戏中 酿造桶晾晒架熟成架 的默认值。

IdMsg 是转换完成时显示的 LangGame 文本ID,您可以在 LangGame 表中找到相关条目,或者在 Game 表中定义自己的短语。

Conversions 是一组转换规则,每个条目应与初始物品的ID匹配,或者使用 origin:originID 来包含所有具有相同 _origin 的变体。您还可以覆盖之前包含的特定物品,例如在 origin:fruit 中覆盖 grape 条目。

每个转换条目都有一个产品数组,而每个产品包含来自 StockItem 的相同字段,默认字段可以省略。PriceAdd 字段是一个数学表达式,用于计算添加到产品上的额外价格,其中 base 是初始物品的价格。

测试转换规则

您可以在游戏运行时编辑转换规则。保存更改后,使用控制台命令 cwl.converter.reload 重新加载所有转换规则以便测试。

API

CustomConverter

This project is an unofficial documentation site and is not affiliated with, endorsed by, or associated with Elin or Lafrontier / Noa. All trademarks are the property of their respective owners.