本帖最后由 26号猪肉 于 2019-6-17 09:22 编辑
准确上来说这是我的第一个教程贴,,,多多包涵哈
绝对原创,如有雷同,纯属巧合
重申版本是远古版本1.12
已知bug:打开投掷器有时会不成功,多试几次

作用:站在投掷器上打开投掷器时会随机选择武器

优点:随处可放,不需要繁琐的一个个设置命令

缺点:无法多人使用,必须站在投掷器上
伸手党要的存档:
链接: https://pan.baidu.com/s/1XyPPyG275-L-Rm4JxSr66w 提取码: q1ct
教程开始
总体分为三个部分①探测部分 ②抽奖部分 ③随机部分
准确上来说这是我的第一个教程贴,,,多多包涵哈
绝对原创,如有雷同,纯属巧合
重申版本是远古版本1.12
已知bug:打开投掷器有时会不成功,多试几次

作用:站在投掷器上打开投掷器时会随机选择武器



优点:随处可放,不需要繁琐的一个个设置命令

缺点:无法多人使用,必须站在投掷器上
伸手党要的存档:
链接: https://pan.baidu.com/s/1XyPPyG275-L-Rm4JxSr66w 提取码: q1ct
教程开始

总体分为三个部分①探测部分 ②抽奖部分 ③随机部分
在此之前创造
/scoreboard objectives add open stat.dropperInspected【一个名叫open的计分板,记录玩家打开投掷器次数】
/scoreboard objectives add test dummy【一个名叫test的计分板,探测玩家是否打开过投掷器】
/scoreboard objectives add giving dummy【一个名叫giving的计分板,用于随机部分】
注意:所有循环命令方块都是保持开启,所有连锁命令方块都不是条件限制!!
第一部分详解

A部分(高频红石装置)
用漏斗计时和高频红石给1充能(后面用数字代替命令方块)
B部分(检测装置)
1 execute @a[score_open_min=1] ~ ~ ~ /scoreboard players set @s open 0 【跟后面高频通用,随时清空open次数】
2 execute @a[score_open_min=1] ~ ~ ~ /testforblocks ~ ~-1 ~ ~ ~-1 ~ x y z 【探测玩家脚底下是否有投掷器,xyz为投掷器样本的坐标】
3 execute @a[score_open_min=1] ~ ~ ~ /scoreboard players set @s test 1 【open分数为1的玩家test分数为1】
C部分(后勤装置)
4 execute @e[tag=test] ~ ~ ~ /blockdata ~ ~-1 ~ {Lock:All_key} 【将投掷器锁住,手持名为All_key的物品才能打开,防止二次打开,需与5配合】
5 execute @a[score_open_min=1] ~ ~ ~ /summon minecraft:armor_stand ~ ~ ~ {Tags:["test"],Marker:1,Invisible:1}【召唤一个tag为test的盔甲架】
6 /tp @a[score_open_min=1] x1 y1 z1 【传送玩家到β处,x1y1z1为β处坐标(第二部分图片会有)】
第二部分详解

