障碍物配置 obstacles.yml
obstacles.yml 定义了地牢中的障碍物组。障碍物是在指定位置放置/移除方块的机制,常用于创建门、牢笼、机关等。
顶层段使用 障碍物(或英文 obstacles),其下每个键是一个障碍物组的名称。
obstacles: 出生点屏障: # 方块列表,格式: "x,y,z,方块类型" blocks: - "-2,64,5,BARRIER" - "-1,64,5,BARRIER" - "0,64,5,BARRIER" auto_create: true # 是否在副本开始时自动创建 trigger_mode: "进入触发" # 触发模式 trigger_cooldown: 2 # 触发冷却时间(秒) trigger_once: false # 是否只能触发一次 on_create: |- # 创建时执行的脚本 action.message('@all', '&c能量屏障已激活!') action.sound('@all', 'BLOCK_BEACON_ACTIVATE', 1.0, 1.2) on_delete: |- # 删除时执行的脚本 action.message('@all', '&a屏障已解除,前方通路打开!') action.sound('@all', 'ENTITY_GENERIC_EXPLODE', 1.0, 1.0) trigger_script: |- # 触发时执行的脚本 action.damage('@trigger', 3.0) action.message('@trigger', '&c你触碰到了能量屏障!')
Boss房大门: blocks: - "20,64,0,IRON_BARS" - "20,65,0,IRON_BARS" - "21,64,0,IRON_BARS" on_create: |- action.sound('@all', 'BLOCK_IRON_DOOR_CLOSE', 1.0, 0.8) on_delete: |- action.sound('@all', 'BLOCK_IRON_DOOR_OPEN', 1.0, 0.8) auto_create: false # 不自动创建,由脚本控制 trigger_mode: "无触发" trigger_script: [] trigger_cooldown: 0 trigger_once: falseblocks 列表的每个元素是 x,y,z,方块类型 四段,前三段为坐标、第四段为方块材质名(Bukkit Material)。
blocks: - "10,64,10,IRON_BARS" - "-10,63,-10,LAVA" - "30,64,0,BARRIER"触发模式的取值同时支持中文与英文写法,未识别的值按「无触发」处理。
| 配置值 | 等价英文 | 说明 |
|---|---|---|
无触发 | (默认) | 不触发,仅作为方块屏障 |
进入触发 | enter | 玩家进入障碍物区域时触发 |
离开触发 | leave | 玩家离开障碍物区域时触发 |
持续触发 | continuous | 玩家在区域内时持续触发 |
| 字段(中文 / 英文) | 类型 | 默认值 | 说明 |
|---|---|---|---|
方块 / blocks | List | 必填 | 方块列表,格式 x,y,z,方块类型 |
自动创建 / auto_create | Boolean | false | 副本开始时是否自动创建 |
触发模式 / trigger_mode | String | 无触发 | 触发模式 |
触发冷却 / trigger_cooldown | Int | 0 | 触发冷却(秒) |
仅触发一次 / trigger_once | Boolean | false | 是否只触发一次 |
创建时 / on_create | List / 多行字符串 | 空 | 创建障碍物时执行的脚本 |
删除时 / on_delete | List / 多行字符串 | 空 | 删除障碍物时执行的脚本 |
触发脚本 / trigger_script | List / 多行字符串 | 空 | 玩家接触障碍物时执行的脚本 |