PotatoMaster101
大家好,今天讲下如何用指令方块做一个单输出随机器和原理。首先声明这是国外的Dragnoz的创意,并非本人原创。大家可能看见上次本人做了个指令方块抽奖机,也是用的这个原理。原理就是用刷怪笼。因为刷怪笼每次刷出生物的位置都是随机的,所以可以利用这个随机做个随机器。当然,随机器里刷的不是任何生物,而是刷出掉落沙红石块。掉落地点被锁定到了几个输出的位置,所以红石块只会刷到输出位置,而不会随便乱刷。还有个好处是输出可以无限制的加大。(不推荐装在只有少量输出的随机器里,这个随机器可以支持多余20多个输出。)





这个装置很有用,可以做大型电路什么。给大家参考下指令,这条指令是10个输出的指令:
  1. /setblock ~ ~-2 ~ minecraft:mob_spawner 0 replace
  2. {MinSpawnDelay:10,MaxSpawnDelay:10,SpawnCount:1,Delay:1,RequiredPlayerRange:100,MaxNearbyEntities:1,SpawnRange:1,EntityId:FallingSand,SpawnPotentials:
  3. [{Type:FallingSand,Properties:{Pos:[-422.5,57.0,-254.5],Time:50,DropItem:0,TileID:152,EntityId:FallingSand},Weight:1},
  4. {Type:FallingSand,Properties:{Pos:[-422.5,57.0,-255.5],Time:50,DropItem:0,TileID:152,EntityId:FallingSand},Weight:1},
  5. {Type:FallingSand,Properties:{Pos:[-422.5,57.0,-256.5],Time:50,DropItem:0,TileID:152,EntityId:FallingSand},Weight:1},
  6. {Type:FallingSand,Properties:{Pos:[-422.5,57.0,-257.5],Time:50,DropItem:0,TileID:152,EntityId:FallingSand},Weight:1},
  7. {Type:FallingSand,Properties:{Pos:[-422.5,57.0,-258.5],Time:50,DropItem:0,TileID:152,EntityId:FallingSand},Weight:1},
  8. {Type:FallingSand,Properties:{Pos:[-422.5,57.0,-259.5],Time:50,DropItem:0,TileID:152,EntityId:FallingSand},Weight:1},
  9. {Type:FallingSand,Properties:{Pos:[-422.5,57.0,-260.5],Time:50,DropItem:0,TileID:152,EntityId:FallingSand},Weight:1},
  10. {Type:FallingSand,Properties:{Pos:[-422.5,57.0,-261.5],Time:50,DropItem:0,TileID:152,EntityId:FallingSand},Weight:1},
  11. {Type:FallingSand,Properties:{Pos:[-422.5,57.0,-262.5],Time:50,DropItem:0,TileID:152,EntityId:FallingSand},Weight:1},
  12. {Type:FallingSand,Properties:{Pos:[-422.5,57.0,-263.5],Time:50,DropItem:0,TileID:152,EntityId:FallingSand},Weight:1}]}
复制代码
大家看见,指令里大部分都是复制粘贴。也就是有几个输出就复制粘贴几遍(这条指令不会讲太多,详情请看本人的指令方块自定义刷怪笼教程)。唯一变换的是坐标,也就是Pos后面的坐标。这些坐标是输出点位置的坐标。如果有10个输出,那么这些输出所有的位置都要打进指令里。指令方块会让刷怪笼锁定这些坐标,这样刷怪笼就会每次随机选择一个输出刷了。当然,输出器也要有讲究。因为是刷怪笼,而且这个刷怪笼的速度也较快,所以输出器要做两件事:当一个输出开启后,会立即清空刷怪笼,以防刷出第二个红石块。之后用红石块给出输出,然后再把红石块清空。大家看见刷怪笼里的延迟都是10,这里面也有讲究,不可以太快。太快的话会让输出器无法在打开输出后清空刷怪笼,导致每次开启后都会打开2个或更多的输出。当然如果大家要每次输出都开启2个的话,可以自己手动调节延迟,但是单输出就是10。输出器截图:

大家看见这个输出器是一排的,有2排指令方块。指令方块的用处就是清空刷怪笼和红石块。之后后面的中续器会在红石块清空以前接收到信号,给出输出。当然,大家也可以锁定任何一排指令方块,让其无法正常工作。如果锁定清空刷怪笼的一排指令方块的话,那么刷怪笼就不会清空,导致会一直的刷。这样子可以变成全自动模式,不需要任何激活。如果锁定清空红石块的话,那么每次红石块刷出后就不会被清空,而刷怪笼每次刷出红石块时只可以刷在有空气的地方,无法刷出在方块内,最终的效果是让随机器不会两次开启同一个输出。





