18960264915
本人要做一张大富翁地图,在做完场景后发现不会搞随机数字,求各位大神!!!

Piglin_42313
用发射器随机发射物品的原理,在配上就差一个物品装满的漏斗
漏斗用红石比较器+15格红石线+非门控制

18960264915
我希望就是 可以打在公屏上的,就是用指令

xmdhs
放几个盔甲架,打上几个 tag ,然后用 @r 去选择。

选择到有 tag 1 的,就输出 1

JJ怪大战
可以用红石块掉落沙刷怪笼

Chelover_C60
范围固定且较小时,可以穷举所有可能后使用@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


18960264915
xmdhs 发表于 2020-3-2 09:46
放几个盔甲架,打上几个 tag ,然后用 @r 去选择。

选择到有 tag 1 的,就输出 1 ...

我试过了,没用……

18960264915
Chelove_C60 发表于 2020-3-2 09:49
范围固定且较小时,可以穷举所有可能后使用@r来选择
放6个盔甲架,加上一个相同的tag(如random)后再分别 ...

怎么给盔甲架加tag啊

xmdhs
18960264915 发表于 2020-3-2 09:52
我试过了,没用……

你是怎么试的?

Chelover_C60
18960264915 发表于 2020-3-2 09:55
怎么给盔甲架加tag啊

scoreboard players tag @e[type=armor_stand,r=5] add 1
给半径5格以内的盔甲架添加“1”这个标签

0o酱
18960264915 发表于 2020-3-2 09:55
怎么给盔甲架加tag啊

/entitydata @e[type=armorstand,r=4] {tag:xxxx}
(修改半径4内的盔甲架的实体数据)

18960264915
18960264915 发表于 2020-3-2 09:55
怎么给盔甲架加tag啊

加了tag然后呢

Chelover_C60

确保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

18960264915
Chelove_C60 发表于 2020-3-2 10:01
确保6个盔甲架中,每个盔甲架都有两个标签,其中有一个标签是完全相同的(如random),另外一个标签是各 ...

显示:失败,原因:Expected but got at @<--CHERE]_

Jokey_钥匙
本帖最后由 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"}}


Chelover_C60
本帖最后由 Chelove_C60 于 2020-3-2 10:23 编辑
18960264915 发表于 2020-3-2 10:06
显示:失败,原因:Expected but got at @

没看懂的报错。。。
我这边是正常的。。。
你试试/scoreboard players tag @e[type=armor_stand] list 检查一下标签有没有问题,以及命令有没有什么问题


18960264915
Chelove_C60 发表于 2020-3-2 10:22
没看懂的报错。。。
我这边是正常的。。。
你试试/scoreboard players tag @e[type=armor_stand] list 检 ...

mark已添加
mark已删除

Chelover_C60
18960264915 发表于 2020-3-2 10:31
mark已添加
mark已删除

/scoreboard players tag @e[type=armor_stand] list
这个命令的执行结果截图给我
然后把中间的6个穷举命令任意选一个发给我

18960264915
Chelove_C60 发表于 2020-3-2 10:38
/scoreboard players tag @e[type=armor_stand] list
这个命令的执行结果截图给我
然后把中间的6个穷举命 ...


Chelover_C60

6身上多了一个5,删掉
scoreboard players tag @e[tag=6] remove 5

然后中间的6个命令方块,任选一个把命令发给我

18960264915
Chelove_C60 发表于 2020-3-2 10:48
6身上多了一个5,删掉
scoreboard players tag @e[tag=6] remove 5


18960264915
Chelove_C60 发表于 2020-3-2 10:38
/scoreboard players tag @e[type=armor_stand] list
这个命令的执行结果截图给我
然后把中间的6个穷举命 ...


Chelover_C60

命令直接发给我,截图里看不见全部命令,这样我也不知道是啥问题

18960264915
Chelove_C60 发表于 2020-3-2 11:05
命令直接发给我,截图里看不见全部命令,这样我也不知道是啥问题

execute @e[type=armor_stand,tag=mark] ~ ~ ~ execute @s[tag=3] ~ ~ ~ scoreboard players set <玩家> <计分项> 3
我就直接复制

Chelover_C60
18960264915 发表于 2020-3-2 11:06
execute @e[type=armor_stand,tag=mark] ~ ~ ~ execute @s[tag=3] ~ ~ ~ scoreboard players set   3
我 ...


尖括号的意思是让你根据需要来替换的,直接用是不行的

18960264915
Chelove_C60 发表于 2020-3-2 11:09
尖括号的意思是让你根据需要来替换的,直接用是不行的

那玩家是一个玩家就可以还是游玩的全部玩家,那个计分板咋搞

Chelover_C60
18960264915 发表于 2020-3-2 11:11
那玩家是一个玩家就可以还是游玩的全部玩家,那个计分板咋搞

只要一个就行,你可以选择当前正在掷骰子的玩家。
记分板随便弄一个就行,比如
/scoreboard objectives add point dummy
就可以用point来替换<计分项>了

18960264915
Chelove_C60 发表于 2020-3-2 11:14
只要一个就行,你可以选择当前正在掷骰子的玩家。
记分板随便弄一个就行,比如
/scoreboard objectives a ...

那玩家可以用@p嘛

Chelover_C60
本帖最后由 Chelove_C60 于 2020-3-2 11:20 编辑
18960264915 发表于 2020-3-2 11:15
那玩家可以用@p嘛

想了想,还是最好不要
因为这样可能没法确定随机数究竟保存到了哪个玩家上
然后@a应该是可以的


18960264915
可以了,谢谢大佬

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