跳到正文
烈焰甘蔗Wiki

Unbreaking(耐久)

基本信息

属性 值
附魔本体 原版 net.minecraft.enchantment.Enchantment.unbreaking(SC2 不注册自有附魔)
附魔 ID 无法核实——NBT 存的是原版 effectId(ModuleEnchants.java:270),数值由 vanilla 决定,本仓无 vanilla 源码
内部类型 ENCHANTMENT_TYPE.TOOL
等级上限 无法核实——取自 getEnchantment().getMaxLevel()(ModuleEnchants.java:166),即原版上限
基础价值 64000(EnchantmentInfo.java:49-52)
折算公式 value = 2^(level-1) * rank1Value(EnchantmentInfo.java:39)

⚠️ 审计订正

  • 原文「附魔等级要求:5」——源码中不存在铁砧等级要求,此数值无出处,已删除。
  • 原文概率公式经复核正确,已补上精确实现(原文未给证据)。

效果

每次工具扣耐久时先掷一次判定,命中才真正扣:

public void damageTool(int val) {
    int unbreaking = enchanter != null ? enchanter.getUnbreakingLevel() : 0;
    if (getCart().rand.nextInt(100) < 100 / (unbreaking + 1)) {
        currentDurability -= val;
        if (currentDurability < 0) { currentDurability = 0; }
    }
    if (enchanter != null) {
        enchanter.damageEnchant(ENCHANTMENT_TYPE.TOOL, val);
    }
}

来源:ModuleTool.java:196-209

即:免消耗概率 = 1 − 1/(level+1) = level/(level+1)。逐级数值(100 / (level+1) 为整数除法):

等级 触发扣耐久的概率 免消耗概率
1 100/2 = 50% 50%
2 100/3 = 33% 66.7%
3 100/4 = 25% 75%

作用范围是所有 ModuleTool 子类模块(ModuleTool.damageTool 是基类方法),不只是钻头。

双重损耗:每次实际扣耐久后,还会按 val 扣掉本附魔自身的内部值;值降到 ≤0 时该附魔从 Enchanter 中移除(ModuleEnchants.java:131-133)。所以 Unbreaking 会随使用逐渐失效。

获取与生效方式

  • 来源:附魔书(EnchantmentInfo.java:61、EnchantmentInfo.java:85)
  • 载体:矿车上的 Enchanter 模块(ID 82,ModuleData.java:943),3 格(ModuleEnchants.java:23)
  • 类型匹配:矿车上存在 ModuleTool 子类模块才启用 TOOL 类型(ModuleTool.java:50)
  • 不可附魔:模块物品 setMaxDamage(0)(ItemCartModule.java:25)

相关附魔

浏览全部模组