D部分(启动装置)
7 tp @a[r=3] ~ ~ ~ 90 0 【锁定玩家视角,输出红石信号】
8 setblock ~ ~1 ~ air 【上方放置方块,使信号短暂】
9 setblock x2 y2 z2 redstone_block
setblock x2 y2 z2 air 【启动“大转盘”x2y2z2为Ω处(详解大转盘会有)】
E部分(声乐装置)
10 playsound minecraft:block.anvil.use ambient @a[score_test_min=1] ~ ~ ~ 100 0
11 playsound minecraft:block.anvil.use ambient @a[score_test_min=1] ~ ~ ~ 100 0
12 playsound minecraft:block.anvil.destroy ambient @a[score_test_min=1] ~ ~ ~ 100 0 【10,11,12均为播放铁砧声音】
13 summon minecraft:fireworks_rocket x? y? z? {FireworksItem:{tag:{Fireworks:{Flight:1,Explosions:[{Flicker:1b,Type:1,Colors:[I;14014478],FadeColors:[I;3992191]},{Trail:1b,Type:4,Colors:[I;14881041],FadeColors:[I;14957287]}]}},id:"minecraft:fireworks",Count:1},LifeTime:1,Rotation:[0f]} 【在大转盘里放置烟火,X?Y?Z?根据情况而定】
F部分(给予装置)
14 give @a[score_test=1,score_giving_min=3,score_giving=3] minecraft:iron_sword 【这里为剑作为宝藏,可以替换,概率后文补充说明】
15 give @a[score_test=1,score_giving_min=4,score_giving=4] minecraft:iron_sword
16 give @a[score_test=1,score_giving_min=2,score_giving=2] minecraft:iron_sword
17 give @a[score_test=1,score_giving_min=5,score_giving=5] minecraft:diamond_sword
18 give @a[score_test=1,score_giving_min=0,score_giving=0] minecraft:diamond_sword 1 0 {ench:[{id:16,lvl:2}]}
19 give @a[score_test=1,score_giving_min=1,score_giving=1] minecraft:diamond_sword 【宝藏可以无限加下去,后文有说明】
G部分(善后装置)
20 setblock x3 y3 z3 redstone_block 【启动随机部分,x3y3z3为η处,后文有标】
21 setblock x2 y2 z2 redstone_block 【停止大转盘】
22 scoreboard players set @a[score_giving_min=0] giving 0 【将giving分数大于零的玩家设置为0】
23 tp @a[score_test_min=1] @e[tag=test] 【将玩家tp回原来地方】
24 execute @a[score_test_min=1] ~ ~ ~ kill @e[tag=test,c=1] 【清除玩家身边的盔甲架】
25 scoreboard players set @a[score_test_min=0] test 0 【将test分数归零】
26 setblock x2 y2 z2 air 【与21配合,也有停止大转盘之用】
27 /setblock x? y? z? stone 【放置石头,8上面的石头,回归原样 X?Y?Z?视情况而定】
“大转盘”详解

别看这么多命令方块,其实都是重复的,原理是每个红石块能激活两个命令方块 一个命令方块将红石块清除,另一个命令方块在下一个位置放置一个红石块,如此反复,就会一直持续下去
第三部分详解

除了η处的命令方块的命令为setblock ~ ~1 ~ air
其他的都为scoreboard players add @a[score_test_min=1] giving 1
这是用了一种比较老式的随机器

输出有两个端 1或者0
绝对原创,如有雷同,纯属巧合
重申版本是远古版本1.12

已知bug:打开投掷器有时会不成功,多试几次

作用:站在投掷器上打开投掷器时会随机选择武器

优点:随处可放,不需要繁琐的一个个设置命令

缺点:无法多人使用,必须站在投掷器上
伸手党要的存档:
链接: https://pan.baidu.com/s/1XyPPyG275-L-Rm4JxSr66w 提取码: q1ct
教程开始总体分为三个部分①探测部分 ②抽奖部分 ③随机部分
2021.12 数据,可能有更多内容
绝对原创,如有雷同,纯属巧合
重申版本是远古版本1.12
已知bug:打开投掷器有时会不成功,多试几次
作用:站在投掷器上打开投掷器时会随机选择武器


优点:随处可放,不需要繁琐的一个个设置命令
缺点:无法多人使用,必须站在投掷器上
伸手党要的存档:
链接: https://pan.baidu.com/s/1XyPPyG275-L-Rm4JxSr66w 提取码: q1ct

总体分为三个部分①探测部分 ②抽奖部分 ③随机部分
在此之前创造
/scoreboard objectives add open stat.dropperInspected【一个名叫open的计分板,记录玩家打开投掷器次数】
/scoreboard objectives add test dummy【一个名叫test的计分板,探测玩家是否打开过投掷器】
/scoreboard objectives add giving dummy【一个名叫giving的计分板,用于随机部分】
注意:所有循环命令方块都是保持开启,所有连锁命令方块都不是条件限制!!
第一部分详解

A部分(高频红石装置)
用漏斗计时和高频红石给1充能(后面用数字代替命令方块)
B部分(检测装置)
1 execute @a[score_open_min=1] ~ ~ ~ /scoreboard players set @s open 0 【跟后面高频通用,随时清空open次数】
2 execute @a[score_open_min=1] ~ ~ ~ /testforblocks ~ ~-1 ~ ~ ~-1 ~ x y z 【探测玩家脚底下是否有投掷器,xyz为投掷器样本的坐标】
3 execute @a[score_open_min=1] ~ ~ ~ /scoreboard players set @s test 1 【open分数为1的玩家test分数为1】
C部分(后勤装置)
4 execute @e[tag=test] ~ ~ ~ /blockdata ~ ~-1 ~ {Lock:All_key} 【将投掷器锁住,手持名为All_key的物品才能打开,防止二次打开,需与5配合】
5 execute @a[score_open_min=1] ~ ~ ~ /summon minecraft:armor_stand ~ ~ ~ {Tags:["test"],Marker:1,Invisible:1}【召唤一个tag为test的盔甲架】
6 /tp @a[score_open_min=1] x1 y1 z1 【传送玩家到β处,x1y1z1为β处坐标(第二部分图片会有)】
第二部分详解

