弓箭火箭炮 MC1.8命令方块教程

联机侠

该教程并不是面对命令方块初学玩家,而是针对有一定基础命令方块基础的玩家,并且教程内容是针对1.8以上版本,1.7或以下版本可能无法运行。

大家看见,这个火箭炮的威力可以手动调的。而且破不破坏地形也可以手动调节。威力最大差不多是100格内的生物都会被炸到。这个原理是用苦力怕做的,而Sethbling的设计是TNT。这个用普通的弓就可以了,弓箭都不需要任何特效。缺点是任何箭都会爆炸,骷髅/发射器射的箭也会爆炸。

1.jpg

2.jpg

这里就是所有的电路。只有下面一排指令方块是控制弓箭的,所以总共就用了4个指令方块和一个高速脉冲。

230914mcxpss2m69cq2kbx.jpg

给大家说下原理。这个是Sethbling的创意。他还用这个原理作出了一个经验瓶手雷。但是原理还是一样:用最新的@e探测箭/经验,然后把TNT拉过去。之后本人用的原理是隐身的Creeper。好处是可以不破坏地形,而且可以自定义威力。当然,把这个装置改成经验瓶手雷也可以,只需改一下探测对象就可以了。

进入教程。这个的运行方式是:首先有一个指令方块探测着落的箭只。如果探测到了,那就会给出输出,之后会刷出一个隐身并且已经点燃的自定义苦力怕,拥有很短的爆炸延迟。下一步是把苦力怕TP到箭着落的地方,爆炸后会把箭给刷掉。首先教大家如何探测着落的箭:

/testfor @e[type=Arrow,c=1]

{inGround:1b}

大家看见这里运用了新的选中单位:@e。所以在MC1.7这个机器是无法运行的。@e的用处是探测地图里的所有生物和虚体。比如:掉落沙,点燃的TNT等等。生物就是牛,猪,僵尸等。所以十分的有用。于是@e后面加入了:[type=Arrow,c=1]的意思就是探测一个最晚刷出的箭只。这里c=1就是最早的意思(Oldest),也就是第一个刷出的箭只。如果是c=-1的话就是最新的刷出的箭只(Youngest)。c=其他数字的话那就是选中多个目标,没有早晚之分。所以c=1和c=-1是难点,主要用处可以在服务器里分辨。所以指令里的c=1,那就是当机器激活后,会探测一个最早飞出的箭,并给出输出。(新手可能听不懂)。于是后面的NBT:{inGround:1b}就是探测箭只是否着落。b是单位,必须要加。所以,这个指令方块加脉冲的话主要功能就是探测一个已经着落,并且是第一个射出的箭。然后给出输出。

输出完毕后会到第二个指令方块,刷出一个隐身的苦力怕。指令:

/summon Creeper ~ ~1 ~

{ExplosionRadius:100,ActiveEffects:[{Id:14,Duration:99999,Ambient:1}],ignited:1,Fuse:3}

这个指令我就不多说了,主要目的是刷出个隐身,拥有爆炸延迟3的苦力怕。爆炸面积现在输入的是100,但玩家可以自己控制。一档之后激活另一个指令方块,主要用处是把苦力怕传送到刚才探测到的箭的地方。由于延迟特短,所以传送到位置后会马上爆炸,不会有任何延迟。指令是:

/tp @e[type=Creeper,r=5] @e[type=Arrow,c=-1]

苦力怕里的r=5就是把指令方块5格内的苦力怕TP到弓箭那里。如果不加也可以,后果是指令方块会把地图里的所有苦力怕都TP到弓箭的地方。到最后变成苦力怕召唤弓箭了。这里要注意的是刷出苦力怕的地方和TP的指令方块要在5格内的地方。这样才能被正常的探测到,并且TP。箭只是射出的最晚的箭。这个可能会有一个缺点:如果在服务器里,玩家A射出一箭后,之后玩家B又射出了一箭,当玩家A的箭着落后,爆炸会到玩家B的箭上面。因为c=-1的关系,当玩家B射出箭后,他的箭就变成最新刷出的箭了。但是这个可能性很小,因为中途延迟很短。

于是最后就是箭只的清理了。直接用:

/kill @e[type=Arrow]

大家看见/kill现在也可以输入到指令方块里了。而且指令里的kill杀的是箭只。也就是把他们刷掉,以防卡住机器。

联机侠

发表评论

您必须 登录 才能发表留言!