当然,这个随机器也像其他随机器一样,可以自定义几率。这里是用Weight这个NBT制作的。大家看见本人指令里的Weight都是1,也就是说每个输出都由相同的几率。Weight越高,该输出坐标刷出红石块的几率也越大。


Dragnoz视频原地址:http://www.youtube.com/watch?v=k86p2UdsMKc


===========All Credits Goes To Dragnoz========
==========END==========

jianghr
查看31回复0……{:10_493:}果然是曲高和寡了点么?
话说看明白后也不是非常复杂的关系,不过确实长了点,新人理解有压力。可以像语法解析那样分层次分嵌套解说下会更加友好点。
PS:~是好东西,可惜不能全字段制霸……

simon3000
不错啊顶一个  

1272307182
哇哦你的MC智商好高,没有2个月就有6级了!

tteicom
本人前来提升智商。。。。。。。。话说完全看不懂是怎么回事。。。。。。。。。

六兆年X金坷垃
命令方块。。头都要炸了!

sylqiuyifeng
还是dragnoz大大的产物

冰块⑨号
还好,不算难理解,但是我觉得没有漏斗+投掷器的灵活性高,毕竟能理解的人也不多,最好附加一下句柄的分析

审奥不解释
又是把爱拍的作品转过来,你要是都转完的话要多长时间啊?

PotatoMaster101
审奥不解释 发表于 2014-1-10 21:50
又是把爱拍的作品转过来,你要是都转完的话要多长时间啊?

我现在开始每天之发一个贴了,以防被封

审奥不解释
PotatoMaster101 发表于 2014-1-10 19:53
我现在开始每天之发一个贴了,以防被封

呵呵呵,被封怕了!我之前修改索引结果被封了两次,然后就在也没更新了

Sonic5ds
虽然玩了很长时间红石 但还是里大触有很大距离啊呵呵

creative
用刷怪笼做随机器- -个人表示喜欢用刷怪笼矿车刷出来之后顺着铁轨直接进岩浆- -不用清空了,输出结果清空直接高频接fill(当然版本……呵呵)

hacccc
1.8.4刷不出红石块啊

PotatoMaster101
hacccc 发表于 2015-4-25 10:34
1.8.4刷不出红石块啊

1.8的NBT内要输入文字ID才行了

hacccc
PotatoMaster101 发表于 2015-4-25 11:20
1.8的NBT内要输入文字ID才行了

How to do?
  1. /setblock ~ ~1 ~ minecraft:mob_spawner 0 replace
  2. {MinSpawnDelay:10,MaxSpawnDelay:10,SpawnCount:1,Delay:1,RequiredPlayerRange:100,MaxNearbyEntities:1,SpawnRange:1,EntityId:FallingSand,SpawnPotentials:
  3. [{Type:FallingSand,Properties:{Pos:[545,5,-968],Time:50,DropItem:0,TileID:redstone_block,EntityId:FallingSand},Weight:1},

  4. {Type:FallingSand,Properties:{Pos:[546,5,-968],Time:50,DropItem:0,TileID:redstone_block,EntityId:FallingSand},Weight:1},

  5. {Type:FallingSand,Properties:{Pos:[547,5,-968],Time:50,DropItem:0,TileID:redstone_block,EntityId:FallingSand},Weight:1},

  6. {Type:FallingSand,Properties:{Pos:[548,5,-968],Time:50,DropItem:0,TileID:redstone_block,EntityId:FallingSand},Weight:1},

  7. {Type:FallingSand,Properties:{Pos:[549,5,-968],Time:50,DropItem:0,TileID:redstone_block,EntityId:FallingSand},Weight:1},

  8. {Type:FallingSand,Properties:{Pos:[550,5,-968],Time:50,DropItem:0,TileID:redstone_block,EntityId:FallingSand},Weight:1},

  9. {Type:FallingSand,Properties:{Pos:[551,5,-968],Time:50,DropItem:0,TileID:redstone_block,EntityId:FallingSand},Weight:1},

  10. {Type:FallingSand,Properties:{Pos:[552,5,-968],Time:50,DropItem:0,TileID:redstone_block,EntityId:FallingSand},Weight:1},

  11. {Type:FallingSand,Properties:{Pos:[553,5,-968],Time:50,DropItem:0,TileID:redstone_block,EntityId:FallingSand},Weight:1},

  12. {Type:FallingSand,Properties:{Pos:[554,5,-968],Time:50,DropItem:0,TileID:redstone_block,EntityId:FallingSand},Weight:1}]}
复制代码


第一页 上一页 下一页 最后一页