设计特色
云血条的目标:能自订图片与字体 ,设定直观、开箱就好看,并且把跟随与性能做到最好。
一张表看特色
| 项目 | CloudHealthBar 云血条 |
|---|---|
| 设定方式 | 一个样式写完一种血条(styles/),怪物规则一个 mobs.yml |
| 默认外观 | 普通 / 精英 / 首领三种手绘血条、残影、前缘发光、像素数字、图标 |
| 叠图方式 | 不改任何着色器:每一层是独立的显示实体,往镜头方向错开,和其他资源包不冲突 |
| 跟随 | 封包骑乘:客户端每一帧跟着怪物,服务器不送传送封包 |
| 高度 | 每只怪物可写;CloudModel 模型自动对准模型头顶;高度是真正的垂直方向,大型模型也不会随视角歪掉 |
| 显示时机 | 被打(攻击者 / 附近玩家)、准星、靠近(距离可调)、一直显示 |
| MythicMobs | 每只怪物两行(enable + health-bar),或用 * ? 通配批量设定(例如 *boss* 全部用首领血条)+ 默认规则 |
| 原版生物 | 可以整个关闭,再单独开凋灵、监守者等几种 |
| 字体 | TTF 直接交给客户端渲染(fonts.yml),也支持位图字体 |
| 资源包 | 资料夹 + zip、自带下载服务、自动写进 CraftEngine 合并列表并重载、复制到 ItemsAdder |
| 原本的名字 | 显示血条时只对那位玩家隐藏怪物原本的名字牌,不会重复两次 |
为什么跟得这么顺
血条在客户端是好几个「显示实体」叠在一起(底框、残影、血量、外框、文字),它们骑在一个宽度为 0 的隐形支点上,支点再骑在怪物身上:
怪物
└─ 支点(看不见、打不到,高度 = 血条离头顶多高)
├─ 底框
├─ 残影
├─ 血量
├─ 外框刻度
└─ 文字(名字、数字、药水图标)
骑乘位置由客户端每一帧计算,所以怪物怎么跑、怎么被击退,血条都贴在头顶。服务器只在血量或文字真的改变时送一个很小的更新封包, 怪物移动时完全不用送封包。
为什么不卡服
- 服务器上没有任何实体,全部是封包;只有正在被看到的血条才会运算。
- 血量、名字、药水效果没变时,文字不会重新组装。
- 准星检查只有在规则用到「准星」时才执行;靠近检查只扫附近一小块范围,「一直显示」用的大范围每 4 次才扫一次。
- 资源包内容没变时,开服只重建对照表,不重写上千张图片。
导入 BetterHealthBar 的设定
- 装好云血条,开服一次。
- 执行
/chb import betterhealthbar:BetterHealthBar 里写过的 MythicMobs 怪物会加进mobs.yml(blacklist: true的变成不显示,height保留)。 - 确认没问题后移除 BetterHealthBar,以及它在资源包里的
betterhealthbar资料夹。
提示
BetterHealthBar 的 height 和云血条的 height 都是「再往上几格」,但两边的基准高度不完全一样,导入后建议用 /chb show 看一下再微调。