Minecraft(我的世界)中文论坛

标题: MC1.8:指令方块自动的挖矿机/伙伴助手展示

作者: PotatoMaster101    时间: 2014-9-25 21:16
标题: MC1.8:指令方块自动的挖矿机/伙伴助手展示
本帖最后由 PotatoMaster101 于 2014-9-29 21:48 编辑

大家好。今天无聊时做了一个小作品:全自动的生存合作伙伴。这个“伙伴”会自动挖矿,自动钓鱼和自动帮玩家打怪什么。

这个东西灵感来自国外的装备架挖矿机,主要是一个手拿钻石镐的装备架,自己自动往地下挖。截图:


@Xhand

-----------分割线--------------
这个机器首先需要几个积分版。指令:
  1. /scoreboard objectives add Mine dummy
复制代码
  1. /scoreboard objectives add State dummy
复制代码
  1. /scoreboard objectives add InWater dummy
复制代码
  1. /scoreboard objectives add SpawnEgg stat.useItem.minecraft.spawn_egg
复制代码
分别加入Mine, State, InWater和SpawnEgg积分版。大家看见SpawnEgg的积分版是stat.useItem.minecraft.spawn_egg变量,这是因为这个伙伴的召唤方法就是用刷怪蛋。

(以下指令都用脉冲激活。速度越快越好)

大家看见Mine积分版,这个积分版主要是用来控制掉在地上的物品。因为工作原理是,如果给伙伴一个钻石块,那他就会进入挖矿模式。绿宝石块就会进入钓鱼模式,然后金块就会进入攻击/防御模式。所以,这里使用Mine积分版来控制和探测落地的宝石块,然后给他们加分。指令:
  1. /scoreboard players reset * Mine
复制代码
这条指令清空Mine积分版。
  1. /scoreboard players set @e[type=Item] Mine 1
  2. {OnGround:1b,Item:{id:"minecraft:diamond_block"}}
复制代码

给落地的钻石块加分(1)。钻石块控制挖矿。
  1. /scoreboard players set @e[type=Item] Mine 2
  2. {OnGround:1b,Item:{id:"minecraft:gold_block"}}
复制代码
给落地的金块加分(2)。金块控制保护。
  1. /scoreboard players set @e[type=Item] Mine 3
  2. {OnGround:1b,Item:{id:"minecraft:emerald_block"}}
复制代码
给落地的绿宝石块加分(3)。绿宝石快控制钓鱼。

之后就是InWater积分版的控制。这个积分版主要是控制钓鱼模式探测伙伴有没有在水里。如果伙伴在水里,那么积分会变成1,不在水里重新变回0。运行方法和刚才一样:
  1. /scoreboard players reset * InWater
复制代码
清空InWater积分版。
  1. /execute @e[type=ArmorStand,name=Friend] ~ ~ ~ detect ~ ~ ~ minecraft:water 0
  2. /scoreboard players set @e[type=ArmorStand,name=Friend] InWater 1
复制代码
给在水里的Friend装备架(伙伴)加分

-----------分割线--------------

