[MD]
# WarZTacZBullet 1.1.8
## 本次更新
- `preset.fleshReductionByGap` 现已支持 `exact` 精确差值覆盖
- 服主现在可以分别给 `-1`、`-2` 等不同越级场景配置不同肉伤减免
- 未配置 `exact` 的差值仍会自动回退到原来的 `lessThan0 / equal0 / equal1 / greaterOrEqual2` 四档规则
- 新增 `NPC 护甲复活恢复` 机制
- 已识别的 `CustomNPC / Citizens` 类 NPC 现在可以在战斗中正常碎甲
- NPC 死亡后,插件会尝试在其复活时自动恢复初始头盔与胸甲
## 配置说明
### 1. preset 精确差值覆盖
```yml
preset:
fleshReductionByGap:
lessThan0: 0.99
exact:
"-1": 0.90
"-2": 0.96
```
说明:
- `exact` 的 key 直接写 `gap = bulletLevel - armorLevel`
- 已配置的 `gap` 会优先命中
- 没配到的 `gap` 继续沿用旧版分档规则
### 2. NPC 破甲后复活恢复
```yml
armorDurability:
affectNonPlayerEntities: true
protectDetectedNpcs:
enabled: false
restoreDetectedNpcsOnRespawn:
enabled: true
matchRadius: 8.0
scanIntervalTicks: 20
watchDurationSeconds: 120
```
说明:
- 默认推荐模式已经改为“NPC 可碎甲,但复活自动恢复”
- 若你想回到旧版“NPC 永远不碎甲”,可手动开启 `protectDetectedNpcs.enabled: true`
- `detectedNpcClassNameKeywords` 可用于补充你服务器上的 NPC 包装类关键字
## 兼容性说明
- 未配置 `preset.fleshReductionByGap.exact` 的服务器,升级后原有数值逻辑不变
- NPC 护甲恢复仅作用于已识别的 NPC 实体
- 当前自动恢复范围为插件实际处理的两件护甲:
- 头盔
- 胸甲
- 已被旧版本打掉且没有建立过快照的 NPC,首次升级后需要手动重新穿一次护甲作为恢复基线
## 建议
- 替换为 `WarZTacZBullet-1.1.8.jar`
- 更新后建议完整重启服务器
- 建议重点复测以下场景:
- `4弹打6甲`、`5弹打6甲` 是否正确命中各自 `exact` 减伤
- `CustomNPC / Citizens` 护甲被打碎后是否能在复活时自动恢复
- 若 NPC 复活点偏移较大,确认 `restoreDetectedNpcsOnRespawn.matchRadius` 是否足够
[/MD]