我的世界中在分配人数平衡的队伍的前提下得先知道人数,所以下面这条指令是必须的:
循环:scoreboard players set @e[type=armor_stand] rs 0
连锁:execute @a ~ ~ ~ scoreboard players add @e[type=armor_stand] rs 1
当两条指令都运行后,盔甲架的rs分数将是当前的总人数。
分配队伍
1-得到总人数的一半
脉冲:scoreboard players operation @e[type=armor_stand] rs2 = @e[type=armor_stand] rs
循环:scoreboard players operation @e[type=armor_stand] rs2 /= @e[type=item_frame] rs
将盔甲架的rs2分数同等于rs的分数,就得到了2份总人数。rs2的实际作用则是用来计算总人数的一半,应用在吓一条指令。
而第二条指令则将盔甲架的rs2的分数除以物品展示框rs的分数(2分)就得到了一半的人数。
如果你想分配成3个、4个队伍可以更改物品展示框rs的分数。
总人数÷2=总人数的一半
连锁:execute @e[type=armor_stand,score_rs2_min=1] ~ ~ ~ scoreboard teams join 黑 @r[type=plyaer,team=]
连锁:execute @e[type=armor_stand,score_rs2_min=0] ~ ~ ~ scoreboard players remove @s rs2 1
连锁:execute @e[type=armor_stand,score_rs2_min=0,score_rs2=0] ~ ~ ~ scoreboard teams join 红 @a[type=player,team=]
这里其实特别简单,当盔甲架的rs2分数最小为1时,将一名随机的没有队伍的玩家加入到“黑”的队伍。当盔甲架的rs2分数最小为0时,扣除自己(盔甲架)rs2计分板的1分。与上一条指令合作将一半的人数加入“黑”队。当盔甲架的rs2分数最小为0、最大为0时,将所有没有队伍的玩家加入“红”的队伍。将剩下没有被加入“黑”队的一半玩家加入到“红”队。如果想分配多个队伍,只需要在第1条指令后再插入下面这条指令,更改其中的队伍名字。
连锁:execute @e[type=armor_stand,score_rs2_min=1] ~ ~ ~ scoreboard teams join 队伍 @r[type=plyaer,team=]
当然加入队伍命令方块的数量请与物品展示框的rs分数少1,不能相等或多1。
总结
当脉冲命令方块被激活得出盔甲架的rs2的时,将会进行队伍分配。
icb:scoreboard players operation @e[type=armor_stand] rs2 = @e[type=armor_stand] rs
rcb:scoreboard players operation @e[type=armor_stand] rs2 /= @e[type=item_frame] rs
execute @e[type=armor_stand,score_rs2_min=1] ~ ~ ~ scoreboard teams join 黑 @r[type=player,team=]
execute @e[type=armor_stand,score_rs2_min=0] ~ ~ ~ scoreboard players remove @s rs2 1
execute @e[type=armor_stand,score_rs2_min=0,score_rs2=0] ~ ~ ~ scoreboard teams join 红 @e[type=player,team=]
使所有玩家退出队伍的指令:
/scoreboard teams leave @e