第一百一十四章 死亡的玩家到底是不是个实体?
OK,在断更了一周多之久后,作者我又回来啦!
首先先给正在参加高考(没错今天高考,不会有人不知道吧?不会吧?)的各位送上一个祝福。
然后估计大家看了这么多章NBT后头有些疼吧?那么接下来我们做一个中场休息,开一个新的第十二卷:中场休息。
实际上作者比你们更头疼,毕竟NBT这东西,五分靠记忆一分靠Minecraft Wiki。
那么剩下四分呢?全靠理解力!
接着就该进入今天的正题了:死亡的玩家到底是不是个实体?
我们知道,一个游戏中的玩家,他和你一样,有两种形态:活着和死了。
你死了,那就真死了,但就算你死了,起码你还是一团物质,有质量。
那么MC里的玩家死了会变成什么呢?
现实中一个人是一坨物质,死了,也是一坨物质。
MC里的玩家是一坨实体,死了,是不是也是一个实体呢?
为了了解这个问题,并把“?”拉直成“!”(等等,你这是???),我们需要找到游戏的外部文件,然后.......
呃,其实不用这样的,我们可以直接从目标选择器入手,因为通过目标选择器,可以锁定目标玩家。
@s、@r、@a、@br /都是用来锁定目标玩家的,而其中的@a可以锁定全部玩家。
接下来这个问题就来了,这个锁定全部玩家,是指锁定全部活着的玩家,还是全部的玩家?
肯定是后者,不然为什么Mojang为什么是写“全部玩家”而不是写“全部活着的玩家”呢?
当然过早下结论是不行的,还是得要实验的。
具体的实验过程(有兴趣的可以自己做一做):
1.开启我亲爱的基岩版
2.创建一个新的存档
3.创建一个新的名为“测试”的计分项,并把它显示在侧边栏
4.获得并放置一个一直重复执行的命令方块,并写上/scoreboard br /layers add @a 测试 1
5.将模式调到生存
6.输入/kill,同时观察侧边栏的值有没有停止增加
结果应证了我们的猜想:@a包含死亡的玩家。
但这仍然无法回答我们的问题:死亡的玩家到底是不是个实体?
为何呢?
因为@a是“全部玩家”,而@e才是“全部实体”啊!
如果@e包含死亡的玩家,那么死亡的玩家是实体,如果没有,那就不是实体。
那么使用@e怎么才能变成类似@a的效果呢?
很久以前就说过了,是@e[tybr /e =br /layers]
接着实验继续:
7.将模式再一次调回创造
8.将命令方块内的/scoreboard br /layers add @a 测试 1改成/scoreboard br /layers add @e[tybr /e =br /layers]测试 1
9.再一次将模式调回生存
10.输入/kill,同时观察侧边栏的值有没有停止增加
你猜结果怎么着?
当死亡的那一刻,侧边栏的值就停止增加了!
这说明了什么呢?
死亡状态的玩家,他根本就不!是!一!个!实!体!
虽然你可以使用@a检测到他,但你无法用@e[tybr /e =br /layer]检测到他!
但得出了这个结论,我们也就同时得出了另一个结论:
在Minecraft中,处于死亡状态的生物他不是一个实体!
这就可以说明为什么死亡的生物会雪~花~飘~飘~(北~风~啸~啸~,天地~一片~苍~茫~~~~~)变成一个粒子效果然后消逝。
那么这个冷知识到底有什么用呢?
我们知道@a包括全部玩家,@e[tybr /e =br /layers]包括除死亡玩家外的所有玩家,那么我们就可以得出一个公式:
@a -@e[tybr /e =br /layer]=@die(@die指死亡玩家)
也就是说可以用@a和@e[tybr /e =br /layer]这两个的差来检测死亡玩家。
但如果要检测单个玩家的死亡呢?
建议提出这种问题的人重读一下小学,看看上面这个公式是什么运算?
减法!
既然是减法,你当然可以通过“两个减数同时加上或减去相同的数,差不变”的减法性质,来对@a和@e同时添加相同的额外条件,让结果不变,而同时又实现别的功能,比如同时添加一个计分项值判定,就可以判断单个玩家了是不是?这样子,你就可以在基岩版做出一个死亡榜了!
而上面这段话也同时证明:虽然MC不归牛顿管,但还是归阿基米德管的嘛。
所以理科要学好啊,不然你连一个游戏都玩不好啊。
嘿,那位,别暂停了,继续放。
一~剪寒梅~~傲立雪中~~
只为~伊人~飘~香~~~~
爱~我所爱~~无怨无悔~~
此情~长留~心~间~~~~
........
完蛋被一剪梅洗脑了