战斗状态

战斗状态

适用于 Minecraft 模组和整合包的共享战斗状态追踪器。

基础库

战斗状态

追踪玩家是否仍处于战斗状态,即使生物已切换目标。

战斗状态是一个轻量级的共享依赖模组,适用于需要感知战斗状态的 Minecraft 模组和整合包。它为其他模组提供一个明确的服务器端答案:“该玩家是否仍处于战斗状态?”

战斗规则

当某个生物以玩家为目标时,玩家即与该生物进入战斗状态。

如果该生物在战斗中切换目标,玩家仍会保持与该生物的战斗状态。仅目标切换不会结束战斗。

当满足以下任一条件时,玩家与该生物的战斗状态结束:

  • 该生物不再拥有目标,或
  • 该生物当前未以该玩家为目标,且玩家距离超过 64 格。

提供功能

  • 玩家战斗状态的服务器端追踪。
  • 为依赖模组提供小型 API。
  • 可配置的脱离战斗距离。
  • 可选黄色指示器,标记仍让玩家处于战斗状态但当前未以玩家为目标的生物。
  • 与仇恨指示器兼容:仇恨指示器可继续显示红色当前目标图标,战斗状态则添加黄色战斗记忆图标。

API

在服务器端使用 CombatStateApi:

CombatStateApi.isInCombat(player);
CombatStateApi.isActivelyTargeted(player);
CombatStateApi.getCombatMobIds(player);

配置

配置文件:

config/combat_state-common.toml

默认值:

[combat]
disengageDistance = 64
syncIntervalTicks = 20

[client]
renderYellowIndicator = true

需求

  • Minecraft 1.21.1
  • NeoForge

可选集成:

  • 仇恨指示器

源码与问题反馈