Sol的指示器(伤害、实体生命值、自定义Boss条HUD等!)

Sol的指示器(伤害、实体生命值、自定义Boss条HUD等!)

一款轻量级模组,为你提供每次命中时的实时视觉反馈。让你在战斗瞬间,就能以锐利的精度确切知道造成的伤害值。

Sol's Damage Indicator

作者: solmochi

需要帮助、想建议新功能或发现了 Bug?

加入我们的社区,抢先获取独家预览和即将发布的更新日志!

加入 Discord


描述

Sol's Damage Indicator 是一个 视觉战斗 HUD 模组,能够实时显示你造成的精确伤害。 在敌人身上看到漂浮的伤害数字,通过时尚的屏幕中央 HUD 追踪你的连击,使用准星指示器监控任何实体的生命值,并观看带有自定义 RPG 主题 Boss 血条(包含每位玩家的伤害排名和电影化死亡动画)的 Boss 战变得栩栩如生。

⚠️ 支持两种模式 —— 在服务器和客户端同时安装以获得全部准确性(近战、投射物、法术、技能), 或 仅使用客户端以进行基础近战追踪。 

✅ 在单人游戏世界中功能完整且可正常游玩。


功能特性

🌟 伤害指示器 HUD

  • 命中计数器与连击追踪器 — 在屏幕中右侧显示命中次数、“HIT”/“CRIT”文本以及累积造成的伤害
  • 脉冲动画 — 每次命中都会触发一次缩放脉冲,在快速连击时会叠加
  • 暴击检测 — 暴击以绿色显示并带有“CRIT”文本;遗物暴击会显示倍率(例如“CRIT 2.1x”)并以亮绿色显示
  • 总结阶段 — 在 3.5 秒无命中后,过渡到显示总造成伤害的总结界面,并带有戏剧性的“DAMAGE”脉冲标签
  • 自动淡出 — HUD 在闲置 5 秒后淡出,然后为下一次战斗重置
  • 可配置位置 — 可以放置在屏幕中左侧或中右侧

🌟 漂浮伤害数字

  • 世界空间数字 — 伤害数字从被命中的实体向上漂浮,并在 1.5 秒内淡出
  • 颜色编码 — 普通命中为红色,原版暴击为绿色,遗物系统暴击为亮绿色
  • 暴击倍率显示 — 遗物暴击会显示倍率后缀(例如“12.50 2.1x”)
  • 生成动画 — 数字在生成时快速脉冲放大,然后稳定下来
  • 随机分散 — 多个同时出现的数字会稍微分散以避免重叠

🌟 自定义 Boss 血条 HUD

  • RPG 主题设计 — 完全替换原版 Boss 血条,采用带金色边框、渐变生命值条和实体肖像的样式化面板
  • 实体肖像 — 在带边框的肖像框内渲染 Boss 实体的实时 3D 模型
  • 动态尺寸 — 血条宽度自动扩展以适应较长的实体名称和生命值文本
  • 颜色匹配血条 — 生命值条颜色会适应实体的自定义名称颜色、Boss 血条颜色设置或生物类型(红/绿/蓝)
  • 生命值数字 — 显示精确的当前生命值 / 最大生命值(格式:例如“125.4K / 500.0K”)
  • 实体称号 — 在可用时显示 CustomNPC 实体名称下方的称号
  • 多 Boss 血条 — 支持屏幕上显示可配置的最大 Boss 血条数量(默认:3),带有“+N 更多”溢出标签
  • 紧凑模式 — 第 2 个及之后的 Boss 血条使用紧凑布局,仅显示你自己的伤害贡献
  • 过期数据清理 — 当实体完全治疗或死亡时,自动清除伤害进度

🌟 Boss 伤害进度

  • 按玩家伤害追踪 — 服务器追踪每位玩家对 Boss 实体造成的累积伤害
  • 伤害百分比显示 — 显示每位玩家的伤害占 Boss 最大生命值的百分比(例如“玩家名:10.83%”)
  • RPG 排名样式 — 贡献最高的玩家获得奖牌图标:第 1 名为王冠,第 2–3 名为钻石,第 4 名及以上为箭头
  • 2 列网格布局 — 前 5 名贡献者以带“伤害进度”标题的整齐网格显示
  • 自我高亮 — 你自己的名字以绿色高亮显示;其他玩家以白色显示
  • 自我追加 — 如果你不在前 5 名中,你的条目会被单独追加,以便你始终看到自己的贡献
  • 自动检测 — 使用反射检测任何带有 ServerBossInfo 字段的实体(支持原版和所有模组 Boss)
  • 不活跃清理 — 玩家在可配置的不活跃分钟数后从伤害列表中移除(默认:5 分钟)

🌟 Boss 死亡动画

  • 电影化击杀序列 — 当 Boss 死亡时,播放一个包含多个阶段的 10 秒戏剧性覆盖动画:

🌟 实体生命值指示器

  • 准星目标生命值 — 显示你正在注视的实体的生命值条面板
  • RPG 面板设计 — 与 Boss 血条样式匹配,带有金色边框、肖像和渐变生命值条
  • 实时实体肖像 — 渲染目标实体的 3D 模型
  • 生命值与护甲显示 — 显示心形图标 + 当前/最大生命值,以及带有护甲值的钻石护甲图标
  • 模组实体支持 — 从注册表路径格式化名称(例如“cartaddon:revolutionary_grunt” → “Revolutionary Grunt”)

仅客户端回退模式

  • 无需服务器 — 当服务器没有该模组时,自动回退到通过生命值差异进行客户端近战追踪
  • 无缝切换 — 从第一个伤害数据包检测服务器能力;无需手动配置
  • 近战检测 — 通过 AttackEntityEvent 追踪攻击,并每 tick 监控实体生命值变化
  • 原版暴击检测 — 在仅客户端模式下检测原版暴击(下落 + 疾跑条件)

安装

  1. 下载模组的 .jar 文件
  2. 将其放入你的 .minecraft/mods 文件夹
  3. 启动 Minecraft

要获得完整功能(所有伤害来源、Boss 追踪、死亡动画): 在服务器和客户端上均安装。
要获得基础近战追踪: 仅安装客户端即可 — 无需服务器。


配置

客户端设置(solsdamageindicator-client.toml)

设置 默认值 描述
Boss 血条    
bossbar.enabled true 用自定义样式 HUD 替换原版 Boss 血条
bossbar.damageProgress true 在 Boss 血条下方显示按玩家的伤害贡献
bossbar.barWidth 250 Boss 血条最小宽度(像素,100–500)
bossbar.maxBossBars 3 同时显示的最大 Boss 血条数量(1–10),其余显示为“+N 更多”
bossbar.deathAnimation true Boss 死亡时播放电影化死亡覆盖动画
实体生命值    
entityhealth.enabled true 为准星目标实体显示生命值条
entityhealth.damageProgress true 在实体生命值条下方显示你的伤害贡献
entityhealth.range 32.0 实体生命值显示的最大距离(格,4–128)
伤害指示器    
damageindicator.enabled true 显示屏幕中央伤害 HUD(命中次数、HIT/CRIT、伤害)
damageindicator.leftSide false 将 HUD 放置在中左侧而不是中右侧
undefined    

服务器设置(solsdamageindicator-server.toml)

设置 默认值 描述
bossdamage.enabled true 追踪并广播每位玩家的 Boss 伤害
bossdamage.maxEntries 5 Boss 血条进度中显示的最大伤害贡献者数量(1–30)
bossdamage.relicCritIntegration true 在可用时使用 Sol's Relic System 的暴击检测
bossdamage.inactivityTimeout 5 不活跃玩家从伤害列表中移除前的分钟数(0 = 永不)

 

命令

命令 描述
/solsdi debug 循环切换 HUD 调试模式(关闭 → 在 TOP5 中 → 不在 TOP5 中)
/solsdi debug death 预览 Boss 死亡动画(在“前 5 名中”和“不在前 5 名中”变体之间交替)

注意: 命令需要操作员权限(权限等级 2)。


 

模组交叉兼容性

Sol's Relic System 集成

  • 通过反射检测来自 Sol's Relic System 的自定义暴击(无硬性依赖)
  • 遗物暴击以亮绿色显示并显示实际倍率(例如“CRIT 2.1x”)
  • 遗物暴击的漂浮伤害数字放大 25%,并带有倍率后缀
  • 可通过 bossdamage.relicCritIntegration 服务器配置进行切换

模组 Boss 支持

  • 通过反射自动检测 任何 带有 ServerBossInfo 字段的实体
  • 支持原版 Boss(凋灵、末影龙)和所有模组 Boss
  • 嵌套字段搜索(1 层深度)可捕获像末影龙这样将 Boss 血条放在子对象上的 Boss

模组实体支持

  • 实体生命值指示器适用于所有模组实体
  • 自动将注册表名称格式化为可读的显示名称
  • 通过 getDisplay().getTitle() 反射检测 CustomNPC 称号

实体覆盖抑制

  • 抑制来自 Jade、WTHIT、HWYLA 及类似模组的重复实体覆盖信息
  • 以最高事件优先级运行,在其他模组读取 crosshairPickEntity 之前将其置空
  • 渲染后恢复目标,以免影响游戏玩法机制

工作原理

服务器 + 客户端模式(推荐)

  1. 服务器监听 LivingDamageEvent(在所有减伤计算之后触发:护甲、附魔、吸收)
  2. 服务器向攻击玩家发送一个 DamageIndicatorPacket,包含精确的最终伤害
  3. 客户端在 HUD 上显示准确的伤害,并以漂浮数字形式显示
  4. 对于 Boss 实体,服务器还追踪每位玩家的累积伤害,并向所有 Boss 血条查看者广播更新

仅客户端模式(回退)

  1. 客户端通过 AttackEntityEvent 检测玩家攻击
  2. 每 tick 监控被攻击实体的生命值是否下降
  3. 报告 攻击前生命值 - 攻击后生命值 作为造成的伤害
  4. 限制: 仅追踪近战/横扫攻击;投射物和间接伤害需要服务器组件

 


看清每次命中。追踪每个 Boss。主宰每场战斗。