D部分(启动装置)
7 tp @a[r=3] ~ ~ ~ 90 0 【锁定玩家视角,输出红石信号】
8 setblock ~ ~1 ~ air 【上方放置方块,使信号短暂】
9 setblock x2 y2 z2 redstone_block
setblock x2 y2 z2 air 【启动“大转盘”x2y2z2为Ω处(详解大转盘会有)】
E部分(声乐装置)
10 playsound minecraft:block.anvil.use ambient @a[score_test_min=1] ~ ~ ~ 100 0
11 playsound minecraft:block.anvil.use ambient @a[score_test_min=1] ~ ~ ~ 100 0
12 playsound minecraft:block.anvil.destroy ambient @a[score_test_min=1] ~ ~ ~ 100 0 【10,11,12均为播放铁砧声音】
13 summon minecraft:fireworks_rocket x? y? z? {FireworksItem:{tag:{Fireworks:{Flight:1,Explosions:[{Flicker:1b,Type:1,Colors:[I;14014478],FadeColors:[I;3992191]},{Trail:1b,Type:4,Colors:[I;14881041],FadeColors:[I;14957287]}]}},id:"minecraft:fireworks",Count:1},LifeTime:1,Rotation:[0f]} 【在大转盘里放置烟火,X?Y?Z?根据情况而定】
F部分(给予装置)
14 give @a[score_test=1,score_giving_min=3,score_giving=3] minecraft:iron_sword 【这里为剑作为宝藏,可以替换,概率后文补充说明】
15 give @a[score_test=1,score_giving_min=4,score_giving=4] minecraft:iron_sword
16 give @a[score_test=1,score_giving_min=2,score_giving=2] minecraft:iron_sword
17 give @a[score_test=1,score_giving_min=5,score_giving=5] minecraft:diamond_sword
18 give @a[score_test=1,score_giving_min=0,score_giving=0] minecraft:diamond_sword 1 0 {ench:[{id:16,lvl:2}]}
19 give @a[score_test=1,score_giving_min=1,score_giving=1] minecraft:diamond_sword 【宝藏可以无限加下去,后文有说明】
G部分(善后装置)
20 setblock x3 y3 z3 redstone_block 【启动随机部分,x3y3z3为η处,后文有标】
21 setblock x2 y2 z2 redstone_block 【停止大转盘】
22 scoreboard players set @a[score_giving_min=0] giving 0 【将giving分数大于零的玩家设置为0】
23 tp @a[score_test_min=1] @e[tag=test] 【将玩家tp回原来地方】
24 execute @a[score_test_min=1] ~ ~ ~ kill @e[tag=test,c=1] 【清除玩家身边的盔甲架】
25 scoreboard players set @a[score_test_min=0] test 0 【将test分数归零】
26 setblock x2 y2 z2 air 【与21配合,也有停止大转盘之用】
27 /setblock x? y? z? stone 【放置石头,8上面的石头,回归原样 X?Y?Z?视情况而定】
“大转盘”详解

别看这么多命令方块,其实都是重复的,原理是每个红石块能激活两个命令方块 一个命令方块将红石块清除,另一个命令方块在下一个位置放置一个红石块,如此反复,就会一直持续下去
第三部分详解

除了η处的命令方块的命令为setblock ~ ~1 ~ air
其他的都为scoreboard players add @a[score_test_min=1] giving 1
这是用了一种比较老式的随机器

输出有两个端 1或者0
| giving总和 |
| 物品 |
| 0 |
| 附魔钻石剑 |
| 1 |
| 钻石剑 |
| 2 |
| 铁剑 |
| 3 |
| 铁剑 |
| 4 |
| 铁剑 |
| 5 |
| 钻石剑 |
| 6 |
| 铁剑 |
震惊,我玩的版本是远古版本
emmmmmmmmmm
有什么用?