生物实体伤害事件记录器

生物实体伤害事件记录器

一个轻量级的Minecraft Forge模组,帮助整合包开发者和玩家检查游戏中发生的实体受伤事件。

伤害事件记录器

一个轻量级的 Minecraft Forge 模组,帮助整合包开发者与玩家检查游戏中发生的伤害事件。

该模组会记录详细的伤害信息,并可选地在实体上方显示浮动伤害数字,让玩家更容易理解大型整合包中伤害的运作方式。

功能特性

伤害事件日志记录

该模组可以将 Minecraft 伤害事件记录到 JSON Lines(.jsonl)文件中。

日志文件位于:

.minecraft/logs/damage_entity.jsonl
.minecraft/logs/damage_player.jsonl

每个事件单独存储,便于之后使用以下工具进行分析:

  • 自定义脚本
  • 数据库
  • 日志查看器
  • 外部工具

记录的信息包括:

  • 事件类型(LivingHurtEvent,LivingDamageEvent)
  • 受害者实体
  • 实体类型
  • 伤害数值
  • 伤害来源类型
  • 伤害消息 ID
  • 来源实体
  • 直接实体
  • 实体 UUID
  • 实体位置
  • 生命值信息

该模组仅记录事件本身提供的信息,不会尝试猜测缺失的数据。


浮动伤害数字

该模组可以在实体上方显示浮动伤害数字。

重要:伤害数字的方向

显示的数字代表该实体/事件来源造成的伤害,而非显示实体所受到的伤害。

示例:

僵尸攻击玩家:

玩家 <- 僵尸

僵尸上方出现浮动数字

该数字的含义是:

“这只僵尸对玩家造成了这么多伤害。”

并不表示:

“这只僵尸受到了这么多伤害。”

这对于检查敌人实际对玩家造成了多少伤害非常有用。


支持的显示:

  • LivingHurtEvent 伤害
  • LivingDamageEvent 伤害

不同事件类型使用不同颜色:

  • LivingHurtEvent:橙色
  • LivingDamageEvent:红色

伤害数字可以:

  • 平滑向上浮动
  • 随时间淡出
  • 跟随造成伤害的实体
  • 停留在伤害发生的位置

命令

所有设置都可以在游戏内使用命令进行更改。

启用或禁用文件日志记录

/damageevent enablelogger true
/damageevent enablelogger false

控制是否将伤害事件写入日志文件。


记录玩家伤害事件

/damageevent logPlayer true
/damageevent logPlayer false

控制是否记录受害者是玩家的事件。


记录生物伤害事件

/damageevent logMobs true
/damageevent logMobs false

控制是否记录受害者是其他实体的事件。


设置伤害数字持续时间

/damageevent number_ticks 20

控制浮动伤害数字存在的时间。

Minecraft 每秒有 20 tick:

20 tick = 1 秒

示例:

/damageevent number_ticks 60

可使数字可见 3 秒。


启用或禁用 LivingHurtEvent 显示

/damageevent LivingHurtEvent true
/damageevent LivingHurtEvent false

控制是否渲染橙色的 LivingHurtEvent 伤害数字。


启用或禁用 LivingDamageEvent 显示

/damageevent LivingDamageEvent true
/damageevent LivingDamageEvent false

控制是否渲染红色的 LivingDamageEvent 伤害数字。


使伤害数字跟随实体

/damageevent textFollowMob true
/damageevent textFollowMob false

启用时:

  • 伤害数字会附着在实体上
  • 数字在跟随移动的同时继续向上浮动

禁用时:

  • 数字停留在伤害发生的位置

日志格式

日志使用 JSON Lines 格式。

示例:

{"event":"LivingHurtEvent","entity":"Player","incoming_damage":10.0,"damage_type":"minecraft:mob_attack","source_entity":"Zombie"}

每一行代表一个事件。

这种格式便于:

  • 调试模组交互
  • 调查异常伤害行为
  • 创建伤害分析工具

这个模组存在的原因

大型整合包通常拥有复杂的伤害系统,涉及:

  • 自定义伤害类型
  • 护甲穿透机制
  • 属性
  • 特殊能力
  • 脚本化效果
  • 自定义实体

找出意外伤害的来源可能非常困难。

伤害事件记录器提供了一种简单的方式来查看游戏中实际发生的情况。


环境要求

  • Minecraft Forge
  • Minecraft 1.20.1

备注

此模组主要是一个调试和分析工具。

它专为以下人群设计:

  • 整合包作者
  • 开发者
  • 需要排查伤害系统的玩家

它并非旨在取代完整的战斗统计系统。