交易列表

交易列表定义了实体在交易时的各种设定(如村民、流浪商人等)
交易列表文件放置在行为包根目录下的trading文件夹内。在你制作时,也可以不一锭要放在该目录内,只要处于行为包根目录里即可。
因为交易列表不同于实体生成、特征、渲染控制器等,这些要么是与主体互相绑定,或者单一绑定主体。但交易列表是在实体行为的组件中绑定的,且绑定方式不是用ID,而是用文件路径方式,因此只要放置在行为包内就行。

制作

村民的交易分为多个层级。首先只解锁第一层级。当交易几次以后,会有一定几率解锁下一层级。如此反复,直到所有层级解锁完毕

格式

旧格式

  • tiers:(数组)储存该交易表中的所有交易层级。从上到下层级逐渐增高。
    • (对象)一层交易
      • trades:(数组)该层中具有的所有交易。(对象)一个交易
        • wants:(数组)村民想要的物品。项数应小于等于 2,超出的物品会被无视。
          • (对象)一个物品
            • item:(字符串)物品 ID,如果有数据值,使用冒号分割。
            • quantity:(数字或范围)物品数量。
          • gives:(数组)村民给予的物品。会从中随机抽取。
          • (对象)一个物品
            • item:(字符串)物品 ID,如果有数据值,使用冒号分割。
            • quantity:(数字或范围)物品数量。
            • functions:(数组)交易表函数。
              • (对象)一个函数
                • function:(字符串)使用的函数。
                • 其他参数。

新版格式

  • tiers:(数组)储存该交易表中的所有交易层级。从上到下层级逐渐增高。
    • (对象)一层交易
      • total_exp_required:(数字)不明。* groups:(数组)不明。
        • (对象)
          • total_exp_required:(数字)不明。* trades:(数组)该层中具有的所有交易。
            • (对象)一个交易
              • wants:(数组)村民想要的物品。项数应小于等于 2,超出的物品会被无视。
                • (对象)一个物品
                  • item:(字符串)物品 ID,如果有数据值,使用冒号分割。
                  • quantity:(数字或范围)物品数量。
              • gives:(数组)村民给予的物品。会从中随机抽取。
                • (对象)一个物品
                  • item:(字符串)物品 ID,如果有数据值,使用冒号分割。
                  • quantity:(数字或范围)物品数量。
                  • functions:(数组)交易表函数。
                    • (对象)一个函数
                      • function:(字符串)使用的函数。
                      • 其他参数。
              • trader_exp:(数字)村民通过这个交易所能获得的经验。
              • max_uses:(数字)该交易短时间内最多使用次数。
              • reward_exp:(布尔)该交易是否会给玩家奖励经验。

示例:

{
    "tiers": [
        {
            // 第一层交易
            "trades": [
                {
                    // 第一层交易的第一个交易:
                    "wants": [
                        // 实体需要物品:
                        {
                            // 6 条鱼。
                            "item": "minecraft:fish",
                            "quantity": 6
                        },
                        {
                            // 1 个绿宝石。
                            "item": "minecraft:emerald",
                            "quantity": 1
                        }
                    ],
                    "gives": [
                        // 实体给出物品:
                        {
                            // 6 条熟鱼。
                            "item": "minecraft:cooked_fish",
                            "quantity": 6
                        }
                    ]
                },
                {
                    // 第一层交易的第二个交易:
                    "wants": [
                        // 该交易接受:
                        {
                            // 15-20 根线,具体数量由游戏随机生成。
                            "item": "minecraft:string",
                            "quantity": {
                                "min": 15,
                                "max": 20
                            }
                        }
                    ],
                    "gives": [
                        // 该交易给出:
                        {
                            // 1 个绿宝石。
                            "item": "minecraft:emerald",
                            "quantity": 1
                        }
                    ]
                }
            ]
        },
        {
            // 第二层交易
            "trades": [
                {
                    // 第二层交易的第一个交易
                    "wants": [
                        // 该交易接受:
                        {
                            // 7-8 个绿宝石,具体数量由游戏随机生成。
                            "item": "minecraft:emerald",
                            "quantity": {
                                "min": 7,
                                "max": 8
                            }
                        }
                    ],
                    "gives": [
                        // 该交易给出:
                        {
                            // 1 个用相当于 5-19 级经验附魔过的钓鱼杆。具体用几级经验由游戏随机决定。
                            "item": "minecraft:fishing_rod",
                            "quantity": 1,
                            "functions": [
                                {
                                    "function": "enchant_with_levels",
                                    "treasure": false,
                                    "levels": {
                                        "min": 5,
                                        "max": 19
                                    }
                                }
                            ]
                        }
                    ]
                }
            ]
        }
    ]
}

绑定

打开某个方块或实体的行为文件
在组件或组件组内新增“minecraft:trade_table”组件

解释

描述类型默认值可选值
display_name触屏靠近时按钮名字(可在lang文件内指定)字符串交易所有字符
table交易列表文件路径字符串null所有字符
conver_trades_economy转换贸易与经济布尔truetrue或false

函数

*请前往>API文档>其它文档>交易列表 查看