前言
大家好,今天给大家带来的是一个可以自定义合成的东东,其实这个东西我之前是有灵感的,但因不会testforblock所以搁置了,今天看了Dragnoz的视频顿时有了灵感啊、其实这个没有你们想象的那么神奇,只是一个含有NBT标签的testforblock和setblock而已啦~
展示
1.合成僵尸生怪蛋
啦啦啦,今天弄到几个僵尸头,可以合成僵尸蛋了!
众:呵呵你是在作死吗,不仅就没有这个配方,还放到发射器里了。
之后,突然被强制退出发射器的界面,可以看到它被岩浆取代了。
不到半秒钟后,发射器又回来了。
嗯打开,可以看到僵尸刷怪蛋就合成好了。
众惊呼:这不科学!
原理
这台机器原理很简单,就是一个命令方块连着高频脉冲使用testforblock指令检测指定位置上的发射器是否装有指定物品,并且规定一定数量和正确的排列顺序。命令方块代码如下:
- testforblock 458 86 -366 dispenser 3 {Items:[0:{Slot:0b,id:397s,Damage:2s,Count:1b},{Slot:1b,id:397s,Damage:2s,Count:1b},{Slot:2b,id:397s,Damage:2s,Count:1b},{Slot:3b,id:397s,Damage:2s,Count:1b},{Slot:4b,id:344s,Damage:0s,Count:1b},{Slot:5b,id:397s,Damage:2s,Count:1b},{Slot:6b,id:397s,Damage:2s,Count:1b},{Slot:7b,id:397s,Damage:2s,Count:1b},{Slot:8b,id:397s,Damage:2s,Count:1b}]}
- setblock 458 86 -366 lava
- /setblock 458 86 -366 dispenser 3 replace {Items:[{id:383,Count:1,Slot:0,Damage:54}]}
应用
本机器应用真的十分广泛,如在RPG地图里可以让玩家找齐几种自定义的物品,然后合成一件道具,这些物品都可以拥有NBT标签。或者也能用在箱子上,给箱子中放指定物品就会触发机关。或者甚至可以当做密码锁,比如箱子里放7块不同颜色的羊毛,只有找到密码正确排列顺序才能解锁。
教程
总而言之,要制作这个还是需要用到Mcedit的(当然如果你是命令方块大神可以自己写代码)。这次用到的是一个把容器转换为命令方块的滤器,因为testforblock与setblock的格式十分接近,所以我们只需在setblock命令的基础上对命令进行改造就可以了。
滤器:TileEntityToCommand
首先,放置一个发射器。
里面装有你希望的合成配方,这个是命令方块。
然后退出游戏换Mcedit。
进入Mcedit后,先选中发射器。
然后选择滤器,找到TileEntityToCommand 。
第一行是选择生成命令方块还是命令矿车。先说X、Y、Z,代表这个命令方块生成的发射器的坐标在哪里。如果Coordinates are Relative to Command Block选了话就是他的相对坐标(命令就是~x ~y ~z),不选就是正常坐标(x,y,z),这里我没有勾选。最后一个嘛,就不要在意了。
然后点Filter,发射器就变成了命令方块,然后保存后进入游戏,把代码粘出。
以下是代码改编时间
此操作全部在Word或记事本中完成!
现在这个是原来的命令:
setblock 305.5 58.0 -1809.2 23 5 replace {Items:[{id:265s,Damage:0s,Count:1b,Slot:0b},{id:331s,Damage:0s,Count:1b,Slot:1b},{id:265s,Damage:0s,Count:1b,Slot:2b},{id:331s,Damage:0s,Count:1b,Slot:3b},{id:399s,Damage:0s,Count:1b,Slot:4b},{id:331s,Damage:0s,Count:1b,Slot:5b},{id:265s,Damage:0s,Count:1b,Slot:6b},{id:331s,Damage:0s,Count:1b,Slot:7b},{id:265s,Damage:0s,Count:1b,Slot:8b}],id:"Trap"}
第一步先把setblock改成testforblock,把replace删去。然后如下:
testforblock 305.5 58.0 -1809.2 23 5 {Items:[{id:265s,Damage:0s,Count:1b,Slot:0b},{id:331s,Damage:0s,Count:1b,Slot:1b},{id:265s,Damage:0s,Count:1b,Slot:2b},{id:331s,Damage:0s,Count:1b,Slot:3b},{id:399s,Damage:0s,Count:1b,Slot:4b},{id:331s,Damage:0s,Count:1b,Slot:5b},{id:265s,Damage:0s,Count:1b,Slot:6b},{id:331s,Damage:0s,Count:1b,Slot:7b},{id:265s,Damage:0s,Count:1b,Slot:8b}],id:"Trap"}
第二步,把,id:"Trap"注意连带之前的逗号都删掉,最终如下:
testforblock 305.5 58.0 -1809.2 23 5 {Items:[{id:265s,Damage:0s,Count:1b,Slot:0b},{id:331s,Damage:0s,Count:1b,Slot:1b},{id:265s,Damage:0s,Count:1b,Slot:2b},{id:331s,Damage:0s,Count:1b,Slot:3b},{id:399s,Damage:0s,Count:1b,Slot:4b},{id:331s,Damage:0s,Count:1b,Slot:5b},{id:265s,Damage:0s,Count:1b,Slot:6b},{id:331s,Damage:0s,Count:1b,Slot:7b},{id:265s,Damage:0s,Count:1b,Slot:8b}]}
然后把它粘回到命令方块里就行了
之后进入游戏,把命令方块移到别的地方,在原来的位置放一个发射器,装好预定的物品。
之后可以在命令方块后面放比较器在输入信号检测一下。
这里没有输出信号,让我们打开命令方块看一下,说是预定值为5,现在却为2。预定值指的就是加下划线的。
testforblock 305.5 58.0 -1809.2 23 5 {Items:[{id:265s,Damage:0s,Count:1b,Slot:0b},{id:331s,Damage:0s,Count:1b,Slot:1b},{id:265s,Damage:0s,Count:1b,Slot:2b},{id:331s,Damage:0s,Count:1b,Slot:3b},{id:399s,Damage:0s,Count:1b,Slot:4b},{id:331s,Damage:0s,Count:1b,Slot:5b},{id:265s,Damage:0s,Count:1b,Slot:6b},{id:331s,Damage:0s,Count:1b,Slot:7b},{id:265s,Damage:0s,Count:1b,Slot:8b}]}
这个值代表了他的基本数据,如朝向。我们把它改成2就行了。之后再拉下拉杆,就输出信号了。
然后给命令方块连上脉冲。
比较器后面的指令就是把发射器替换成岩浆。
- setblock 305.5 58.0 -1809.2 11
绿的里面的命令又需要用到Mcedit,这里就不上图了,就是把发射器里面放上最终合成后的物品,然后用上方的滤器如法炮制,得到一个命令方块,把命令复制进去,不用任何修改。
- setblock 305.5 58.0 -1809.2 23 2 replace {Items:[{id:137s,Damage:0s,Count:1b,Slot:0b}],id:"Trap"}
现在制作流程就结束了,我们试验一下。
放入物品:
然后放置了岩浆,强制退出。打开以后,就是一个命令方块了。
虽然我知道你们很多人可能都看不懂或不能理解这篇教程,但毕竟这很有用,请支持一下初一党吧,马上期末考试了还在发帖别的都不求了,只求你们点一下顶!