Minecraft指令手册

你好MC

首页 >> Minecraft指令手册 >> Minecraft指令手册最新章节(目录)
大家在看半截入土:却给我曹贼系统? 让你摸一下,没让你领悟天道三千 快穿之花式攻略男神手册 反派:从傀儡皇子到风流帝王! 云飞扬林雨初小说最新章节免费阅读 星武大帝 仙帝重生,我有一个紫云葫芦 穿越成年代文里的恶毒女配 天渊 这个杂役是高手 
Minecraft指令手册 你好MC - Minecraft指令手册全文阅读 - Minecraft指令手册txt下载 - Minecraft指令手册最新章节 - 好看的玄幻魔法小说

第189章

上一章书 页下一章阅读记录

我们都知道实体有实体共通标签,实体中的弹射物有弹射物共通标签。箭属于弹射物,它像矿车一样,拥有许多种类(额......实际上,除了光灵箭以外,其他的箭只是药水效果不同而已)。既然矿车拥有自己的共通标签,那箭呢?

Let us open minecraft and have a look.

我们打开1.12.2版本,一进游戏就先往天空射一发,然后在箭落地之前快速敲下“\/entitydata @e[type=arrow]{have_a_look:1b}”,然后这支箭的Nbt标签就多了一个:

have_a_look:1b

的标签,同时我们也获得了这支箭的Nbt标签:

{motion:[-0.0d,1.d,-0.01 d],damage:2.0d,shake:0b,xtile:-1,UUIdLeast:-85 L,inGround:0b,pickup:2b,Invulnerable:0b,Air:300s,onGround:0b,dimension:0,portalcooldown:0,Rotation:[-135.f,89.0f],life:0s,Falldistance:0.0f,intile:“minecraft:air“,UUIdmost:-L,indata:0b,crit:1b,pos:[651.d,57.0d,41.00d],have _a_ look:1b,ztile:-1,Fire:0s,ytile:-1}

看着有点晕是吧?好,那我们归纳一下。

在这串Nbt内,除了我们的have_a_look标签,其他的标签一共有24个。分类一下,可以得到:

tags mon to all entities={motion,UUIdLeast,Invulnerable,Air,onGround,dimension,portalcooldown,Rotation,Falldistance,UUIdmost,indata,crit,pos,Fire}

Unknow tags={damage,shake,inGround,pickup,intile,indata,crit,ytile,ztile,xtile}

这些标签中一共有10个我们还不知道是个啥,那今天我们就来仔细研究研究。

“damage”这个单词是“损坏”的意思,可作为名词或动词。但实际上按照这个标签的用途来说,它在这应该是个使动用法的谓语动词(????):使......损坏。再看看上面这串Nbt,它的值是“2.0d”,最后的这个“d”,说明damage的值是双精度浮点数。

这标签的用途到底是什么?我们来个反向思维,damage的主语在这边应该是箭,即:

Arrows damage ......(箭使.......损坏了)

箭会使什么东西损坏?肯定是射中的实体啦!所以damage的作用就是:

设定箭将造成的伤害。

上面Nbt中damage的值是2.0d,就代表着这个箭射中实体将造成2滴血(1颗心)的伤害。由于是双精度浮点数的值,所以这不一定是个整数。这个值会随着发射该箭的武器所有的力量附魔等级而变化,具体是力量附魔每高一级,就会增加0.5的值。假设你用一个附魔了级力量的弓发射这支箭,那么该值将会是:

.0d(x0.5+2.0)

等等,实际上还要再加一个0.5,因为只要一把弓附魔了力量,不管是多少级,都会额外加上0.5,然后再加上(0.5x力量等级)。所以,实际上的值应该是:

.5d

实际上箭造成的伤害不会那么低。箭的伤害还有被箭的速度影响,具体公式如下:

V箭xdamage+暴击伤害=真实伤害

但还有一些情况伤害是个定值,如发射器射出的箭伤害一定是3滴血。

damage是这样,那接下来的shake又是何物?

shake的意思是“摇”,这个比较难猜,就直接上答案:

当箭击中方块时,shake将会设定为7(单位为游戏刻)。在shake还未降为0时,就是箭的“抖动状态”,玩家此时不能捡起箭,需待shake为0时,方可捡起。

