变量
变量会在显示时换成实际的值,而且每个玩家看到自己的值。例如 %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 秒) | 20 | 1~1200 | /clh hologram setupdateinterval <看板> <tick> |
update-range | 玩家离看板几格以内才会更新 | 48 | 1~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。