这里积分版就完成了。之后来控制的是:防御模式。这个就是默认模式,伙伴刚刷出来的时候就是这个模式。在这个模式下,伙伴手里会拿着一把钻石剑。防御模式的控制:(以下指令按照顺序在脉冲下运行
  1. /execute @e[type=Item,score_Mine_min=2,score_Mine=2] ~ ~ ~
  2. /execute @e[type=ArmorStand,name=Friend,r=1] ~ ~ ~
  3. /scoreboard players set @e[type=ArmorStand,name=Friend,r=1] State 1
复制代码
探测落地的金块附近有没有伙伴。如果有伙伴,把伙伴的State积分版加到1分。State积分版主要是控制伙伴的模式(钓鱼,防御,挖矿)。
  1. /execute @e[type=Item,score_Mine_min=2,score_Mine=2] ~ ~ ~
  2. /execute @e[type=ArmorStand,name=Friend,r=1] ~ ~ ~
  3. /entitydata @e[type=ArmorStand,name=Friend,r=1]
  4. {Equipment:[{id:"minecraft:diamond_sword",Count:1b,Damage:0s,tag:{ench:[],Unbreakable:1b}},
  5. {id:"minecraft:chainmail_boots",Count:1b,Damage:0s,tag:{Unbreakable:1b,ench:[]}},
  6. {id:"minecraft:chainmail_boots",Count:1b,Damage:0s,tag:{Unbreakable:1b,ench:[]}},
  7. {id:"minecraft:chainmail_boots",Count:1b,Damage:0s,tag:{Unbreakable:1b,ench:[]}},
  8. {id:"minecraft:skull",Damage:3s,Count:1b,tag:{SkullOwner:"RookieXhand",ench:[]}}]}
复制代码
这条指令和刚才的一样,但是除了探测伙伴以外,还给伙伴加装备。这里使用/entitydata给伙伴加钻石剑。
  1. /execute @e[type=Item,score_Mine_min=2,score_Mine=2] ~ ~ ~
  2. /execute @e[type=ArmorStand,name=Friend,r=1] ~ ~ ~
  3. /summon Wolf ~ ~1 ~
  4. {Silent:1b,ActiveEffects:[{Id:14,Duration:9999,ShowParticles:0b}],
  5. Invulnerable:1b,CustomName:"FriendWolf",Owner:"PotatoMaster101"}
复制代码
这条指令给伙伴的位置刷一条自定义的狗出来。这样可以帮助玩家打怪什么。(大家看见狗是隐身的,而且Owner里面写着PotatoMaster101。大家的话就把PotatoMaster101改成自己的名字)。
  1. /execute @e[type=Item,score_Mine_min=2,score_Mine=2] ~ ~ ~
  2. /execute @e[type=ArmorStand,name=Friend,r=1] ~ ~ ~
  3. /tp @e[type=Item,score_Mine_min=1,r=1] ~ ~-9999 ~
复制代码
这条指令去除金块。所以最后的效果就是,给伙伴的位置扔一个金块,伙伴会探测到,并且进入防御模式保卫主人。

-----------分割线--------------

之后就是挖矿模式。但是首先我们要给伙伴一个移动系统。因为默认模式下伙伴是跟着主人走的,只有在挖矿或者钓鱼模式下才会停止。所以主要就是伙伴(装备架)一直TP到主人的狗那里,这样走哪里跟哪里。指令:
  1. /tp @e[type=ArmorStand,name=Friend] @e[type=Wolf,name=FriendWolf,c=1]
复制代码
装备架(伙伴)TP到狗那里。
  1. /execute @e[type=Item,score_Mine_min=1,score_Mine=1] ~ ~ ~
  2. /execute @e[type=ArmorStand,name=Friend,r=1] ~ ~ ~
  3. /scoreboard players set @e[type=ArmorStand,name=Friend,r=1] State 2
复制代码
探测钻石块旁边的装备架,并把它们的State积分改成2
  1. /execute @e[type=Item,score_Mine_min=1,score_Mine=1] ~ ~ ~
  2. /execute @e[type=ArmorStand,name=Friend,r=1] ~ ~ ~
  3. /entitydata @e[type=ArmorStand,name=Friend,r=1] {Equipment:[{id:"minecraft:diamond_pickaxe",Count:1b,Damage:0s,tag:{ench:[],Unbreakable:1b}},
  4. {id:"minecraft:chainmail_boots",Count:1b,Damage:0s,tag:{Unbreakable:1b,ench:[]}},
  5. {id:"minecraft:chainmail_boots",Count:1b,Damage:0s,tag:{Unbreakable:1b,ench:[]}},
  6. {id:"minecraft:chainmail_boots",Count:1b,Damage:0s,tag:{Unbreakable:1b,ench:[]}},
  7. {id:"minecraft:skull",Damage:3s,Count:1b,tag:{SkullOwner:"RookieXhand",ench:[]}}]}
复制代码
给钻石块旁边的装备架,手拿钻石镐
  1. /execute @e[type=Item,score_Mine_min=1,score_Mine=1] ~ ~ ~
  2. /execute @e[type=ArmorStand,name=Friend,r=1] ~ ~ ~
  3. /kill @e[type=Wolf,name=FriendWolf,r=1]
复制代码
把钻石块装备架那里的狗杀掉。因为已经进入了挖矿模式,狗在的话会导致乱跑,挖矿效率降低而且破坏地形。
  1. /execute @e[type=Item,score_Mine_min=1,score_Mine=1] ~ ~ ~
  2. /execute @e[type=ArmorStand,name=Friend,r=1] ~ ~ ~
  3. /kill @e[type=Item,score_Mine_min=1,r=1]
复制代码
钻石块移除。
  1. /execute @e[type=ArmorStand,name=Friend,score_State_min=2,score_State=2] ~ ~ ~ detect ~ ~-2 ~ minecraft:bedrock 0
  2. /setblock -475 57 -438 minecraft:redstone_block 0 replace
复制代码
探测挖矿模式下地下2格有没有地壳。如果有的话,那就把挖矿脉冲关掉。这个是防止伙伴挖矿挖出世界

大家看见以上指令方块没有任何挖矿的指令,这是因为以上指令方块都在高速脉冲下面,挖矿的指令方块在一个比较慢的脉冲下面,后期会说到)。