上面Nbt中的shake值为0b,b就说明这是字节型数值。这个0,说明这支箭可能还在飞行,也可能已经落地超过0.35秒了。

那该如何判断一支箭是否落地了呢?

ground的意思是“地面”,作为动词时有“着陆”的意思。上面,我们归纳出的第三个我们还不知道是干啥的Nbt标签是“inGround”。in the ground是一个短语,和on the ground意思差不多,都是“在地面”的意思,只不过前者更注重于强调“接触”。

那“inGround”的作用大家应该猜到了吧?即:

箭是否接触地面。

上面的Nbt标签中,inGround的值是:

0b

说明inGround的数值类型为byte(字节型),同时这个0(false)也说明了这支箭还在飞。如果这里的值不是0,而是1(true),那就是接触地面了。

当一支箭接触到地面,就代表玩家可以捡起它。但,众所周知,小白射出的箭玩家是不能白嫖的,你知道这是为什么吗?

你肯定不知道,但看完下面这一段,你就知道了。

实际上,不光是小白的箭无法捡起。当你开启创造模式用弓射一发再调成生存时,你会发现你照样无法捡起创造模式射出来的箭。

为啥?

pickup这个单词的意思是“皮卡”,但这边应该把它拆分成pick up(捡起)。

既然pick up的意思是捡起,那么就是对捡起的设置咯?

对!

在上面的Nbt中,pickup的值是2b,b说明这也是一个byte字节型标签。那这个2说明了什么?

pickup的值你翻遍整个minecraft之后会发现只有三种:

小白射出的箭——0

你在非创造模式射出的箭——1

你在创造模式射出的箭——2

结合你玩minecraft的经验和作者上面分享的发现,可以得出:

非玩家生物射出的箭:0——不可被玩家捡起

非创造模式玩家射出的箭(发射器也算):1——可被除旁观者模式外其他模式玩家捡起(注:wiki上言“可以被玩家在生存或创造模式中捡起”,未提冒险模式,但作者实测冒险模式也可以捡起)

创造模式玩家射出的箭:2——只可被创造模式玩家捡起

现在我们可以回答上面的问题了:

这个2说明了这是一个创造模式玩家射出的箭

(注:用指令生成的箭pickup值也是0,即不可被捡起。推测是游戏本身产生的箭都不可以被玩家捡起)

........

在之前,我们遇见过两个在1.13扁平化中被合并的Nbt标签,这两个标签相信大家还记得,它们是:

displaytile+displaydata=displayState(矿车共通标签)

block+data=blockState(下落的方块)

现在,我们在1.12.2版本的箭共通标签遇见了:

intile和indata

这两个Nbt标签和我们之前遇见的那两个标签在未合并之前的构造非常相似,那么它们是否在1.13版本中被合并了?

displayState和blockState有个共同点,就在于他们都是与方块有关系。合并之前,它们都分别有一个用来表示数据值的标签:displaydata和data。数据值在1.13版本中被删除,所以这种类型的标签也就合并了。

indata和displaydata、data一样,末尾都有一个“data”,那indata是否就是表示方块数据值所用呢?

indata如果真是表示数据值,那intile呢?是不是用来表示方块id?

您别说,还真是。

在上面的Nbt中,这两个标签的值分别是:

intile:“minecraft:air“

indata:0b

你看,这minecraft:air不就是空气方块吗?这“0”不就是方块数据值吗?

这两个标签存的是啥我们知道了,但用处呢?

我们已经知道这支箭是飞在空中的,既然这里是空气方块,那么这两个的作用难道是.......

这支箭所处的方块?

您别说,您又对了。这两个标签的作用还真是这样的。

但我们还没有回答上面的问题呢。实际上的确是被合并了。至于合并成了什么东西.......

已知block+data=blockState,block=tile,求单词式intile+indata的单词值。

解:

intile+indata=in(tile+data)1

将block=tile代入1,得

intile+indata=in(block+data)2

将block+data=blockState代入2,得

intile+indata=inblockState

∴intile+indata=inblockState

1.13版本扁平化过后,intile和indata被合并成inblockState(值类型:复合标签),内含两个Nbt标签:

Name(字符串)——该方块的Id

