首页 男生 游戏竞技 Minecraft指令手册

第二十八章 区块与区段

Minecraft指令手册 你好MC 2739 2024-07-09 15:29

  在上一章中,我们提到了“区块刻”。区块刻是个啥我们暂时不用了解,但区块我们还是要很详细的了解一下。

  首先让我们认识一下区块(Chunk)。

  当你在Minecraft世界行走时,你或许会发现你的视野边缘是由一个个正方形的区域组成的。这些正方形区域就是正在加载的区块。

  Minecraft的世界是由一个个区块组成的,每个区块的长宽是16格,高是256格。在还未正式发布的Minecraft1.18版本中,区块的高度甚至达到了384格。

  所以说,一个区块包含着65536块方块。而一个世界最多可以生成14062500000000个区块(约为14亿),每种区块都有7.46×10(的244,700次方)种可能的区块种类。怎么样,是不是很震撼?照这样计算,一个世界就有9216000000000000000(921.6京[1京=10000万亿])块方块。

  但是上面这些只是真区块。什么是真区块呢?听说过Minecraft的边境之地吧,当你到达Minecraft的很远的地方时,那里的区块会出现Bug,也就是加载错误(32位溢出)。在Java版中,这个BUG早就已经在Beta1.8版本移除(但没有完全移除,64位溢出导致的边境之地仍然存在),并添加了世界边界拦着你。当你以任何方式越过世界边界后来到外面,会得到一些负面效果,扣血死亡,就好像绝地求生里一样。其实Java版的Minecraft还真的有点像绝地求生,你还可以使用特定的指令修改边界,来达到绝地求生的效果。是不是很神奇?

  在基岩版,并没有边界,所以你仍然可以看到那个神奇的区块。但可惜,基岩版的边境之地即将于1.17.2版本移除,目前的1.17.2测试版中边境之地已经木掉了。

  所以,真区块就是正常没有bug的区块。而那些bug的区块,则被叫做“假区块”。

  一个区块被分成数个长宽高均为16格的区段。实际上,虽然区块这个词更常见,但是在Minecraft中,大多数游戏的运算都是以区段而不是以区块为单位的。

  随机刻就是一个很好的例子。区块刻运算过程中,有一个刻叫随机刻。随机刻我们在讲/gamerule指令时已经见过了,但是我们还不知道它的运作方式。

  那么它是怎么运作的呢?

  一个区段有16×16×16=4096个方块。每一随机刻中,将会随机抽取randomTickSbr /eed规则设定的数量的方块,即默认Java是抽取3个方块,基岩是抽取1个方块。

  大多数方块被抽到后并不会有什么影响,但以下方块会收到影响:

  耕地上的农作物——有水可能生长,无水可能掉落

  蘑菇——光照低则有可能传播,光照高则有可能掉落

  藤蔓(wàn)——可能传播

  火[仅基岩版]——可能熄灭或传播

  冰和雪——可能融化

  树叶——在附近没有树干的情况下可能枯萎

  耕地——湿润程度会更新

  可以生长的植物和滴水石锥——可能生长

  草方块和菌丝——可能传播或变为泥土

  树苗——可能长成树

  岩浆——可能让附近的方块上着火

  红石矿石——会熄灭

  下界传送门方块——可能生成一只猪灵(Minecraft1.16版本及以上)或僵尸猪人(低于Minecraft1.16)

  海龟蛋——破裂或孵化

  营火——会冒出烟雾粒子

  铜质方块——可能生锈

  处于滴水石锥下方的炼药锅——如果滴水石锥上方有熔岩或水,炼药锅可能会被填充

  一个Minecraft存档包含超级多的区块,所以游戏游玩时肯定不会将这些区块全部加载,而是选取部分区块进行加载。

  在Java版,每个区块要加载都需要一个加载标签。每个加载标签都具有三个属性:

  加载等级、标签类型和存活时间(可选属性)

  加载等级,即规定了该区块的加载级别有多高。加载等级越小,能加载的内容就越多。如果加载等级有多个,那么将会生效的将会是数值最小的那个。

  加载等级的范围是22到44,分为四个类型:

  强加载:≤31——所有游戏内容都会运算

  弱加载:32——除区块刻、实体以外其他游戏内容都会运算

  加载边界:33——只有少部分内容会正常运行(红石、命令方块不会运行)

  不可访问:34——只有世界生成会在这些区块中运行

  加载等级会向相邻8个区块传播,每成功传播一次加载等级会加一级。

  标签类型,用于确定该加载标签的来源。目前来说,标签类型有以下几种来源:

  \\玩家\\

  加载范围:正方形,边长为渲染距离(单人)或view-distance(多人)×2+1

  加载等级:31

  比如,当渲染距离为12时,游戏就会加载以玩家为中心的25×25个强加载区块,外边围着一圈弱加载区块和加载边界。

  \\强制\\

  使用/forceload指令赋予

  等级:31

  \\出生点\\

  等级:22

  强加载范围:19×19

  \\传送门\\

  使用下界传送门时,游戏会给予即将到达的另一个维度区块赋予等级30的加载标签。

  强加载范围:3×3

  \\末影龙\\

  等级:24

  强加载范围:15×15

  \\瞬移\\

  实体(注意不是玩家)瞬移后(包括使用/tbr /、/sbr /readbr /layers和末地传送门,刷沙机就是利用了这个原理)在瞬移后的区块创建的为时5游戏刻的加载标签。

  等级:33(使用/tbr /是32)

  \\临时\\

  其他游戏代码告诉游戏该区块需要加载时临时建立的标签,仅持续1游戏刻。

  等级:至少为33,视游戏代码而定。

  在基岩版,玩家加载的范围和Java版不一样,呈现一个圆形。使用/tickingarea,也可以像/forceload一样一直让区块保持加载。

  现在,你知道了区块是个什么东西了吧?

  (唉,你看,这个矿洞会生成史莱姆唉!)

目录
设置
手机
书架
书页
评论