-----------分割线--------------

之后是钓鱼模式
  1. /execute @e[type=Item,score_Mine_min=3,score_Mine=3] ~ ~ ~
  2. /execute @e[type=ArmorStand,name=Friend,r=1,score_InWater_min=1,score_InWater=1] ~ ~ ~
  3. /scoreboard players set @e[type=ArmorStand,name=Friend,r=1] State 3
复制代码
探测绿宝石快,附近有没有站在水里的伙伴
  1. /execute @e[type=Item,score_Mine_min=3,score_Mine=3] ~ ~ ~
  2. /execute @e[score_InWater_min=1,type=ArmorStand,name=Friend,r=1] ~ ~ ~
  3. /entitydata @e[type=ArmorStand,name=Friend,r=1] {Equipment:[{id:"minecraft:fishing_rod",Count:1b,Damage:0s,tag:{ench:[],Unbreakable:1b}},
  4. {id:"minecraft:chainmail_boots",Count:1b,Damage:0s,tag:{Unbreakable:1b,ench:[]}},
  5. {id:"minecraft:chainmail_boots",Count:1b,Damage:0s,tag:{Unbreakable:1b,ench:[]}},
  6. {id:"minecraft:chainmail_boots",Count:1b,Damage:0s,tag:{Unbreakable:1b,ench:[]}},
  7. {id:"minecraft:skull",Damage:3s,Count:1b,tag:{SkullOwner:"RookieXhand",ench:[]}}]}
复制代码
给有绿宝石,站在水里的伙伴装备(鱼钩)。
  1. /execute @e[type=Item,score_Mine_min=3,score_Mine=3] ~ ~ ~
  2. /execute @e[type=ArmorStand,name=Friend,r=1,score_InWater_min=1] ~ ~ ~
  3. /kill @e[type=Wolf,name=FriendWolf,r=1]
复制代码
狗移除掉。因为钓鱼模式下是不能动的。
  1. /execute @e[type=Item,score_Mine_min=3,score_Mine=3] ~ ~ ~
  2. /execute @e[type=ArmorStand,name=Friend,r=1,score_InWater_min=1] ~ ~ ~
  3. /kill @e[type=Item,score_Mine_min=1,r=1]
复制代码
绿宝石块移除掉

