我的世界中在分配人數(shù)平衡的隊伍的前提下得先知道人數(shù),所以下面這條指令是必須的:
循環(huán):scoreboard players set @e[type=armor_stand] rs 0
連鎖:execute @a ~ ~ ~ scoreboard players add @e[type=armor_stand] rs 1
當(dāng)兩條指令都運(yùn)行后,盔甲架的rs分?jǐn)?shù)將是當(dāng)前的總?cè)藬?shù)。
分配隊伍
1-得到總?cè)藬?shù)的一半
脈沖:scoreboard players operation @e[type=armor_stand] rs2 = @e[type=armor_stand] rs
循環(huán):scoreboard players operation @e[type=armor_stand] rs2 /= @e[type=item_frame] rs
將盔甲架的rs2分?jǐn)?shù)同等于rs的分?jǐn)?shù),就得到了2份總?cè)藬?shù)。rs2的實際作用則是用來計算總?cè)藬?shù)的一半,應(yīng)用在嚇一條指令。
而第二條指令則將盔甲架的rs2的分?jǐn)?shù)除以物品展示框rs的分?jǐn)?shù)(2分)就得到了一半的人數(shù)。
如果你想分配成3個、4個隊伍可以更改物品展示框rs的分?jǐn)?shù)。
總?cè)藬?shù)÷2=總?cè)藬?shù)的一半
連鎖: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=]
這里其實特別簡單,當(dāng)盔甲架的rs2分?jǐn)?shù)最小為1時,將一名隨機(jī)的沒有隊伍的玩家加入到“黑”的隊伍。當(dāng)盔甲架的rs2分?jǐn)?shù)最小為0時,扣除自己(盔甲架)rs2計分板的1分。與上一條指令合作將一半的人數(shù)加入“黑”隊。當(dāng)盔甲架的rs2分?jǐn)?shù)最小為0、最大為0時,將所有沒有隊伍的玩家加入“紅”的隊伍。將剩下沒有被加入“黑”隊的一半玩家加入到“紅”隊。如果想分配多個隊伍,只需要在第1條指令后再插入下面這條指令,更改其中的隊伍名字。
連鎖:execute @e[type=armor_stand,score_rs2_min=1] ~ ~ ~ scoreboard teams join 隊伍 @r[type=plyaer,team=]
當(dāng)然加入隊伍命令方塊的數(shù)量請與物品展示框的rs分?jǐn)?shù)少1,不能相等或多1。
總結(jié)
當(dāng)脈沖命令方塊被激活得出盔甲架的rs2的時,將會進(jìn)行隊伍分配。
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