Skip to content

全息.yml

全息.yml 用来配置副本里的提示全息、交互式全息和信息展示点。

它最适合做“看得见、点得到、带提示”的内容。

如果你把几种触发器放在一起对比:

  • 交互.yml 更像机关和按钮
  • 全息.yml 更像可读、可点、可展示的信息点

全息最常拿来做什么

  • 入口提示
  • Boss 机制说明
  • 当前阶段说明
  • 点击触发的小交互
  • 副本内的装饰性提示点

一份标准示例

yaml
入口提示:
  显示名称: '&6副本入口'
  坐标: '15,67,15'
  文本:
    - '&6&l暗影地穴'
    - '&7右键查看说明'
  显示距离: 24
  更新距离: 32
  刷新间隔: 20
  触发方式: 右键
  单次触发: false
  冷却: 20
  触发脚本: |
    消息.全体("&e有人查看了入口提示")
  触发玩家脚本: |
    消息.发送("&a祝你好运")

核心字段

显示名称

不写也能用,默认就是全息 ID。

建议正式副本写上,后面做脚本和排错更直观。

坐标

源码当前兼容:

  • 坐标
  • 位置

文档建议统一写 坐标

文本

源码当前兼容:

  • 列表写法
  • 多行字符串
  • 旧字段 内容

最稳的还是列表写法:

yaml
文本:
  - '&6&l暗影地穴'
  - '&7右键查看说明'

显示条件

全息可以按玩家视角决定显不显示:

yaml
显示条件: '副本.读取变量("Boss房已开放") == true'

这个条件是按每个玩家分别判断的。

很适合做:

  • 阶段开放前先隐藏提示
  • 只有满足条件的玩家才能看到

条件

这个条件控制的是点击后是否触发,不影响平时显示。

yaml
条件: '副本.读取变量("祭坛已激活") != true'

触发方式

按源码当前实现,支持这些写法:

  • 右键
  • 左键
  • 潜行右键
  • 潜行左键
  • 任意

默认值是 右键

单次触发冷却

这两个字段和交互点类似:

  • 单次触发: true 表示实例里只生效一次
  • 冷却 单位是 tick

刷新间隔

yaml
刷新间隔: 20

这决定全息文本多久更新一次。

显示距离更新距离

  • 显示距离:玩家在多远内能看到
  • 更新距离:玩家在多远内继续参与更新

正式服里这两个值别一上来拉太大。

始终朝向玩家

yaml
始终朝向玩家: true

这适合做悬浮提示和信息牌。

向下生长

这个字段是全息排版方向控制。

一般普通提示不太需要动,先按默认就行。

触发脚本触发玩家脚本

全息和交互点的一个重要区别就在这里。

它支持两套脚本:

  • 触发脚本
  • 触发玩家脚本

推荐这样分:

  • 触发脚本:全队播报、改副本变量、开门、开机关
  • 触发玩家脚本:只给点击者发提示、给点击者做个人处理

文本显示和点击脚本的边界

这页有两个层次:

  • 平时显示什么
  • 玩家点击以后发生什么

文本部分更适合做:

  • 提示
  • 说明
  • 氛围
  • 简单进度展示

点击脚本部分更适合做:

  • 播提示
  • 改变量
  • 小机关
  • 小剧情

如果一个交互点主要目的是“触发机关”,通常还是 交互.yml 更直接。

如果它同时需要“先展示说明,再让玩家点一下触发”,那 全息.yml 更顺手。

触发脚本里的上下文变量

源码当前会在点击时放进这些变量:

  • hologram_id
  • hologram_name
  • hologram_runtime_id
  • hologram_click
  • hologram_entity_id
  • trigger_player
  • trigger_player_name
  • trigger_player_uuid

这很适合做:

  • 一套脚本给多个全息共用
  • 按点击方式分支处理
  • 调试当前触发的是哪个全息

推荐写法

最常见的入口说明全息

yaml
入口提示:
  显示名称: '&6副本入口'
  坐标: '15,67,15'
  文本:
    - '&6&l暗影地穴'
    - '&7右键查看说明'
  显示距离: 24
  刷新间隔: 20
  触发方式: 右键
  触发玩家脚本: |
    消息.发送("&e本副本分为两阶段,Boss 房需要先清第一波怪")

按阶段控制显隐

yaml
Boss房提示:
  显示名称: '&cBoss 房'
  坐标: '30,67,0'
  文本:
    - '&cBoss 房已开放'
  显示条件: '副本.读取变量("Boss房已开放") == true'

用全息当轻量交互入口

yaml
祭坛提示:
  显示名称: '&d祭坛'
  坐标: '12,66,8'
  文本:
    - '&d右键激活祭坛'
  条件: '副本.读取变量("祭坛已激活") != true'
  触发方式: 右键
  单次触发: true
  触发脚本: |
    副本.设置变量("祭坛已激活", true)
    消息.全体("&d祭坛已被激活")

配置建议

  • 文本尽量短,前两行放最重要的信息。
  • 重要全息点才加交互,不要把主流程全堆在全息上。
  • 会影响流程的全息最好带 条件单次触发 或冷却。
  • 展示型和交互型全息可以分开,不要一个点同时承担太多职责。

常见问题

全息不显示

优先检查:

  • 坐标是否在副本世界内
  • 显示距离 是否过小
  • 显示条件 是否把它隐藏了
  • 全息依赖插件是否正常工作

能看到,但点了没反应

先检查:

  • 触发方式 是否和玩家操作一致
  • 条件 是否拦住了触发
  • 是否已经单次触发过
  • 冷却是否还没结束

提示和机关逻辑越写越乱

这通常说明全息承担的职责太多了。

更稳的拆法一般是:

  • 全息负责提示
  • 真正的流程机关交给 交互.yml
  • 全局收尾交给 事件绑定

下一步阅读

TQ Minecraft Server Plugin Docs