propertie(复合标签)——该方块的命名空间

——方块状态名称:值(类型:字符串)

......

crit这个单词的意思是“暴击”。在上面的Nbt中,crit标签的值是:

1b

说明crit标签的值类型是byte字节型。既然值类型是字节型,那就说明这个标签的作用不是确定这支箭暴击的伤害,而是这支箭是否会造成暴击。

所以,这支箭会造成暴击,因为它的crit值是1。

crit标签在1.11版本才被添加,1.11版本前没有这个标签,这需要注意一下。

最后,我们还剩下三个我们还未曾见过的标签:

xtile,ytile,ztile

这三个标签在上面的Nbt中值都为-1,且没有类型字母,应该是Long长整型。并且它们三看起来跟坐标有关,而且坐标的三个值也是长整型......

首先,我这边说一点,这三个标签不是箭共通标签内的,它们还出现在1.11以前的鱼竿浮标和火球类实体(如火焰弹,凋零之首)中。至于它们三有什么用,我们以后再了解。

现在我们知道箭共通标签内有这些东西:

damage、shake、inGround、pickup、intile和indata(inblockState)、crit,那这就是全部了吗?

不,在更新的版本中,还有一些更新的标签:

pierceLevel(byte:字节型)——中文wiki介绍是“箭能射穿实体的时间长度”,但这好像并不是这个用途

ShotFromcrossbow(byte:字节型[true|false])(1.14+)——表示这支箭是否来自于一把弩

SoundEvent——击中东西时触发的声音事件

SoundEvent我们先不用管。这个pierceLevel我本人也搞不懂,返回的值一直是0b,这可能是在击中实体的那一瞬间才可能会变化。剩下的这个,就是ShotFromcrossbow。

ShotFromcrossbow很简单,上面都介绍过了,相信只要是看得懂的都能懂吧?

总之,只要ShotFromcrossbow的值为1b,那么这箭就来自一把弩,0b则来自其他的东东。

这就是“箭共通标签”。

上一章目 录下一章存书签
站内强推【快穿】欢迎来到手撕白莲炼狱 穿成假千金,真千金对我嘎嘎狂宠 我跟极品娘把缺德奶奶嫁出去了 港综:开局死靓仔南,邻居马小玲 快穿:病美人仙君又拿白月光剧本 废柴光明圣女的异世界求生指南 小师妹别浪,师尊盯上你了 末世重生后,我获得了无限空间! 洪荒:开局夺舍殷洪得造化乾坤图 穿越从开荒开始 女富婆的第一神医 火影:我带着转生眼穿越了 开局创建米忽悠,全网求我别刀了 玄鉴仙族 皇朝争霸!开局八百影密卫 天脉神主 异界:开局买下白毛兽耳娘 玄天龙尊 后宫春春色 独宠的温暖 
经典收藏学霸的军工科研系统 代号修罗最新章节 全球高武,提前破局 从阳神开始掠夺 洪荒第一教 洪荒,不成圣照样逍遥 吞噬古帝 谍战迷雾 武动乾坤 绝世第一仙 婉书华 万古帝劫 我家精灵绝对有问题 (快穿)吊死鬼的春天 超神向导 石榴花开朵朵香 穿越做皇帝,体验三千嫔妃 温州外来媳妇儿 吞天鲲 杂灵根的我,成为女帝鼎炉 
最近更新万古第一剑 穿越之汴京秘恋 京都透视神眼 为何穿越后,人人都把我当英雄 仙尊,杀死那个机器人! 天命中的凡人 意外穿越古代当赘婿 玄幻:开局绑定气运系统,打造大夏不朽神朝 道隐茅山 玄幻之吾辈剑修当自立 修真逆袭 赠礼万倍返还:我,仙界第一深情! 召唤系统,携召唤人物争霸诸天 穿越成了乞丐,但是武力值很高 大明外传之携现代智统乱世天 苟道:诸天助我成神 混沌真龙诀 纯阳道体【被诸多仙子喜欢】 灵典天途 瞎编功法也能练成 
Minecraft指令手册 你好MC - Minecraft指令手册txt下载 - Minecraft指令手册最新章节 - Minecraft指令手册全文阅读 - 好看的玄幻魔法小说