有趣的是,即使是在编辑模式下,你点击那些按钮,按钮模式的指令和退出时的指令(如果有)也能照常运行,这就省去了手动更改游戏模式的麻烦。
上面说到命令输入框可以换行,每行可以写一个指令,运行时从上到下运行。这时候可能就有问题了——如果有一行指令写错了会怎样?
答案是不会怎样,游戏会直接跳过这一行指令继续执行下去,直到没有指令可以执行。举个栗子:
{“rawtext“:[{“text“:“§a您获得了一颗钻石!§r“}]}
WTF?!
say§e@initiator§r获得了一颗§b钻石§r!
当上面这些指令被运行时,你的聊天栏将会显示:
您已被给予钻石*1
您获得了一颗钻石!
[NPC]你的游戏名获得了一颗钻石!
NPC在运行到WTF?!一行,并没有因为WTF?!是错误的指令而停止执行,反而是连错误信息都不放一个就继续执行下去。
你应该注意到了,在上面的指令中,出现了一个奇怪的目标选择器:@initiator
什么是@initiator?它指代了什么东西?
让我们回想一下第四章目标选择器的内容,或许你能想起来在第四章曾讲到:
@initiator——代指正在与该NPC交互的玩家[仅基岩版],不管这名玩家是否在交互时被杀死
@initiator指代的就是正在和运行指令的NPC交互的玩家。这或许是目前最难记下来的目标选择器变量了吧。
回到这个命令面板上来。命令面板并不能无限制添加,一个NPC最多就只能添加6个命令面板。但考虑到一个命令面板就可以放下来许多条命令,实际上没什么影响。
现在,我们已经知道了如何获得和使用NPC。但是,如果我们要把NPC投入实践,我们就不得不面对一个问题:NPC会不会被击杀?
这个问题的答案肯定是能的,你只需要用一些方法将NPC推下虚空(它们还是会受重力影响的),然后NPC就会死亡。
我们需要对这个问题作出一些限制,也就是:NPC能否通过正常手段击杀?
这个问题的答案是不能。NPC可以免疫几乎一切的伤害,包括——摔落、爆炸、生物攻击、玩家攻击、火焰灼烧、冰冻、窒息、药水效果等等等。基本上,NPC对于没有权限的玩家来说不可击杀。
因此,放心使用NPC,官方出品的怎么可能会是不保险的呢?虽然Mojang确实搞出过很多不保险的东西。
这就是本章的全部内容,但这仅仅是NPC的冰山一角。我们将在以后了解到更多有关于NPC的内容。
————历史————
-携带版/基岩版
0.16.0——加入又移除了NPC,但没有完全移除。
1.0.0——重新加入了NPC。
1.8.0——能够使用/summon指令生成NPC了。
1.10.0——现在不能使用/summon指令生成NPC,但NPC现在有功能了。
1.12.0——现在NPC又没功能了。
1.16.0——现在能够获取到NPC的刷怪蛋,也能够使用/summon指令生成,同时NPC又有功能了。NPC也不再是只有20点生命值。
1.18/1.19——加入了一堆皮肤
-教育版
1.0——加入了NPC
1.14/1.18——加入了一堆皮肤