跑跑车游戏网
游戏
网游单机小游戏专题排行榜攻略资讯评测
软件
11应用专题排行榜教程
关于
广告合作网站地图意见反馈

我的世界城堡机关触发装置建造教程

ouqianwei2015/06/08评论 (0)

我的世界中有许许多多有趣的东西,今天小编给大家带来的是我的世界的城堡(CB)机关触发装置建造教程,希望大家喜欢。

展     示
>>demonstrate<<

终于!我到达旅行的目的地了

跟随这张地图(世界地图?!)我终于来到了这个神秘的房子
据说里面有神秘的东西
现在就让我进去一探究竟

哎哟,我勒个去

门打不开真是蛋疼
不过没事,凭我多年的冒险经验
一定有什么机关
让我探索一下

打开旁边的箱子

里面有两把剑

左边的一把似乎有特殊的凹槽

右边仅仅是一把普通的木剑


嗯...
接着我发现门旁边这个地方...
有点可疑!石头强度不高...
仿佛还是空心的?

成功用剑捣碎了这个石头
不过木剑还不能开门呢
要特殊的这把剑才能开

原  理
>>Principle<<
想必同学们看到插入石头里面时都明白了
这是利用盔甲架

summon ArmorStand ~ ~1 ~ {ShowArms:1, NoGravity:1, Invulnerable:1, CustomName:"Slot"}

说是生成带手臂的盔甲架,其实根本不仅仅如此

summon是召唤实体应该不用说了吧,ArmorStand就是盔甲架,~ ~1 ~是指位置,~是代指当前坐标

~1就是当前坐标+1

这些应该都知道吧,{}就是NBT标签了

ShowArms就是为1时让盔甲架显示手臂的标签

NoGravity就是为1时让盔甲架完全不动(不受重力影响)的标签,为了让你能随便把它摆哪

Invulnerable是让其无敌,生存冒险模式破坏不了

CustomName是指定它的名字,引号里面的可以随便改,主要是为了方便之后的操纵


其实这一步可以省略,因为summon的时候你就可以设置好

当然如果你没办法或者懒得在summon之前计算好它的姿势你就可以之后用一些指令来进行若干次修改

首先调整它的位置就是用tp了

tp @e[name=Slot] x y z

这里就体现了之前那个CustomName有什么用,可以方便的选中实体

x y z就是相应坐标,你当然可以让其为小数来精确设定,而这也是NoGravity的用处所在

之后我们就要调整它手臂的姿势了

entitydata @e[name=Slot] {Pose:{RightArm:[0:numf,1:numf,2:numf]}}

其中num是指数字,不是什么需要的,把它换成数字,就是更改手臂的角度

另外Pose(姿势)标签的一个说明:


一切都准备好后我们把我们用以触发机关的东西塞它手上

然后让它隐身(隐身也是summon的时候如果你计算好了可以直接加的标签)

entitydata @e[name=Slot] {Invisible:1}

MC修改完它的NBT标签的同时会在聊天框提示

 

然后我们可以看到盔甲架拿着我的剑时有一条标签

Equipment:[0:{id:"minecraft:wooden_sword",Count:1,tag:{display:{Name:"异质残剑"}}}]

这个我们之后有用

一切都准备好了!

我们就开始制作核心系统吧!


首先我们需要一个时钟电路

嗯 我自然推荐fill大法


fill大法是什么呢

你需要知道一个知识

大概是mc会先执行坐标x轴上的命令方块 其中先执行坐标x值小的然后大的

x执行完了再执行y轴,同上

最后是z轴

(可能语言有误,大家自己去试试就懂了)

因此,我们可以在白色命令方块(先执行的)那里输入

fill ~1 ~ ~ ~1 ~ ~10 stone 0 replace redstone_block

将旁边那一列填充为石头

接着再在黑色命令方块(后执行的)那里输入

fill ~-1 ~ ~ ~-1 ~ ~10 redstone 0 replace stone

最后在那一列放一个红石块就行了

会先执行白色,红石块会被替换成石头,不过接着还要执行黑色的

于是一瞬间石头又被替换回红石块,又执行白色,以此循环,周而复返

等等,replace好像没必要啊?

这是为了方便你拆除和增加刷新的红石块

时钟准备好了我们就要做真正的检测器了

我们得用计分板

首先增加一个分数

scoreboard objectives add gotKey dummy

增加一个名为gotKey的变量

其中gotKey只是变量名,可随便你改

接下来我们在红色命令方块那里输入

scoreboard players set @e[name=Slot] gotKey 0

不断清零盔甲架的分数

对面那个命令方块则输入

scoreboard players set @e[name=Slot] gotKey 1 {Equipment:[0:{id:"minecraft:wooden_sword",Count:1,tag:{display:{Name:"异质残剑"}}}]}

这里前面的@e[]搜索一个叫Slot的实体,然后后面{}里的仍然是NBT标签

这里是用来探测的

你可以发现这里NBT标签就是我之前留下来的那条

因为Equipment就是指定拿(穿、戴)着什么东西的标签

而Equipment里面的{}就是我们的相应物品的NBT标签

如果检测叫做Slot的实体的标签符合以上的话 就会将它的gotKey分数设为1

前面我们说了 x轴较大的会后执行,所以当检测到它拿着相应东西时

前面那个命令方块虽然在不断重置盔甲架的分数,但瞬间(比其它任何命令都先)又执行后面这个命令方块将其设为1

所以分数可以总认作为1

最后两个命令方块就是不一定的了,随便你设定

可以说前面才是触发装置 才是我讲的 后面输出端就是另外一回事了

比如我这里是要开门

那么我就需要当它没拿着相应物品时关门

拿着时开门

则当分数gotKey为1时开门,为0时关门

那么我们就需要两个命令方块(这里顺序已经无所谓了)

execute @e[name=Slot,score_gotKey_min=1] ~ ~ ~ fill x1 y1 z1 x2 y2 z2 redstone_torch

execute @e[name=Slot,score_gotKey=0] ~ ~ ~ fill x1 y1 z1 x2 y2 z2 air

这里的x1 y1 z1 x2 y2 z2就是指铁门下两层的那两个方块

redstone_torch就是红石火把 air是空气

到这里大家应该完全明白了吧!

不知道对你有没有什么帮助呢?

那么 这期就到这了 大家下次再见~

上一篇我的世界饥饿度如何计算 我的世界饥饿值怎么恢复

下一篇我的世界五种杀死末影龙的方法

网友评论
取消

累计评论0

展开其余评论

相关阅读

上滑或点击查看更多...