本帖最后由 RedStoneMC 于 2015-2-12 21:39 编辑

Hello大家好我是最强灬神话,这次向大家展示一下本人的自动挖矿机,类似于工业mod里面的挖矿机,可以将9x9xh范围的矿物发现并挖掘。由于是第一次发表命令方块的帖子,有什么问题也总是难免的,也请大家纠正。
由于挖矿机无法实现多人,因此探测的方法会比较丰富,但核心原理不变。


挖矿并不是那么容易的,即使有神器,也会感到无聊(虽然mine就是矿物,craft的就是技艺的意思,Minecraft)
于是我们需要制作一个挖矿机。


把下界之星,TNT和绿宝石块丢在一起,就会得到一个怪物蛋,按右键召唤。


由于是正版头像,因此第一次要一段时间,不要急。
刷出后我们看到有一些字提示我们选择需要的矿物(绿宝石太稀有因此作为交易),右边记录下我们选择了多少次,点重置可以重来,点确定开始(连稿子都没有怎么挖的!?)
如果想关闭挖矿机把得到的书丢出去即可。


这时提示我们要在身上放一些绿宝石,但是我没带。。。
大约过了100000000年后


没过一秒就吃了我六个绿宝石,但是挖矿机终于工作了。。。右边的计分板变成了挖矿机挖到的矿物,告诉我们有多少矿物。
这时无法点击确定重置也不能关闭挖矿机,只能看着它挖矿。


工作很顺利,一会儿就挖了个坑。


有没有发现我的经验在增加,因为挖到煤矿了。


矿物数量超过100啦!


差不多250时,在挖矿机旁边放置了一个箱子。
天哪250多个矿物爽爆啦!让我看看里面有没有[gold_ingot]和[diamond_gem]


突然间觉得没有那么兴奋了不是说有200多吗!?
(挖矿机:哪里骗你了4+3+40+64+45+8+64+6+1+23+6=264没有错!)
核心原理(时间不够下一次会在技巧板发帖讲原理)
首先一提到挖矿机我们要想到/fill命令,因为他可以把指定方块替换。
然后fill有个destroy模式,意思是破坏方块,比如破坏石头掉原石什么的,也就是说/execute entity ~ ~ ~ fill ~4 ~ ~4 ~-4 ~ ~-4 minecraft:air 0 destroy minecraft:coal_ore
但是上面的方法是错误的!fill的指定替换只限定于replace模式,destroy不能选择指定方块破坏,而且这样会卡爆电脑。
于是我们想到/stats。
我们可以把指定方块替换然后把数据记录在计分板里面,但是这样就无法知道有多少矿物和什么种类矿物,因为无法探测不存在玩家,如果制作许多实体那么会特别麻烦。因此还要想办法。
我们首先把指定矿物/clone到指定地点,然后/fill掉矿物destroy,把这些矿物收集到漏斗里(tp),漏斗流动便可以记录矿物多少完成提示,省去了/stats的记录。
先生成那个钻石套盔甲架,原理不多讲。许多教程都有。
  1. execute @e[type=Pig,name=Ore] ~ ~ ~ summon ArmorStand ~ ~ ~ {Equipment:[{},{id:minecraft:diamond_boots,Damage:0s,Count:1b,tag:{Unbreakable:1b}},{id:minecraft:diamond_leggings,Damage:0s,Count:1b,tag:{Unbreakable:1b}},{id:minecraft:diamond_chestplate,Damage:0s,Count:1b,tag:{Unbreakable:1b}},{id:minecraft:skull,Damage:3s,Count:1b,tag:{SkullOwner:YoungCyy}}],Invisible:1b,NoBasePlate:1b,DisabledSlots:2039326,NoGravity:1b,CustomName:Machine}
复制代码
DisabledSlots:2039326的意思是锁住盔甲架防止玩家拿走物品,由于盔甲架隐形所以手臂无法显示。
这里要感谢青皮君和贰逼提供的NBT标签原帖地址:http://www.mcbbs.net/thread-398469-1-1.html
  1. execute @e[type=ArmorStand,name=Machine] ~ ~ ~ summon AromorStand ~ ~ ~ {CustomName:a,Small:1}
复制代码
这个盔甲架作为挖矿的盔甲架,只是看不见,small能够防止盔甲架卡在方块上导致挖矿机停止工作

  1. /scoreboard objectives add 2 dummy
复制代码
添加变量2为了以后探测脚下是不是基岩防止挖出世界。
  1. execute @e[type=ArmorStand,name=Machine] ~ ~ ~ /clone 5 71 390 4 71 390 ~2 ~
复制代码

  1. /clone 5 72 390 4 72 390 5 71 390
复制代码
探测脚下是不是基岩,是的话把箱子clone到挖矿机那里,然后覆盖就箱子。
  1. execute @e[type=ArmorStand,name=a] ~ ~ ~ detect ~ ~-1 ~ minecraft:bedrock 0 scoreboard players set @e[type=ArmorStand,name=a] 2 1
复制代码
如果是基岩把a分数设为1,接上非门反之设为0(其实这里空间没有设置好麻烦了一步但是不能用高频clone不然玩家可以坐等撸破箱子无限刷)

  1. execute @e[type=ArmorStand,name=a,score_2=0] ~ ~ ~ /clone ~4 ~ ~4 ~-4 ~ ~-4 -1 78 388 filtered move minecraft:coal_ore
复制代码
移动矿物到指定位置,然后破坏他们,这时会掉物品,煤矿什么的会掉经验。还有5个这种命令,就不一一发出了

  1. execute @e[type=ArmorStand,name=a,score_2=0] ~ ~ ~ fill ~ ~-1 ~ ~ ~-1 ~ air 0 destroy
复制代码
破坏盔甲架a脚下的方块让他摔下去继续工作直到撞基岩。

  1. tp @e[type=Item,r=30] 5 72 388
复制代码
  1. tp @e[type=XPOrb,r=30] @p
复制代码
  1. execute @e[type=ArmorStand,name=a] ~ ~ ~ tp @e[type=Item,r=1] @p
复制代码
  1. execute @e[type=ArmorStand,name=a] ~ ~ ~ tp @e[type=XPOrb,r=1] @p
复制代码

把盔甲架脚下的经验,物品和clone的矿物物品tp到漏斗里面储存,摆比较器检测输出并加分。
  1. scoreboard objectives add 矿物 dummy
复制代码

最后用上面的方法,把箱子clone到挖矿机面前,工作就完成了,等待玩家丢出书收回挖矿机下一次继续工作。
好的这就是整个机器的核心原理,新手可能听不懂,下一次我会在技巧板讲详细一点,以后有时间的话再制造1.0版更高级的移动式挖矿机,大家尽请期待。
如果您耐心的看到这里,那么存档您可以拿去研究了:http://pan.baidu.com/s/1kTkRuZX
祝大家羊年快乐!
@贰逼 @C-青皮君