Suite

伤害飘字系统

CombatEffect 伤害飘字配置:来源选择、飘字类型、治疗显示、合并与样式

伤害飘字系统

付费模块

伤害飘字子系统(digis-display)将伤害与治疗事件显示为 ArcartX 客户端数字飘字,支持四种属性插件来源自动检测、六种飘字类型、伤害/治疗合并、TACZ 枪械伤害,以及 MythicMobs 技能治疗显示。

伤害来源

来源模式

伤害来源通过 digis-display.damage-display.source.mode 配置,决定优先采用哪个属性插件的伤害事件:

模式配置值说明
自动检测auto按优先级自动选择第一个可用的来源
MythicLibmythiclib仅使用 MythicLib/MMOItems 伤害事件
CraneAttributecraneattribute仅使用 CraneAttribute 伤害事件
AttributePlusattributeplus仅使用 AttributePlus 伤害事件
Symphonysymphony仅使用 Symphony 伤害事件
Bukkit 原版bukkit仅使用 Bukkit 原版伤害事件

自动检测优先级

auto 模式按以下优先级检测可用来源(不可自定义顺序):

优先级来源检测条件
1MythicLib / MMOItems插件可用 + mythiclib.enabled=true
2CraneAttribute插件可用 + craneattribute.enabled=true
3AttributePlus插件可用 + original.ap-compatible=true
4Symphony插件可用 + symphony.enabled=true
5Bukkit 原版original.enabled=true 或 player.enabled=true

所有来源均不可用时伤害飘字不启用。选择了属性插件来源时原版伤害不重复显示。

回退策略

当指定来源(非 auto)不可用时,fallback 控制是否回退:

fallback行为
true指定来源不可用时,按优先级回退到下一个可用来源
false指定来源不可用时,伤害飘字不启用
digis-display:
  damage-display:
    source:
      mode: "craneattribute"  # 指定使用 CraneAttribute
      fallback: true           # 不可用时回退到 AttributePlus → Symphony → Bukkit
      debug: false             # 开启后输出来源选择日志

伤害飘字类型

子系统支持六种伤害飘字类型,按优先级处理:闪避 > 暴击 > 元素克制 > 普通伤害。

优先级飘字类型配置路径
1闪避dodged.enabled / dodged.config-id
2暴击critical.enabled / critical.config-id / critical.player-config-id
3元素克制(优势)advantaged.enabled / advantaged.config-id
3元素克制(劣势)disadvantaged.enabled / disadvantaged.config-id
4普通伤害按来源分发

暴击/闪避/克制飘字当前仅 Symphony 能提供对应标记。其他属性插件触发时自动降级为普通伤害飘字。

普通伤害按来源分发

普通伤害根据当前伤害来源分发到不同的 configId:

来源普通目标 configIdPVP 目标 configId最小阈值字段
Bukkitoriginal.config-idplayer.config-idoriginal.min-amount / player.min-amount
MythicLibmythiclib.config-idmythiclib.player-config-idmythiclib.min-amount / mythiclib.player-min-amount
CraneAttributecraneattribute.config-idcraneattribute.player-config-idcraneattribute.min-amount / craneattribute.player-min-amount
AttributePlusoriginal.config-id(复用)player.config-id(复用)original.min-amount / player.min-amount
Symphonysymphony.config-idsymphony.player-config-idsymphony.min-amount / symphony.player-min-amount

AttributePlus 来源复用 original 的样式和阈值配置,通过 original.ap-compatible=true 控制是否允许显示。

PVP 与非 PVP 区分

每种伤害类型区分普通目标(怪物/动物)与 PVP 目标(玩家),使用不同的飘字样式:

# MythicLib 伤害飘字配置示例
mythiclib:
  enabled: true
  config-id: "ArcartXSuite-damage"           # 普通目标(怪物)使用红色伤害样式
  player-config-id: "ArcartXSuite-player-damage" # PVP 目标(玩家)使用橙色伤害样式
  min-amount: 1.0                             # 普通目标最小显示阈值
  player-min-amount: 1.0                      # PVP 最小显示阈值

旁观者可见性

show-others-damage 控制是否向能看到目标的其他玩家也显示伤害飘字:

配置值行为适用场景
false(默认)仅攻击者自己看到伤害飘字避免信息过载,PVE 默认
true所有能看到目标的玩家都看到PVP 场景,所有人可见伤害数字

治疗飘字

原版治疗

字段默认值说明
heal-display.original.enabledtrue是否启用原版治疗飘字
heal-display.original.config-idArcartXSuite-heal治疗飘字样式 ID
heal-display.original.min-amount1.0最小显示阈值

MythicMobs 技能治疗

仅当治疗目标为玩家时显示:

