- 致编者:请牢记我们的域名wiki.mcbe-dev.net!
- 致编者:欢迎加入本Wiki的官方交流QQ群或Discord服务器!
- 基岩版1.19.31现已发布!(了解更多)
- Inner Core现已支持Xbox模组联机!(了解更多)
- 如果您是第一次来到本Wiki,欢迎注册一个账户
- 点击顶部的“编辑”或“编辑源代码”按钮即可编辑当前页面
- 请知悉:在不登录时也可以编辑和新建页面,但是您当前的IP地址会记录在编辑历史中
手册:交易
From Minecraft基岩版开发Wiki
该页面的编辑正在进行中。 请帮助我们扩充或改进这篇文章。 |
引言[edit]
制作一个可以交易的实体需要 minecraft:trade_table
或 minecraft:economy_trade_table
组件。它们都可以通过给定的路径打开一个交易UI。
在开始这些前,我们需要已经拥有的任意一个实体,并在它的JSON中进行操作。
开始[edit]
下面所提到的所有功能也可以译作函数。
明确交易表[edit]
主条目:手册:制作附加包/交易表
交易表是 JSON 格式的文件,用于定义实体的交易规则,它易与战利品表混淆,其同样在 行为包根目录下 。
如果你需要继续查看交易表的内容,请先学习战利品表的内容。
战利品和交易表都具有类似的相同功能集。虽然大多数都适用于这两种类型,但有些只在特定类型中工作。一般来说,战利品/交易表是有限制的,例如:
交易表和战利品表中的物品不能添加
can_place_on
和 can_destroy
标签。
了解交易表功能[edit]
附魔标签[edit]
下面这些可选的标签允许您为物品设置独特的附魔参数。
名称 | 类型 | 参数 | 介绍 |
---|---|---|---|
enchant_book_for_trading | 仅限交易表 | base_cost ,base_random_cost ,per_level_cost ,per_level_random_cost |
此功能允许为生物出售的物品附魔为一本书的附魔。现在,这些参数不会影响收到的附魔,给出的默认值是强制规定的。或许将来,您将能够调整这些值,以来帮助缩小此功能产生的附魔和附魔等级。 |
enchant_random_gear | 通用 | chance |
使用与附魔装备香草生物生成时相同的算法对物品进行附魔。采用 chance 修饰符来操作算法。请注意,1.0 的 chance 修正并不意味着装备有 100% 的几率被附魔。相反,几率会根据难度进行修改。在和平和轻松的困难中,无论如何,几率永远是 0%。在困难难度下,1.0 的 chance 将是 100%,但几率大约是普通难度的 2/3。增加到 chance 高于 1.0 的数字有助于绕过普通难度的几率降低。例如,设置为 chance 2.0 将始终在普通和困难难度下为物品附魔。 |
enchant_randomly | 通用 | boolean |
生成与物品兼容的随机附魔。支持可选宝藏附魔 boolean (真/假),通过此选项打开和关闭宝藏附魔。宝藏附魔是无法通过附魔表获得的附魔,包括冰霜行者、修补、灵魂速度、束缚诅咒和消失诅咒。 |
enchant_with_levels | 通用 | treasure ,levels |
使用通过 levels 参数定义的最小和最大 XP 等级应用附魔,就好像它被附魔一样。treasure(真/假)将允许使用纯宝藏附魔。宝藏附魔是无法通过附魔表获得的附魔,包括冰霜行者、修补、灵魂速度、束缚诅咒和消失诅咒。 |
specific_enchants | 通用 | enchants |
此功能允许您在物品上设置特定附魔的列表。它还允许您对游戏中通常无法附魔的物品施加附魔。 |
展示:
//接下来的所有JSON,没有特殊声明都应当在 行为包/trades 的一个JSON文件中,大部分范例都应该写在 wants 下,没有特殊声明的情况下。
//enchant_book_for_trading
{
"type": "item",
"name": "minecraft:book"
"quantity": 1,
"functions": [
{
"function": "enchant_book_for_trading",
"base_cost": 2,
"base_random_cost": 5,
"per_level_random_cost": 10,
"per_level_cost": 3
}
]
}
//enchant_random_gear
{
"type": "item",
"name": "minecraft:chainmail_boots",
"weight": 1,
"functions": [
{
"function": "enchant_random_gear",
"chance": 0.25
}
]
}
//enchant_randomly
{
"type": "item",
"name": "minecraft:leather_helmet",
"weight": 1,//权重。它是选择此条目的几率,与此“条目”数组中的其他条目相比,权重越高,选择条目的机会就越大。
"functions": [
{
"function": "enchant_randomly",
"treasure": true
}
]
}
//enchant_with_levels
{
"type": "item",
"name": "minecraft:diamond_sword",
"weight": 1,
"functions": [
{
"function": "enchant_with_levels",
"treasure": true,
"levels": {
"min": 20,
"max": 39
}
}
]
}
//specific_enchants
{
"type": "item",
"name": "minecraft:stick",
"weight": 1,
"functions": [
{
"function": "specific_enchants",
"enchants": [
"knockback",
"fire_aspect"
]
}
]
}
//您还可以将附魔定义为对象,以专门定义附魔级别。最大附魔等级是强制规定的,无法覆盖。如下
{
"type": "item",
"name": "minecraft:stick",
"weight": 1,
"functions": [
{
"function": "specific_enchants",
"enchants": [
{
"id": "knockback",
"level": 1
},
{
"id": "unbreaking",
"level": 3
}
]
}
]
}
返回物品[edit]
以下函数集允许您以不同的方式修改结果,例如设置返回的项目数量、设置其数据值,甚至设置项目的名称和lore(类似于药水名称下面跟着的灰色字体)。
注:仅限战利品表的不予介绍
名称 | 类型 | 参数 | 介绍 |
---|---|---|---|
looting_enchant | 仅限战利品表 | ||
random_aux_value | 通用 | values |
与 random_block_state 类似,允许您限制物品的数据值在限定范围内 |
random_block_state | 通用 | block_state ,values |
允许您限制方块的数据值在限定范围内 |
random_dye | 通用 | values |
允许您限制皮革物品的颜色值在限定范围内 |
展示:
//looting_enchant
{
"type": "item",
"name": "minecraft:stick",
"weight": 1,
"functions": [
{
"function": "looting_enchant",
"count": {
"min": 0,
"max": 1
}
}
]
}
//random_aux_value
{
"type": "item",
"name": "minecraft:dye",
"weight": 1,
"functions": [
{
"function": "random_aux_value",
"values": {
"min": 0,
"max": 15
}
}
]
}
//random_block_state
{
"type": "item",
"name": "minecraft:stone",
"weight": 1,
"functions": [
{
"function": "random_block_state",
"block_state": "stone_type",
"values": {
"min": 0,
"max": 5
}
}
]
}
set开头的续表:
名称 | 类型 | 参数 | 介绍 |
---|---|---|---|
set_actor_id | 通用 | id |
此功能仅适用于生物蛋(指id为spawn_egg,而不是像id为allay_spawn_egg),用于设置该生物蛋生成实体 的ID。在省略 id 参数的情况下,直接给出spawn_egg |
set_banner_details | 通用 | type |
此功能仅适用于 旗帜 。其中,type 参数目前仅能为1,在type为1的情况下生成掠夺者旗帜 |
set_book_contents | 通用 | author ,title ,pages |
此功能允许您像编写 书与笔 的物品tag标签一样,设置 书与笔 的tag标签。因此此功能仅适用于 书与笔 |
set_count | 通用 | count |
此功能允许您设置返回物品的数量,其中 count 参数可以是准确的整数,也可以是一个范围(像展示的第2种情况) |
set_damage | 通用 | damage |
此功能允许您设置返回物品的损坏程度,像在 命令 中一样,damage 其实是返回物品的剩余耐久度占总耐久的百分比(例如,1.0就是不损坏,0.0就是完全损坏) |
set_data | 通用 | data |
此功能允许您定义返回物品的数据值(当物品为方块时同样适用),data 参数即为准确数据值 |
set_data_from_color_index | 通用(在交易表中无效) | 无值 | |
set_lore | 通用 | lore (暂不支持Rawtext) |
此功能允许您设置物品的 lore ,像编写任何物品的 tag 标签中的lore一样,一个物品可以有多个 lore ,每个 lore 在游戏中皆有一行 |
set_name | 通用 | name (暂不支持Rawtext) |
此功能允许您设置项目的名称。 |
展示
//set_actor_id
{
"type": "item",
"name": "minecraft:stone",
"weight": 1,
"functions": [
{
"function": "set_actor_id",
"id": "sample:cool_entity"
}
]
}
//省略 id 的情况
{
"type": "item",
"name": "minecraft:spawn_egg",
"weight": 1,
"functions": [
{
"function": "set_actor_id"
}
]
}
//set_banner_details
{
"type": "item",
"name": "minecraft:banner",
"weight": 1,
"functions": [
{
"function": "set_banner_details",
"type": 1
}
]
}
//set_book_contents
{
"type": "item",
"name": "minecraft:written_book",
"functions": [
{
"function": "set_book_contents",
"author": "作者",
"title": "书名",
"pages": [
"Once upon a time there were some marketplace partners that had to edit items using NBT. And it made them sad.",
"Then the Bedrock team added the ability to customize items from JSON and everyone rejoiced."//页面,每一行(元素)代表一个页面里的内容,这两个页的内容取自官方文档。
]
}
]
}
//set_book_contents 还允许使用 Rawtext ,下面是范例(取自官方文档)
{
"type": "item",
"name": "minecraft:written_book",
"functions": [
{
"function": "set_book_contents",
"author": "Steve",
"title": "Creator Woes",
"pages": [
"{\"rawtext\":[ {\"translate\":\"custom.book.page.1\"}]}",
"{\"rawtext\":[ {\"translate\":\"custom.book.page.2\"}]}"
]
}
]
}
//set_count
{
"type": "item",
"name": "minecraft:stone",
"weight": 1,
"functions": [
{
"function": "set_count",
"count": 5
}
]
}
//count 参数也可以有最大/最小范围,下面是范例
{
"type": "item",
"name": "minecraft:stone",
"weight": 1,
"functions": [
{
"function": "set_count",
"count": {
"min": 1,//最小值
"max": 6//最大值
}
}
]
}
//set_damage
{
"type": "item",
"name": "minecraft:iron_leggings",
"weight": 1,
"functions": [
{
"function": "set_damage",
"damage": 0.5
}
]
}
//它也能够定义最小值和最大值
{
"type": "item",
"name": "minecraft:iron_leggings",
"weight": 1,
"functions": [
{
"function": "set_damage",
"damage": {
"min": 0.3,
"max": 0.9
}
}
]
}
//set_data
{
"type": "item",
"name": "minecraft:stone",
"functions": [
{
"function": "set_data",
"data": 4
}
]
}
//set_data_from_color_index
{
"type": "item",
"name": "minecraft:wool",
"weight": 1,
"functions": [
{
"function": "set_data_from_color_index"
}
]
}
//set_lore
{
"type": "item",
"name": "minecraft:stick",
"weight": 1,
"functions": [
{
"function": "set_lore",
"lore": [
"Big Stick has been handed down",
"for generations from King to Prince",
"until it went missing four score ago"
//上面这几段 lore 取自 官方文档
]
}
]
}
//set_name
{
"type": "item",
"name": "minecraft:stick",
"weight": 1,
"functions": [
{
"function": "set_name",
"name": "名称"
}
]
}
杂项[edit]
这些是 无法分到上面任何一个类型中单独挑出来的
功能。
杂项比较复杂,每个功能单独讲。
创建交易表[edit]
如果您对上面这些内容足够了解,并完成了战利品表的知识之后,你就可以开始创建交易表了
下面的内容将帮助您创建一个交易表: