我的世界队伍平衡器的制作其实非常简单,TA的工作方式是,先让玩家自主选择队伍(人性化,因为有些小伙伴想要同队或者对战),之后再大家都选好队伍准备开始游戏的时候,让这个队伍平衡器开始工作,将两队人数平衡。原理是比较器可以把testfor命令探测到的实体数量输出为红石信号强度,而比较器的减法模式,可以将红石信号强度相减。利用这两个特性,就可以先把两队人数输出为信号强度,然后相减得差值,考虑到总人数为单数的情况,所以当信号差大于等于2时,则队伍不平衡,将多的队伍的一个人分配到少的队伍,循环这个过程,直到差值小于2。
底层排布如下:
各命令方块及比较器作用:
1,2:分别探测两队人数
c,d:输出人数为红石信号到b,a的减数端
a,b:输出人数,并减去d,c的信号之后输出
3,6:更改玩家队伍
4,5,7,8:重置1,2两个命令方块的输出
命令如下:
1:testfor @e[team=b]
2:testfor @e[team=a]
3:/scoreboard teams join a @e[team=b,c=1]
4:/blockdata <1的坐标> {SuccessCount:0}
5:/blockdata <2的坐标> {SuccessCount:0}
6:/scoreboard teams join b @e[team=a,c=1]
7:/blockdata <1的坐标> {SuccessCount:0}
8:/blockdata <2的坐标> {SuccessCount:0}
c,d:比较器,比较模式(前面灯不亮)
a,b:比较器,减法模式(前面灯亮)
图中icb(脉冲命令方块)全为红石控制,ccb(连锁命令方块)全为始终激活
之后在上方排布一个高频红石即可: