本人要做一张大富翁地图,在做完场景后发现不会搞随机数字,求各位大神!!!
用发射器随机发射物品的原理,在配上就差一个物品装满的漏斗
漏斗用红石比较器+15格红石线+非门控制
漏斗用红石比较器+15格红石线+非门控制
我希望就是 可以打在公屏上的,就是用指令
放几个盔甲架,打上几个 tag ,然后用 @r 去选择。
选择到有 tag 1 的,就输出 1
选择到有 tag 1 的,就输出 1
可以用红石块掉落沙刷怪笼
范围固定且较小时,可以穷举所有可能后使用@r来选择
放6个盔甲架,加上一个相同的tag(如random)后再分别加上不同的tag(如1,2,3,4,5,6)
然后需要生成随机数时,随机给盔甲架加tag,然后检测这个盔甲架的编号,再加分,最后移除tag即可。
scoreboard players tag @r[type=armor_stand,tag=random] add mark
execute @e[type=armor_stand,tag=mark] ~ ~ ~ execute @s[tag=1] ~ ~ ~ scoreboard players set <玩家> <计分项> 1
execute @e[type=armor_stand,tag=mark] ~ ~ ~ execute @s[tag=2] ~ ~ ~ scoreboard players set <玩家> <计分项> 2
execute @e[type=armor_stand,tag=mark] ~ ~ ~ execute @s[tag=3] ~ ~ ~ scoreboard players set <玩家> <计分项> 3
execute @e[type=armor_stand,tag=mark] ~ ~ ~ execute @s[tag=4] ~ ~ ~ scoreboard players set <玩家> <计分项> 4
execute @e[type=armor_stand,tag=mark] ~ ~ ~ execute @s[tag=5] ~ ~ ~ scoreboard players set <玩家> <计分项> 5
execute @e[type=armor_stand,tag=mark] ~ ~ ~ execute @s[tag=6] ~ ~ ~ scoreboard players set <玩家> <计分项> 6
scoreboard players tag @e[type=armor_stand,tag=mark] remove mark
放6个盔甲架,加上一个相同的tag(如random)后再分别加上不同的tag(如1,2,3,4,5,6)
然后需要生成随机数时,随机给盔甲架加tag,然后检测这个盔甲架的编号,再加分,最后移除tag即可。
scoreboard players tag @r[type=armor_stand,tag=random] add mark
execute @e[type=armor_stand,tag=mark] ~ ~ ~ execute @s[tag=1] ~ ~ ~ scoreboard players set <玩家> <计分项> 1
execute @e[type=armor_stand,tag=mark] ~ ~ ~ execute @s[tag=2] ~ ~ ~ scoreboard players set <玩家> <计分项> 2
execute @e[type=armor_stand,tag=mark] ~ ~ ~ execute @s[tag=3] ~ ~ ~ scoreboard players set <玩家> <计分项> 3
execute @e[type=armor_stand,tag=mark] ~ ~ ~ execute @s[tag=4] ~ ~ ~ scoreboard players set <玩家> <计分项> 4
execute @e[type=armor_stand,tag=mark] ~ ~ ~ execute @s[tag=5] ~ ~ ~ scoreboard players set <玩家> <计分项> 5
execute @e[type=armor_stand,tag=mark] ~ ~ ~ execute @s[tag=6] ~ ~ ~ scoreboard players set <玩家> <计分项> 6
scoreboard players tag @e[type=armor_stand,tag=mark] remove mark
Chelove_C60 发表于 2020-3-2 09:49
范围固定且较小时,可以穷举所有可能后使用@r来选择
放6个盔甲架,加上一个相同的tag(如random)后再分别 ...
怎么给盔甲架加tag啊
18960264915 发表于 2020-3-2 09:52
我试过了,没用……
你是怎么试的?
18960264915 发表于 2020-3-2 09:55
怎么给盔甲架加tag啊
scoreboard players tag @e[type=armor_stand,r=5] add 1
给半径5格以内的盔甲架添加“1”这个标签
18960264915 发表于 2020-3-2 09:55
怎么给盔甲架加tag啊
/entitydata @e[type=armorstand,r=4] {tag:xxxx}
(修改半径4内的盔甲架的实体数据)
18960264915 发表于 2020-3-2 09:58
加了tag然后呢
确保6个盔甲架中,每个盔甲架都有两个标签,其中有一个标签是完全相同的(如random),另外一个标签是各不相同的(如1,2,3,4,5,6)
然后执行下面的命令就行了
scoreboard players tag @r[type=armor_stand,tag=random] add mark
execute @e[type=armor_stand,tag=mark] ~ ~ ~ execute @s[tag=1] ~ ~ ~ scoreboard players set <玩家> <计分项> 1
execute @e[type=armor_stand,tag=mark] ~ ~ ~ execute @s[tag=2] ~ ~ ~ scoreboard players set <玩家> <计分项> 2
execute @e[type=armor_stand,tag=mark] ~ ~ ~ execute @s[tag=3] ~ ~ ~ scoreboard players set <玩家> <计分项> 3
execute @e[type=armor_stand,tag=mark] ~ ~ ~ execute @s[tag=4] ~ ~ ~ scoreboard players set <玩家> <计分项> 4
execute @e[type=armor_stand,tag=mark] ~ ~ ~ execute @s[tag=5] ~ ~ ~ scoreboard players set <玩家> <计分项> 5
execute @e[type=armor_stand,tag=mark] ~ ~ ~ execute @s[tag=6] ~ ~ ~ scoreboard players set <玩家> <计分项> 6
scoreboard players tag @e[type=armor_stand,tag=mark] remove mark
Chelove_C60 发表于 2020-3-2 10:01
确保6个盔甲架中,每个盔甲架都有两个标签,其中有一个标签是完全相同的(如random),另外一个标签是各 ...
显示:失败,原因:Expected but got at @<--CHERE]_
本帖最后由 Jokey_钥匙 于 2020-3-2 10:23 编辑
https://www.mcbbs.net/thread-706030-1-1.html这东西做的人很多了
初始化:
scoreboard objectives add random dummy
summon area_effect_cloud ~ ~ ~ {Tags:["random"],Duration:2147483647}
scoreboard players add @e[type=area_effect_cloud,tag=random] random 1
summon area_effect_cloud ~ ~ ~ {Tags:["random"],Duration:2147483647}
scoreboard players add @e[type=area_effect_cloud,tag=random] random 1
summon area_effect_cloud ~ ~ ~ {Tags:["random"],Duration:2147483647}
scoreboard players add @e[type=area_effect_cloud,tag=random] random 1
summon area_effect_cloud ~ ~ ~ {Tags:["random"],Duration:2147483647}
scoreboard players add @e[type=area_effect_cloud,tag=random] random 1
summon area_effect_cloud ~ ~ ~ {Tags:["random"],Duration:2147483647}
scoreboard players add @e[type=area_effect_cloud,tag=random] random 1
summon area_effect_cloud ~ ~ ~ {Tags:["random"],Duration:2147483647}
scoreboard players add @e[type=area_effect_cloud,tag=random] random 1
选择:
execute @r[type=area_effect_cloud,tag=random] ~ ~ ~ tellraw @a {"score":{"objective":"random","name":"@s"}}
https://www.mcbbs.net/thread-706030-1-1.html这东西做的人很多了
初始化:
scoreboard objectives add random dummy
summon area_effect_cloud ~ ~ ~ {Tags:["random"],Duration:2147483647}
scoreboard players add @e[type=area_effect_cloud,tag=random] random 1
summon area_effect_cloud ~ ~ ~ {Tags:["random"],Duration:2147483647}
scoreboard players add @e[type=area_effect_cloud,tag=random] random 1
summon area_effect_cloud ~ ~ ~ {Tags:["random"],Duration:2147483647}
scoreboard players add @e[type=area_effect_cloud,tag=random] random 1
summon area_effect_cloud ~ ~ ~ {Tags:["random"],Duration:2147483647}
scoreboard players add @e[type=area_effect_cloud,tag=random] random 1
summon area_effect_cloud ~ ~ ~ {Tags:["random"],Duration:2147483647}
scoreboard players add @e[type=area_effect_cloud,tag=random] random 1
summon area_effect_cloud ~ ~ ~ {Tags:["random"],Duration:2147483647}
scoreboard players add @e[type=area_effect_cloud,tag=random] random 1
选择:
execute @r[type=area_effect_cloud,tag=random] ~ ~ ~ tellraw @a {"score":{"objective":"random","name":"@s"}}
本帖最后由 Chelove_C60 于 2020-3-2 10:23 编辑
没看懂的报错。。。
我这边是正常的。。。
你试试/scoreboard players tag @e[type=armor_stand] list 检查一下标签有没有问题,以及命令有没有什么问题
18960264915 发表于 2020-3-2 10:06
显示:失败,原因:Expected but got at @
没看懂的报错。。。
我这边是正常的。。。
你试试/scoreboard players tag @e[type=armor_stand] list 检查一下标签有没有问题,以及命令有没有什么问题

Chelove_C60 发表于 2020-3-2 10:22
没看懂的报错。。。
我这边是正常的。。。
你试试/scoreboard players tag @e[type=armor_stand] list 检 ...
mark已添加
mark已删除
18960264915 发表于 2020-3-2 10:31
mark已添加
mark已删除
/scoreboard players tag @e[type=armor_stand] list
这个命令的执行结果截图给我
然后把中间的6个穷举命令任意选一个发给我
Chelove_C60 发表于 2020-3-2 10:38
/scoreboard players tag @e[type=armor_stand] list
这个命令的执行结果截图给我
然后把中间的6个穷举命 ...
6身上多了一个5,删掉
scoreboard players tag @e[tag=6] remove 5
然后中间的6个命令方块,任选一个把命令发给我
Chelove_C60 发表于 2020-3-2 10:38
/scoreboard players tag @e[type=armor_stand] list
这个命令的执行结果截图给我
然后把中间的6个穷举命 ...
命令直接发给我,截图里看不见全部命令,这样我也不知道是啥问题
Chelove_C60 发表于 2020-3-2 11:05
命令直接发给我,截图里看不见全部命令,这样我也不知道是啥问题
execute @e[type=armor_stand,tag=mark] ~ ~ ~ execute @s[tag=3] ~ ~ ~ scoreboard players set <玩家> <计分项> 3
我就直接复制
18960264915 发表于 2020-3-2 11:06
execute @e[type=armor_stand,tag=mark] ~ ~ ~ execute @s[tag=3] ~ ~ ~ scoreboard players set 3
我 ...

尖括号的意思是让你根据需要来替换的,直接用是不行的
18960264915 发表于 2020-3-2 11:11
那玩家是一个玩家就可以还是游玩的全部玩家,那个计分板咋搞
只要一个就行,你可以选择当前正在掷骰子的玩家。
记分板随便弄一个就行,比如
/scoreboard objectives add point dummy
就可以用point来替换<计分项>了
Chelove_C60 发表于 2020-3-2 11:14
只要一个就行,你可以选择当前正在掷骰子的玩家。
记分板随便弄一个就行,比如
/scoreboard objectives a ...
那玩家可以用@p嘛
本帖最后由 Chelove_C60 于 2020-3-2 11:20 编辑
想了想,还是最好不要
因为这样可能没法确定随机数究竟保存到了哪个玩家上
然后@a应该是可以的
18960264915 发表于 2020-3-2 11:15
那玩家可以用@p嘛
想了想,还是最好不要
因为这样可能没法确定随机数究竟保存到了哪个玩家上
然后@a应该是可以的
可以了,谢谢大佬