之后就是钓鱼系统了。因为钓鱼系统不包括在高速脉冲内,是一个随机器控制
  1. /setblock ~ ~1 ~ minecraft:mob_spawner 0 replace
  2. {MinSpawnDelay:125,MaxSpawnDelay:125,SpawnCount:1,Delay:1,RequiredPlayerRange:100,MaxNearbyEntities:1,SpawnRange:1,EntityId:FallingSand,SpawnPotentials:[{Type:FallingSand,Properties:{Pos:[-463.5,56.5,-435.5],Time:50,DropItem:0,Block:"minecraft:redstone_block"},Weight:5},{Type:FallingSand,Properties:{Pos:[-463.5,56.5,-434.5],Time:50,DropItem:0,Block:"minecraft:redstone_block"},Weight:4},{Type:FallingSand,Properties:{Pos:[-463.5,56.5,-433.5],Time:50,DropItem:0,Block:"minecraft:redstone_block"},Weight:3},{Type:FallingSand,Properties:{Pos:[-463.5,56.5,-432.5],Time:50,DropItem:0,Block:"minecraft:redstone_block"},Weight:3},{Type:FallingSand,Properties:{Pos:[-463.5,56.5,-431.5],Time:50,DropItem:0,Block:"minecraft:redstone_block"},Weight:6}]}
复制代码
大家看见,这里用的是刷怪笼随机器。这个随机器有5个输出:获得空气,鱼1,鱼2,鱼3,鱼4。一共有4种鱼,获得空气的几率比较大。

-----------分割线--------------

之后就是一些其他的系统了,比如:输入,挖矿机设置,防止熊孩子什么。
首先是挖矿的延迟。挖矿没有加到高速脉冲上面,因为如果加上的话,那挖矿速度几秒就能到达地壳,所以本人另外造了一个速度慢点的脉冲来设置挖矿:
  1. /execute @e[type=ArmorStand,name=Friend,score_State=2,score_State_min=2] ~ ~ ~
  2. /fill ~-1 ~-1 ~-1 ~1 ~ ~1 minecraft:air 0 destroy
复制代码
这里把伙伴下面3*1*3的区域挖掉。之后这里是使用的漏斗脉冲,加上自定义的{TransferCooldown}来控制延迟:
  1. /blockdata ~ ~ ~-2 {TransferCooldown:12}
复制代码
这里把漏斗的传送速度调到12 ticks

之后就是输入系统。这里本人使用刷怪蛋,每次玩家扔一个水下护卫刷怪蛋就会刷出伙伴,扔一个鸡刷怪蛋就会杀死伙伴:
  1. /execute @e[name=SummonBuddy,type=Guardian] ~ ~ ~
  2. /setblock -472 56 -436 minecraft:redstone_block 0 replace
复制代码
探测有没有一个叫“SummonBuddy”的水下护卫,如果有的话就会激活输入,刷出伙伴
  1. /execute @e[name=KillBuddy,type=Chicken] ~ ~ ~
  2. /setblock -457 57 -458 minecraft:redstone_block 0 replace
复制代码
同样,探测有没有“KillBuddy”鸡,有的话会开启重置机器的电路

刷出伙伴的指令:
  1. /execute @e[name=SummonBuddy,type=Guardian] ~ ~ ~
  2. /execute @p[score_SpawnEgg_min=1] ~ ~ ~
  3. /summon ArmorStand ~ ~1 ~
  4. {CustomName:"Friend",Invisible:1b,Equipment:[{id:"minecraft:diamond_sword",Damage:0s,Count:1b,tag:{Unbreakable:1b,ench:[]}},
  5. {id:"minecraft:chainmail_boots",Count:1b,Damage:0s,tag:{Unbreakable:1b,ench:[]}},
  6. {id:"minecraft:chainmail_boots",Count:1b,Damage:0s,tag:{Unbreakable:1b,ench:[]}},
  7. {id:"minecraft:chainmail_boots",Count:1b,Damage:0s,tag:{Unbreakable:1b,ench:[]}},
  8. {id:"minecraft:skull",Damage:3s,Count:1b,tag:{SkullOwner:"RookieXhand",ench:[]}}],
  9. NoGravity:0b,NoBasePlate:1b,DisabledSlots:2069869,ShowArms:0b,Small:0b}
