起床战争组队系统(优化版)

1.适用两个队伍(人数上限11人)
2.满五人可进行组队(这里的组队不单单是随机分)
3.优化的内容主要是组队的穷举部分
4.版本基岩版
5.队伍1为红队,队伍2为蓝队,组队默认进入队伍2

一 检测游戏人数和组队装置

检测人数在1-4人时:随机分队(当然正经起床1人肯定是等待,大部分地图更多的是4人开启)
检测人数在4人以上时:开启左侧组队装置命令方块
左侧命令方块指令
testfor @e【type=item,name=白色羊毛】
execute @e【type=item,name=白色羊毛】~~~
tag @p【r=2,c=1】add 组队
execute @a【tag=组队】~~~ title @s title 组队成功
execute @a【tag=组队】~~~ titleraw @s actionbar {"rawtext":[{"text":"当前组队玩家:\n"},{"selector":"@a【tag=组队】”}]}
kill @e【type=item,name=白色羊毛】
二 添加计分板和相应分数
scoreboard objectives add 队伍 dummy
scoreboard objectives add 数量 dummy
scoreboard players set @a【tag=!观战】队伍 0
scoreboard players set @a【scores={队伍=0}】
数量 1
scoreboard players set 分队 数量 0
scoreboard objectives operation 分队 数量 +=@a【scores={队伍=0}】数量
三 分队与组队
scoreboard players test 分队 数量 1 4
tag @e【type=player】remove 组队
scoreboard players set @r【scores={队伍=0}】
队伍 1
scoreboard players set @r【scores={队伍=0}】
队伍 2
scoreboard players set @r【scores={队伍=0}】
队伍 1
scoreboard players set @r【scores={队伍=0}】
队伍 2
(1到4人采用的就是最简单最直接最常用的随机分队
5到11人的穷举组队部分进行了简化)
scoreboard players test 分队 数量 5 6
scoreboard players set @a【tag=组队,scores={队伍=0}】队伍 2
scoreboard players set @r【scores={队伍=0}】
队伍 1
scoreboard players set @r【scores={队伍=0}】
队伍 1
scoreboard players set @r【scores={队伍=0}】
队伍 1
scoreboard players set @r【scores={队伍=0}】
队伍 2
scoreboard players set @r【scores={队伍=0}】
队伍 2
scoreboard players set @r【scores={队伍=0}】
队伍 2
scoreboard players test 分队 数量 7 8
scoreboard players set @a【tag=组队,scores={队伍=0}】队伍 2
scoreboard players set @r【scores={队伍=0}】
队伍 1
scoreboard players set @r【scores={队伍=0}】
队伍 1
scoreboard players set @r【scores={队伍=0}】
队伍 1
scoreboard players set @r【scores={队伍=0}】
队伍 2
scoreboard players set @r【scores={队伍=0}】
队伍 1
scoreboard players set @r【scores={队伍=0}】
队伍 2
scoreboard players set @r【scores={队伍=0}】
队伍 2
scoreboard players set @r【scores={队伍=0}】
队伍 2
scoreboard players test 分队 数量 9 10
scoreboard players set @a【tag=组队,scores={队伍=0}】队伍 2
scoreboard players set @r【scores={队伍=0}】
队伍 1
scoreboard players set @r【scores={队伍=0}】
队伍 1
scoreboard players set @r【scores={队伍=0}】
队伍 1
scoreboard players set @r【scores={队伍=0}】
队伍 2
scoreboard players set @r【scores={队伍=0}】
队伍 1
scoreboard players set @r【scores={队伍=0}】
队伍 1
scoreboard players set @r【scores={队伍=0}】
队伍 2
scoreboard players set @r【scores={队伍=0}】
队伍 2
scoreboard players set @r【scores={队伍=0}】
队伍 2
scoreboard players set @r【scores={队伍=0}】
队伍 2
scoreboard players test 分队 数量 11 11
scoreboard players set @a【tag=组队,scores={队伍=0}】队伍 2
scoreboard players set @r【scores={队伍=0}】
队伍 1
scoreboard players set @r【scores={队伍=0}】
队伍 1
scoreboard players set @r【scores={队伍=0}】
队伍 1
scoreboard players set @r【scores={队伍=0}】
队伍 2
scoreboard players set @r【scores={队伍=0}】
队伍 1
scoreboard players set @r【scores={队伍=0}】
队伍 1
scoreboard players set @r【scores={队伍=0}】
队伍 1
scoreboard players set @r【scores={队伍=0}】
队伍 2
scoreboard players set @r【scores={队伍=0}】
队伍 2
scoreboard players set @r【scores={队伍=0}】
队伍 2
scoreboard players set @r【scores={队伍=0}】
队伍 2
(注意当有玩家在房间内但处于死亡状态时,计分项分队的数量分数会出现偏大的情况,进而会出现队伍人数不平衡的情况,所以最好将@a换成@e【type=player】,不让这种玩家参与分队)