字段默认值说明
heal-display.mythic.enabledtrue是否启用 MythicMobs 治疗飘字
heal-display.mythic.config-idArcartXSuite-heal治疗飘字样式 ID
heal-display.mythic.min-amount1.0最小显示阈值
heal-display.mythic.exact-modetrue是否显示实际生效治疗量
exact-mode显示内容说明
true实际生效治疗量扣除溢出(如满血时治疗 100,显示 0)
false技能理论治疗量不扣除溢出,显示技能原始治疗量

MythicMobs 治疗飘字仅在 MythicMobs / MythicBukkit 插件安装时可用。

伤害/治疗合并

合并机制将短时间内的多段伤害/治疗合并为一次飘字,减少刷屏。

伤害合并

字段默认值说明
damage-display.damage-merge.enabledfalse是否启用伤害合并
damage-display.damage-merge.window-ticks2合并窗口(tick,1 tick = 50ms)
damage-display.damage-merge.min-amount1.0合并后最小显示阈值
damage-display.damage-merge.max-entries500最大缓存条目数

同一攻击者-目标-样式组合在窗口内的伤害累加,窗口结束后一次性发送合并后的总伤害。

治疗合并

字段默认值说明
heal-display.heal-merge.enabledfalse是否启用治疗合并
heal-display.heal-merge.window-ticks2合并窗口(tick)
heal-display.heal-merge.min-amount1.0合并后最小显示阈值
heal-display.heal-merge.max-entries500最大缓存条目数

TACZ 枪械伤害

TACZ 枪械伤害飘字为内置集成,无需额外安装。选择了属性插件伤害来源时,TACZ 伤害由属性插件的伤害事件覆盖,不重复显示。

飘字样式配置

飘字样式文件自动导出到 plugins/ArcartX/damage_display/ 目录,由 ArcartX 客户端读取渲染。

样式文件清单

样式文件样式 ID用途
ArcartXSuite-damage.ymlArcartXSuite-damage普通伤害
ArcartXSuite-heal.ymlArcartXSuite-heal治疗
ArcartXSuite-critical.ymlArcartXSuite-critical暴击伤害
ArcartXSuite-dodged.ymlArcartXSuite-dodged闪避
ArcartXSuite-advantaged.ymlArcartXSuite-advantaged元素克制(优势)
ArcartXSuite-disadvantaged.ymlArcartXSuite-disadvantaged元素克制(劣势)

样式文件格式

# ArcartXSuite-damage.yml
ArcartXSuite-damage:
  textureWidth: 44          # 每张贴图宽(像素)
  textureHeight: 66         # 每张贴图高(像素)
  randomMin: 0              # 位置随机最小值(世界坐标单位)
  randomMax: 0.2            # 位置随机最大值
  decimalPlaces: 1           # 小数位数:0=整数 / 1=1位小数 / 2=2位小数
  textures:
    - "damage/damage/0.png"  # 第 1-10 张:数字 0-9
    - "damage/damage/1.png"
    - "damage/damage/2.png"
    - "damage/damage/3.png"
    - "damage/damage/4.png"
    - "damage/damage/5.png"
    - "damage/damage/6.png"
    - "damage/damage/7.png"
    - "damage/damage/8.png"
    - "damage/damage/9.png"
    - "damage/damage/dot.png" # 第 11 张:小数点(decimalPlaces > 0 时使用)
字段说明
textureWidth / textureHeight每张贴图的宽高(像素),决定数字大小
randomMin / randomMax飘字位置随机偏移范围(世界坐标单位)
decimalPlaces小数位数:0 = 仅整数,1 = 1 位小数,2 = 2 位小数
textures贴图列表:第 1-10 张对应数字 0-9,第 11 张为小数点,第 12 张为千位分隔逗号(可选)

闪避飘字固定显示 "0",无需配置 decimalPlaces 与小数点贴图。治疗飘字使用较小的贴图尺寸(22×33)与伤害区分。

最小显示阈值

所有飘字类型均支持最小显示阈值,低于阈值的伤害/治疗不显示,避免微量数字刷屏:

飘字类型阈值字段默认值
原始伤害original.min-amount1.0
PVP 伤害player.min-amount1.0
MythicLib 伤害mythiclib.min-amount / mythiclib.player-min-amount1.0
CraneAttribute 伤害craneattribute.min-amount / craneattribute.player-min-amount1.0
Symphony 伤害symphony.min-amount / symphony.player-min-amount1.0
暴击critical.min-amount1.0
原版治疗heal-display.original.min-amount1.0
MythicMobs 治疗heal-display.mythic.min-amount1.0
伤害合并后damage-merge.min-amount1.0
治疗合并后heal-merge.min-amount1.0

闪避与元素克制飘字无最小阈值配置,启用即显示。

相关文档