复制代码
这条指令探测“SummonBuddy”的水下护卫,然后把最近的使用过刷怪蛋的玩家那里刷出一个自定义装备架。

刷出
  1. /execute @e[name=SummonBuddy,type=Guardian] ~ ~ ~
  2. /execute @p[score_SpawnEgg_min=1] ~ ~ ~
  3. /summon Wolf ~ ~ ~
  4. {Silent:1b,ActiveEffects:[{Id:14,Duration:9999,ShowParticles:0b}],
  5. Invulnerable:1b,CustomName:"FriendWolf",Owner:"PotatoMaster101"}
复制代码
刷出一个隐身的,主人是“PotatoMaster101”的狗。


然后其他的指令包括开启随机器,杀掉水下护卫,重置积分版什么本人这里就不一一列出了相信大家都会

但是这个机器不支持一个地图内有2个伙伴,可能会有冲突。所以有一个系统就是限制只能刷出一个:
  1. /testfor @e[type=ArmorStand,name=Friend]
复制代码
探测地图里有没有叫“Friend”的装备架,有的话就会开启输出,然后输出就是通过使用/blockdata来改变输入的指令方块,来调节指令会不会被输入。这里本人也不会多说。

地图其他部位就没什么好说的了,都是比较基础。

http://v.youku.com/v_show/id_XNzkxOTk1Nzky.html
百度云下载地址进入存档后,在指令方块上有海绵的指令方块里改动自己的名字。那些都是刷出狗的指令方块,大家把Owner:"PotatoMaster101"的名字改成自己的名字就可以了。进入存档后按绿色按钮拿到所有的刷怪蛋和宝石块。红色按钮是重置机器。之后玩家自行开启脉冲,2个开关
============END=============

[groupid=546]Command Block Logic[/groupid]
作者: RedStoneMC    时间: 2014-9-25 21:18
终于找到自动挖矿的神命令了!LZ大大教教我命令方块吧,NBT实在不懂。。。
作者: RedStoneMC    时间: 2014-9-25 21:19
话说YouTube不要money能上吗?
作者: PotatoMaster101    时间: 2014-9-25 21:20
RedStoneMC 发表于 2014-9-25 21:18
终于找到自动挖矿的神命令了!LZ大大教教我命令方块吧,NBT实在不懂。。。 ...

看帖有教程

主要把脚下的方块/fill或者/setblock了
作者: 昵称能吃吗    时间: 2014-9-25 21:22
好强大的小♂伙♂伴啊!屌炸天了
作者: 审奥不解释    时间: 2014-9-25 21:24
PM萌!23333
do,审奥菌笑道
作者: z12344321    时间: 2014-9-25 21:25
LZ你这些都是在哪学的?好厉害!另外就是1.7.10可以用吗?
作者: PotatoMaster101    时间: 2014-9-25 21:30
z12344321 发表于 2014-9-25 21:25
LZ你这些都是在哪学的?好厉害!另外就是1.7.10可以用吗?

1.8以下的都运行不了 需要1.8的新指令
作者: z12344321    时间: 2014-9-25 21:36
PotatoMaster101 发表于 2014-9-25 21:30
1.8以下的都运行不了 需要1.8的新指令

那1.8能不能用命令方块来种植植物?
作者: PotatoMaster101    时间: 2014-9-25 21:38
z12344321 发表于 2014-9-25 21:36
那1.8能不能用命令方块来种植植物?

/setblock可以 如果要加入这个系统的话,那么和钓鱼一样,装一个随机器,把附近随机的田地/setblock种田
作者: z12344321    时间: 2014-9-25 21:42
PotatoMaster101 发表于 2014-9-25 21:38
/setblock可以 如果要加入这个系统的话,那么和钓鱼一样,装一个随机器,把附近随机的田地/setblock种田 ...

