我想tag一些固定数量的玩家
但是我想先tag一些带有特定tag的玩家
再去tag(固定数量-特定tag的玩家数)数量的玩家
但是我想先tag一些带有特定tag的玩家
再去tag(固定数量-特定tag的玩家数)数量的玩家
那就给没有tag的玩家一个新tag呗
曲线救国
Stone_ingot 发表于 2023-1-27 19:57
那就给没有tag的玩家一个新tag呗
曲线救国
但是是从>x个玩家里抽取x个玩家诶
菜鸡_lmao 发表于 2023-1-27 19:59
但是是从>x个玩家里抽取x个玩家诶
那么就先随机选一个玩家
如果之前没被选中,就选中并加选中的标签
如果之前被选中,就跳过
重复执行直到选中的玩家数量为所需玩家数量
(只是个思路)
假设计算tag标签为z的玩家数量
可以新建一个计分板A
召唤一个tag标签为x的盔甲架
execute @a[tag=z] ~ ~ ~ scoreboard players add @e[type=armor_stand,tag=x]
(此处自行想办法显示盔甲架A计分板的分数,方法很多,不一一概述)
scoreboard players tag @a[tag=z] remove z
以上三个命令方块为循环无条件、连锁无条件、连锁无条件
可用函数文件制作
如有帮助请设置为最佳 谢谢
可以新建一个计分板A
召唤一个tag标签为x的盔甲架
execute @a[tag=z] ~ ~ ~ scoreboard players add @e[type=armor_stand,tag=x]
(此处自行想办法显示盔甲架A计分板的分数,方法很多,不一一概述)
scoreboard players tag @a[tag=z] remove z
以上三个命令方块为循环无条件、连锁无条件、连锁无条件
可用函数文件制作
如有帮助请设置为最佳 谢谢
tag @a[tag=first,sort=random,limit=8] add selected_player
tag @a[team=playing,sort=random,limit=8] add selected_player
这个8怎么改成8-(selected_player目前的数量)
tag @a[team=playing,sort=random,limit=8] add selected_player
这个8怎么改成8-(selected_player目前的数量)
本帖最后由 实况主小博 于 2023-1-27 22:23 编辑
那就直接计算出固定数量-特定tag人数的结果好了。先用execute获取特定tag人数,然后计分板用固定数量减去人数并给予特殊tag的玩家tag,最后用函数递归循环随机赋予没有tag的人tag,每次执行函数先前的结果分数就-1,只有先前分数大于等于1才会执行下一次
按固定数量为8的话我写一下具体命令
具体命令:
添加计分板test
复制代码函数test:1
复制代码函数test:2
复制代码然后执行函数test:1就可以达到目的了
那就直接计算出固定数量-特定tag人数的结果好了。先用execute获取特定tag人数,然后计分板用固定数量减去人数并给予特殊tag的玩家tag,最后用函数递归循环随机赋予没有tag的人tag,每次执行函数先前的结果分数就-1,只有先前分数大于等于1才会执行下一次
按固定数量为8的话我写一下具体命令
具体命令:
添加计分板test
- scoreboard objectives add test dummy
- execute store result score player_first test if entity @a[tag=first]
- scoreboard players set player_tag test 8
- scoreboard players operation player_tag test -= player_first test
- tag @a[tag=first,sort=random,limit=8] add selected_player
- execute if score player_tag test matches 1.. run function test:2
- scoreboard players remove player_tag test 1
- tag @a[team=playing,sort=random,limit=1,tag=!selected_player] add selected_player
- execute if score player_tag test matches 1.. run function test:2
666666666666666666