挖掘(Breaking)是玩家在 Minecraft 中最常见的行为之一,只需将鼠标准星瞄准一个方块的同时长按破坏键(默认为鼠标左键),或是在触摸屏上长按某一个方块即可完成。挖掘是移除无用方块和获取方块(为了放置或合成)的基本方式(Minecraft 游戏名称中的 Mine 就有挖矿、挖掘的含义)。
挖掘的基础知识
在 Java 版中,创造模式下挖掘范围为 5.2 个方块,而在其他模式下为 4.5 个方块。在基岩版中,使用键盘/鼠标或手柄输入时,范围为 5 个方块;而在触摸屏输入时,创造模式下的范围为 12 个方块,其他模式下为 6 个方块。
玩家在目标方块的范围内并选中该方块时,按住破坏键,玩家的手就会开始挥动,发出重复的“砰砰”声,方块上会出现裂纹。随着挖掘的进度,裂纹会逐渐覆盖整个方块,直到方块被破坏。
玩家可以使用工具来加快破坏对应类型方块。某些方块不要求使用工具,而某些必需工具才会掉落物品。
在生存模式中,有些方块不可破坏(如基岩);在冒险模式中,所有方块都不可破坏,除非玩家手持的物品带有 {can_destroy} NBT 标签;在旁观模式中,玩家无法通过任何方式破坏方块;在创造模式中,玩家可以破坏任何方块,除非玩家正手持剑、三叉戟、重锤和调试棒。
挖掘等级
虽然许多方块可以用空手收集,某些特定的方块需要使用工具。特别是,要从石头或金属类方块中获取资源,玩家必须使用镐。对于像铁矿石或黑曜石这样的坚硬方块,需要使用更高等级材料制作的镐,具体详见各个方块的挖掘等级。
Java 版 1.20.5 快照 24w12a 版本移除了挖掘等级。在此之前,木质和金质的挖掘等级为 0,石质为 1,铁质为 2,钻石质为 3,下界合金质为 4。现在品质还会影响不适合由工具挖掘的方块标签。其效果与先前的挖掘等级相同:
具有 incorrect_for_wooden_tool 标签的方块被木质及以下的工具挖掘后不会掉落;
具有 incorrect_for_stone_tool 标签的方块被石质及以下的工具挖掘后不会掉落;
具有 incorrect_for_iron_tool 标签的方块被铁质及以下的工具挖掘后不会掉落;
具有 incorrect_for_diamond_tool 标签的方块被钻石质及以下的工具挖掘后不会掉落;
具有 incorrect_for_netherite_tool 标签的方块被下界合金质及以下的工具挖掘后不会掉落;
具有 incorrect_for_golden_tool 标签的方块被金质及以下的工具挖掘后不会掉落。
工具耐久度
工具具有耐久度,挖掘工具(镐、斧、锹、锄、剑、三叉戟和重锤)每次成功挖掘硬度不为 0 的方块都会消耗耐久度:
其他物品被用于挖掘时不会消耗耐久度。
如果一个工具的名称和魔咒下方有“无法破坏”的蓝色标签,那么这个工具无法被损坏(耐久度也不会下降)。在 Java 版中,可以用 /give 指令来获取带有“无法破坏”标签的物品,如获取无法破坏的钻石镐:
/give @s diamond_pickaxe{Unbreakable:1b}
挖掘进度
如果挖掘一个方块时目标方块改变了(如移动准星到别的方块上),切换了手持的物品(即使切换前后挖掘速度不变),或是松开了挖掘键,挖掘进度不会保留(如果这三种情况都不符合,在 Java 版中可能会出现进度暂留,详见后文)。挖掘方块时玩家可以自由移动,如跳跃、游泳、爬行等,但这会减缓挖掘速度。
玩家如果一直按住挖掘键,挖掘的动作将一直进行,但是在成功通过挖掘破坏一个方块后,玩家在 5 游戏刻(0.25s)内无法再次挖掘方块,这被称为挖掘冷却。如果方块被瞬间挖掘(在 1 游戏刻内被挖掘,具体见下文),将不会产生挖掘冷却。
挖掘速度
玩家的挖掘速度有 4 个影响因素:正在被挖掘的方块的硬度、玩家手持的挖掘工具或物品、玩家是否有挖掘惩罚和玩家的状态。
硬度
方块的硬度(Hardness,公式中用 h 表示)是影响挖掘速度的重要因素,与方块挖掘时间正相关。当挖掘工具相同时,硬度越大挖掘时间越长。所有方块都有其对应的硬度。硬度不是爆炸抗性,且与爆炸抗性无关。
特殊地:
挖掘工具
有一些方块在被挖掘时,使用特定的工具可以加快挖掘速度,这类工具就被称为这类方块的挖掘工具。
挖掘工具对方块的加速与工具品质有关,如下表所示:
挖掘工具 | 基础速度(单位:s) |
---|---|
不使用对应的挖掘工具 | 1 |
木质 | 2 |
石质 | 4 |
铁质 | 6 |
钻石质 | 8 |
下界合金质 | 9 |
金质 | 12 |
剪刀 | 2(挖掘羊毛为 5,挖掘蜘蛛网和树叶为 15) |
剑 | 1.5(挖掘蜘蛛网为 15) |
在基岩版中,使用剑挖掘蜘蛛网和竹子之外的任何方块的基础速度都为 1.5(暂时还是个特性,状态是等待回应)。
用来挖掘的物品如果带有效率魔咒,那么挖掘的基础速度会进一步增加。n 级的效率魔咒可以使基础速度增加效率等级 n 的平方 +1(n^2+1),如效率 V 可以增加 26 的基础速度。因此工具品质越低,效率魔咒对挖掘速度的加成越大:如效率 V 的木镐(28)挖掘速度是普通木镐(2)的 14 倍,效率 V 的金镐(38)挖掘速度只有普通金镐(12)的 3.17 倍。(然而这并没有什么用,毕竟挖掘速度较低的工具通常挖掘等级较低,挖掘时会有挖掘惩罚减慢速度,详见下文挖掘惩罚)
最终得到的挖掘速度就是工具在一般情况下的挖掘速度,某些模组(如匠魂系列、寂静装备)的工具挖掘速度也会在工具提示上显示。
挖掘惩罚
有些方块要求使用正确的物品挖掘,否则挖掘速度只有正常情况的 30%,这种挖掘减速被称为挖掘惩罚。在 Java 版中,是否手持正确的物品挖掘也决定着方块的掉落物。
玩家状态
在 Java 版中,挖掘速度增加 0.2h 倍;
在基岩版中,挖掘速度变为原来的 (0.2h+1)1.2^h 倍。
如果玩家带有挖掘疲劳状态效果,则根据效果等级 f 来影响挖掘速度:
在 Java 版中,挖掘速度变为原来的 0.3^min(f,4) 倍;
在基岩版中,挖掘速度变为原来的 0.21^f 倍。
如果玩家的视平线浸入水中,则挖掘速度会降低:
在 Java 版中,挖掘速度与属性 player.submerged_mining_speed 值相乘(默认为 0.2)穿戴有 a 级水下速掘魔咒的头盔时挖掘速度会变为 0.2+0.8a(水下速掘最高为 I 级故最高为 1)
在基岩版中,玩家在水中时挖掘速度变为原来的 20%,此时穿戴有水下速掘魔咒的头盔会使挖掘速度保持原速度不变。
如果玩家未接触地面,则挖掘速度变为原来的 20%(可与水中的 20% 叠加为 4%,无法通过水下速掘魔咒抵消);
在 Java 版中,挖掘速度会最后再与属性 player.block_break_speed 值相乘(默认为 1),得到最终的挖掘速度。
计算流程
挖掘速度的计算流程如下:
获取方块的硬度与基础挖掘速度 s;
如果工具具有效率 n 级魔咒,那么 s 变为原来的 s+n^2+1;
计算基础除数 r:如果没有挖掘惩罚,基础除数为 30;如果有挖掘惩罚,基础除数为 100;
计算状态效果、水中减速和浮空减速等综合相乘获得的乘数 m(如果都没有的话 m 为 1),得到最终的挖掘速度 p=sm/hr;
根据挖掘速度即可算出挖掘时间为t=[hr/sm](单位为游戏刻,向上取整,最小为 1t)(想要直接计算秒数可以将 1.5 和 5 带入挖掘惩罚 r 中,因为最后刻单位换算成秒还是得除以 20)。
举个例子,如在 Java 版中使用效率 V 级的木镐在无特殊情况下挖掘黑曜石(Java 版中黑曜石硬度为 50):
黑曜石硬度 h 为 50,效率 V 木镐挖掘速度 s 为 2+5^2+1=28,木镐挖掘等级不够,黑曜石不会掉落,故挖掘惩罚 r 为 100,无特殊情况下 m 为 1。
挖掘时间 t=50*30/28=178.57 t,向上取整变为 179t,也就是 8.95s。(挖掘黑曜石时效率 V 的木镐(28)和普通钻石镐(8)速度差不多,可见挖掘惩罚对于挖掘速度的影响很大)
瞬间挖掘
如果挖掘一个方块的时间等于 1 游戏刻,那么这个方块会被瞬间挖掘,此时挖掘速度为这个方块硬度的 30 倍。
在 Java 版中,当玩家的属性 player.block_break_speed 值大于 0 时,硬度为 0 的方块才会被瞬间挖掘;在基岩版中,任何条件下硬度为 0 的方块都会被瞬间挖掘。
竹子与其他方块不同,用剑挖掘时总是可以瞬间挖掘。
进度暂留
注意:仅 Java 版存在进度暂留。
当玩家正在挖掘方块时,如果离开挖掘位置交互距离以上(离被挖掘方块过远),就无法继续进行挖掘,但挖掘进度可能会保留。如挖掘树上的原木时,玩家可能站在地面上够不到最上方的原木,但是跳起来可以够到,因此玩家只需一直按着跳跃键和挖掘键,最终就可以将原木挖下来。这种中断挖掘时保留进度并且最后成功挖掘到行为被称为进度暂留。
进度暂留需要满足下列条件:
玩家只持续挖掘一个方块,中途不能持续挖掘别的方块(不包括瞬间挖掘和创造模式下挖掘方块);
玩家在与此方块进行交互时(开始挖掘时)挖掘键需要提前按下,而不是当按下时已经指向方块;
玩家在与方块失去交互时(中断挖掘时)挖掘键也必须持续按下,在失去交互后可以松开。或者在决定失去交互时放置任何方块;
玩家主手物品必须在挖掘此方块时保持不变,不在挖掘时可以切换,但挖掘此方块时必须使用同样的物品。
需满足上述条件的原因如下:
玩家开始挖掘方块,客户端进入挖掘状态,向服务器发出开始挖掘动作;
玩家与方块失去交互且没有挖掘其他方块,此时并没有停止挖掘,挖掘进度保留在内存中;
玩家恢复挖掘此方块,客户端认为玩家一直在持续挖掘,所以进度再次被累加,之前的进度被保留;
挖掘进度达到 100% 时,向服务端发出停止挖掘动作。因为客户端挖掘消耗的时间多于服务端,所以服务端判断挖掘进度有效,从而真正破坏方块和执行掉落。
资料分类: | 名词术语:方块相关 |