这些我不是很懂,大神能不能做一个关于这方面的教程?
作者: PotatoMaster101    时间: 2014-9-25 21:44
z12344321 发表于 2014-9-25 21:42
这些我不是很懂,大神能不能做一个关于这方面的教程?

最基本的连NBT都不用

/setblock应该可以放置一个种子
作者: 白天    时间: 2014-9-25 21:44
又捕捉到的pm101了~
希望大大能够做点更难的cb系统~
作者: z12344321    时间: 2014-9-25 21:47
PotatoMaster101 发表于 2014-9-25 21:44
最基本的连NBT都不用

/setblock应该可以放置一个种子

说实话,/setblock现在才听说,我先去网上查查,要是不懂再来请教你吧!
作者: Exsu    时间: 2014-9-25 22:25
1.8真是逼死mod
作者: 筒子    时间: 2014-9-26 23:18
官方逼死mod系列嘛←_←
作者: 北美路人    时间: 2014-9-27 04:11
不错,doc的概率
作者: 大爱籽岷    时间: 2014-9-27 07:42
PotatoMaster101 发表于 2014-9-25 21:20
看帖有教程

主要把脚下的方块/fill或者/setblock了

发下载地址就行了

作者: Xhand    时间: 2014-9-27 17:23
PM 泥垢了 {:10_498:}
作者: 末影矿工    时间: 2014-10-6 16:44
Xhand 发表于 2014-9-27 17:23
PM 泥垢了

插手获得成就,PM帝国小伙伴
作者: 我的啥    时间: 2014-10-6 16:52
圣旨领!!!
作者: 起名想到金坷垃    时间: 2014-10-7 14:45
大大来屠版系列!亮瞎我狗眼!
作者: 丶木少君    时间: 2014-10-7 14:59
表示看不懂= -
作者: hongxingsh    时间: 2014-12-11 15:10
楼主我来学习了
作者: 172095067    时间: 2015-3-15 13:37
PotatoMaster101 发表于 2014-9-25 21:30
1.8以下的都运行不了 需要1.8的新指令

为什么我用1.8的版本,按照你的说法把名字改了没用啊!!咋回事,求解
作者: 咕噜and呼噜    时间: 2015-3-29 13:18
表示小伙伴没有出现QAQ
作者: hacccc    时间: 2015-5-5 18:44
请问大神你是如何探测伙伴在水里的?

作者: PotatoMaster101    时间: 2015-5-5 21:23
hacccc 发表于 2015-5-5 18:44
请问大神你是如何探测伙伴在水里的?

自己看帖子里面有说到execute detect 水方块

作者: ruhuasiyu    时间: 2015-5-7 06:48
直接fill ... air 0 destroy 不就可以挖了么?配合execute基本就可以自动了 啊
作者: 战神eee    时间: 2015-8-22 22:00
{:10_492:}表示看了半天没看懂
作者: 战神eee    时间: 2015-8-22 22:10
z12344321 发表于 2014-9-25 21:47
说实话,/setblock现在才听说,我先去网上查查,要是不懂再来请教你吧!

setblock(设置方块)用法:/setblock x y z 方块ID(如果不是方块就是一个掉落在地上的实体)
作者: 小进ca    时间: 2015-11-2 21:23
伙伴的移动竟然是tp到狗那里!
作者: 2330848276    时间: 2019-2-25 22:52
1.8好评!长知识了
作者: Zhaozy666    时间: 2019-2-26 10:33
大佬收徒吗
作者: 楚zzz    时间: 2019-3-2 20:40
直接复制就可以了吗?

作者: 是咲夜小姐    时间: 2019-4-30 12:55
也许这就是大佬吧
作者: 1677343686    时间: 2019-5-5 14:00
哇,这么骚吗
作者: yuen27787231    时间: 2019-5-19 04:02
連單人都能自動挖礦了 指令真的一個大坑