Skip to content

injuries.yml:伤势、流血与医疗

玩家受伤时,实际概率为 global.trigger-chance × 当前资源区 injury-multiplier,命中后再按 weights 抽取伤势。伤势状态、属性效果、药水效果和流血由类型定义。

全局与类型字段

路径类型 / 默认行为说明生效
global.trigger-chance数字 / 0.15自动夹在 0..1热重载
weights.ARM/LEG/HEAD/FRACTURE/ABDOMEN非负整数缺失默认 1;总和必须 > 0热重载
types.<TYPE>.effects[]映射列表五种类型都必须存在热重载
effects[].backendMYTHICLIB / VANILLA缺失默认 VANILLA热重载
effects[].stat字符串,可选MythicLib 属性名热重载
effects[].attribute字符串,可选原版 Attribute;可作 MythicLib 失败后的原版后端信息热重载
effects[].op操作名 / ADD_NUMBER示例含 ADD_SCALARRELATIVE热重载
effects[].value数字 / 0.0负数为削弱热重载
types.<TYPE>.potion[]TYPE:amplifier:ticktick -1 表示持续到伤势被移除热重载
types.<TYPE>.bleed.damage数字小于 0 会夹为 0热重载
types.<TYPE>.bleed.periodtick小于 1 会夹为 1热重载

医疗字段

路径类型说明
medical.<id>.match匹配串示例 mmoitems:CONSUMABLE:BANDAGE
cure[]伤势枚举列表可为空;值必须是五种伤势之一
suppress-bleed布尔是否止血;不等于治愈所有伤势
use-time至少 1;治疗期间需保持条件,打断不应消耗物品

完整默认配置

yaml
global:
  trigger-chance: 0.15

weights:
  ARM: 25
  LEG: 25
  HEAD: 15
  FRACTURE: 15
  ABDOMEN: 20

types:
  ARM:
    effects:
      - backend: MYTHICLIB
        stat: ATTACK_SPEED
        attribute: GENERIC_ATTACK_SPEED
        op: ADD_SCALAR
        value: -0.2
      - backend: MYTHICLIB
        stat: ATTACK_DAMAGE
        op: RELATIVE
        value: -0.2
      - backend: MYTHICLIB
        stat: CRITICAL_STRIKE_CHANCE
        op: RELATIVE
        value: -0.25
      - backend: MYTHICLIB
        stat: CRITICAL_STRIKE_POWER
        op: RELATIVE
        value: -0.25
  LEG:
    effects:
      - backend: MYTHICLIB
        stat: MOVEMENT_SPEED
        attribute: GENERIC_MOVEMENT_SPEED
        op: ADD_SCALAR
        value: -0.25
  HEAD:
    effects:
      - backend: MYTHICLIB
        stat: SKILL_DAMAGE
        op: RELATIVE
        value: -0.3
      - backend: MYTHICLIB
        stat: MAGIC_DAMAGE
        op: RELATIVE
        value: -0.25
    potion:
      - BLINDNESS:0:-1
  FRACTURE:
    effects:
      - backend: VANILLA
        attribute: GENERIC_MOVEMENT_SPEED
        op: ADD_SCALAR
        value: -0.15
    bleed:
      damage: 1.0
      period: 40
  ABDOMEN:
    effects:
      - backend: MYTHICLIB
        stat: DEFENSE
        op: RELATIVE
        value: -0.25
    bleed:
      damage: 1.0
      period: 60

medical:
  bandage:
    match: mmoitems:CONSUMABLE:BANDAGE
    cure: []
    suppress-bleed: true
    use-time: 3
  arm-splint:
    match: mmoitems:CONSUMABLE:ARM_SPLINT
    cure: [ARM]
    suppress-bleed: false
    use-time: 5
  leg-splint:
    match: mmoitems:CONSUMABLE:LEG_SPLINT
    cure: [LEG, FRACTURE]
    suppress-bleed: false
    use-time: 5
  head-medicine:
    match: mmoitems:CONSUMABLE:HEAD_MEDICINE
    cure: [HEAD]
    suppress-bleed: false
    use-time: 6
  abdomen-kit:
    match: mmoitems:CONSUMABLE:ABDOMEN_KIT
    cure: [ABDOMEN]
    suppress-bleed: true
    use-time: 7
  medkit:
    match: mmoitems:CONSUMABLE:MEDKIT
    cure: [ARM, LEG, HEAD, FRACTURE, ABDOMEN]
    suppress-bleed: true
    use-time: 12

后端选择与验证

MythicLib 可用时使用其统计系统;VANILLA 使用 Bukkit Attribute。配置名必须与对应依赖版本一致。医疗 match 应与 MMOItems 实际 Type/ID 完全对应。

  • 测试服可临时把触发率设为 1、单个权重设为 1,其余设为 0,逐种验证属性、药水和流血;测试后恢复。
  • 分别测试治疗完成、移动/受击打断、背包满等路径;失败不得消耗医疗品。
  • 留意这里部分数值会“夹取”而非报错(概率、流血、时间),不要依赖负值表达关闭功能,应显式配置 0 或移除对应段。