跳到主要内容

变量

变量会在显示时换成实际的值,而且每个玩家看到自己的值。例如 %player_name% 在小明眼中是「小明」,在小红眼中是「小红」。

内置变量​

不需要安装任何插件就能用:

变量内容例子
{player}看到(或点击)看板的玩家名称'&f欢迎你,{player}'
{page}这一行所在的页码(从 1 开始)'第 {page} 页'
{pages}这个看板共有几页'第 {page} / {pages} 页'

PlaceholderAPI 变量​

安装 PlaceholderAPI 后,就能用它的所有变量(%...% 格式)。 大多数变量需要另外下载对应的扩充(expansion),例如:

/papi ecloud download Player
/papi ecloud download Server
/papi reload
lines:
- '&f玩家:&e%player_name%'
- '&f在线人数:&a%server_online%'
- '&f你的等级:&b%player_level%'
  • 没装 PlaceholderAPI 时,%...% 会原样显示。
  • 变量回传的颜色代码(&a、§a、&#RRGGBB)会正常上色。
  • 变量回传空值时,这一行就是空白。

哪里可以用变量​

位置{player}{page} {pages}PlaceholderAPI
文字行可以可以可以
物品 / 头颅行的 ( ) 头颅值可以不行可以
物品 / 头颅行的其他部分(物品名称、NBT)不行不行可以
生物行的生物类型不行不行可以
点击动作 message、player、console可以(点击的人)不行可以
其他点击动作不行不行不行
动画标签里的文字可以可以可以
自定义动画的帧(steps)需要开启 allow-placeholders-inside-animations

最常见的用法是「每个人看到自己的头」:

lines:
- '#HEAD: PLAYER_HEAD ({player})'
- '&f%player_name%'
- '&7金币:&e%vault_eco_balance_formatted%'

动画里的变量详见 动画;点击动作里的变量详见 点击动作。

多久更新一次​

变量不是一直在更新,而是依照看板的两个设定:

设定作用默认范围指令
update-interval每隔几 tick 重新算一次变量(20 tick = 1 秒)201~1200/clh hologram setupdateinterval <看板> <tick>
update-range玩家离看板几格以内才会更新481~64/clh hologram setupdaterange <看板> <格数>
  • 默认值来自 config.yml 的 defaults.update-interval 与 defaults.update-range,只影响之后新建的看板。
  • 超出 update-range 但还在 display-range 内的玩家仍看得到看板,只是数值停在最后一次更新的样子。所以 update-range 比 display-range 大没有意义。
  • 值没有改变时不会发送封包,所以短间隔本身不贵;真正花时间的是变量本身的计算(例如查询资料库的变量)。
  • 排行榜、经济这类计算较重的变量,建议把 update-interval 调到 100(5 秒)以上。

写在看板文件:

update-interval: 100 # 5 秒更新一次
update-range: 16 # 16 格内才更新

指令的别名:setupdateinterval = updateinterval,setupdaterange = updaterange。 权限分别是 dh.command.holograms.setupdateinterval、dh.command.holograms.setupdaterange。

停用变量​

方法效果
加上 DISABLE_PLACEHOLDERS 旗标文字行里的 {player}、{page}、{pages}、%...% 都原样显示,不会被替换。物品、生物行与点击动作不受影响
加上 DISABLE_UPDATING 旗标变量只在看板出现在玩家画面时算一次,之后不再更新

想在文字里真的显示 % 或 {player} 字样(例如教学看板),就在那一行加 DISABLE_PLACEHOLDERS:

/clh line addflag tutorial 1 2 DISABLE_PLACEHOLDERS

其他变量​

config.yml 的伤害显示与治疗显示有自己的变量 {damage}、{heal},只能用在那两个功能的 appearance 设定里,详见 config.yml。