Appearance
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[].backend | MYTHICLIB / VANILLA | 缺失默认 VANILLA | 热重载 |
effects[].stat | 字符串,可选 | MythicLib 属性名 | 热重载 |
effects[].attribute | 字符串,可选 | 原版 Attribute;可作 MythicLib 失败后的原版后端信息 | 热重载 |
effects[].op | 操作名 / ADD_NUMBER | 示例含 ADD_SCALAR、RELATIVE | 热重载 |
effects[].value | 数字 / 0.0 | 负数为削弱 | 热重载 |
types.<TYPE>.potion[] | TYPE:amplifier:tick | tick -1 表示持续到伤势被移除 | 热重载 |
types.<TYPE>.bleed.damage | 数字 | 小于 0 会夹为 0 | 热重载 |
types.<TYPE>.bleed.period | tick | 小于 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 或移除对应段。