交易列表
交易列表定义了实体在交易时的各种设定(如村民、流浪商人等)
交易列表文件放置在行为包根目录下的trading文件夹内。在你制作时,也可以不一锭要放在该目录内,只要处于行为包根目录里即可。
因为交易列表不同于实体生成、特征、渲染控制器等,这些要么是与主体互相绑定,或者单一绑定主体。但交易列表是在实体行为的组件中绑定的,且绑定方式不是用ID,而是用文件路径方式,因此只要放置在行为包内就行。
制作
村民的交易分为多个层级。首先只解锁第一层级。当交易几次以后,会有一定几率解锁下一层级。如此反复,直到所有层级解锁完毕
格式
旧格式
- tiers:(数组)储存该交易表中的所有交易层级。从上到下层级逐渐增高。
- (对象)一层交易
- trades:(数组)该层中具有的所有交易。(对象)一个交易
- wants:(数组)村民想要的物品。项数应小于等于 2,超出的物品会被无视。
- (对象)一个物品
- item:(字符串)物品 ID,如果有数据值,使用冒号分割。
- quantity:(数字或范围)物品数量。
- gives:(数组)村民给予的物品。会从中随机抽取。
- (对象)一个物品
- item:(字符串)物品 ID,如果有数据值,使用冒号分割。
- quantity:(数字或范围)物品数量。
- functions:(数组)交易表函数。
- (对象)一个函数
- function:(字符串)使用的函数。
- 其他参数。
- (对象)一个函数
- (对象)一个物品
- wants:(数组)村民想要的物品。项数应小于等于 2,超出的物品会被无视。
- trades:(数组)该层中具有的所有交易。(对象)一个交易
- (对象)一层交易
新版格式
- 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:(布尔)该交易是否会给玩家奖励经验。
- wants:(数组)村民想要的物品。项数应小于等于 2,超出的物品会被无视。
- (对象)一个交易
- total_exp_required:(数字)不明。* trades:(数组)该层中具有的所有交易。
- (对象)
- total_exp_required:(数字)不明。* groups:(数组)不明。
- (对象)一层交易
示例:
{
"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 | 转换贸易与经济 | 布尔 | true | true或false |
函数
*请前往>API文档>其它文档>交易列表 查看