跳转到内容

交互配置 interacts.yml

interacts.yml 定义了地牢中的交互点。玩家与特定方块/实体/区域交互时会触发脚本。

顶层段使用 交互(或英文 interacts),其下每个键是一个交互点的名称。

interacts:
机关按钮:
type: "RIGHT_CLICK_BLOCK"
once: false # 可重复触发
parameters:
location: "5,64,10"
triggered_message: "" # 重复触发时的提示(留空则不显示)
script: |-
action.message('@trigger', '&e你按下了机关按钮')
action.remove_obstacle('出生点屏障')
能量核心:
type: "PLACE_BLOCK"
once: true # 只能触发一次
parameters:
location: "0,64,-10"
required_block: "DIAMOND_BLOCK" # 需要放置的方块
fail_message: "&c需要放置钻石块才能激活能量核心!"
triggered_message: "&c能量核心已经被激活过了"
script: |-
action.message('@trigger', '&a&l你激活了能量核心!')
action.remove_obstacle('Boss房大门')
陷阱区域:
type: "ENTER_REGION"
once: false
parameters:
min: "-15,63,-15"
max: "-10,68,-10"
triggered_message: ""
script: |-
action.message('@trigger', '&c&l你触发了陷阱!')
action.create_obstacle('岩浆陷阱')
神秘商人:
type: "RIGHT_CLICK_ENTITY"
once: false
parameters:
location: "-8,64,0"
entity_type: "VILLAGER"
triggered_message: ""
script: |-
action.message('@trigger', '&e[商人] &7你好,冒险者!')
action.give_item('@trigger', 'COOKED_BEEF', 8)

type 字段的合法取值如下(建议使用英文常量;常用类型也接受对应中文别名)。

类型常量中文别名说明
RIGHT_CLICK_BLOCK右键方块 / 右键右键点击指定方块
LEFT_CLICK_BLOCK左键方块 / 左键左键点击指定方块
BREAK_BLOCK破坏方块 / 破坏破坏指定方块
PLACE_BLOCK(无)在指定位置放置方块
STEP_ON踩踏踩踏指定位置(压力板等)
ENTER_REGION进入区域 / 进入进入指定区域范围
RIGHT_CLICK_ENTITY(无)右键点击指定位置的实体

ENTER_REGION 使用区域范围外,其余类型均通过 location(或 位置)按方块坐标匹配交互点位置。其它参数为可选的触发条件,所有条件键也支持对应中文写法。

参数键适用类型说明
location / 位置ENTER_REGION交互方块/实体所在坐标 x,y,z
min / 最小点ENTER_REGION区域最小坐标 x,y,z
max / 最大点ENTER_REGION区域最大坐标 x,y,z
required_block / 需要方块PLACE_BLOCK必须放置/匹配的方块材质
required_item / 需要物品任意必须手持的物品材质
required_item_name / 需要物品名称任意手持物品需包含的显示名称
fail_message / 失败消息任意条件不满足时的提示消息
字段(中文 / 英文)类型默认值说明
类型 / typeString右键方块交互触发方式
仅一次 / onceBooleantrue每个玩家是否只能触发一次
已触发消息 / triggered_messageString重复触发时的提示消息,留空或不填则不显示
参数 / parametersMap交互相关参数,支持嵌套子段
脚本 / scriptList / 多行字符串触发时执行的脚本