更好的組隊系統(tǒng)(思路)
由于網(wǎng)易最近更了hasitem所以讓我想起了我曾經(jīng)想過的一個組隊,比之前掉落物檢測強太多
本來是視頻簡介內(nèi)容,不過簡介有2千字限制,限制我的發(fā)揮所以寫了這一篇專欄。
1.???? 核心關(guān)鍵 平均分配隊伍原理
一般的組隊思路是紅藍紅藍紅藍紅藍紅藍紅
為了說的方便我用3代表組隊隊伍(可能是紅也可能是藍)1代表紅,2代表藍
那一般的組隊就是12121212121,
也就是說當(dāng)人數(shù)是偶數(shù)時兩個隊伍人數(shù)一樣
當(dāng)人數(shù)是奇數(shù)的時候紅隊比藍隊多1個
然后呢這個組隊就是改變這個分隊順序(以組隊隊伍為藍隊舉例)
分隊順序就是311121(7-11)1(9-11)1(11-11)2222
如果組隊隊伍是紅隊那就反過來
322212(7-11)2(9-11)2(11-11)1111
這個括號里面的意思就是說如果總?cè)藬?shù)在7-11個就分配一個藍隊
比如說此時總?cè)藬?shù)是8個那么就只分配一次帶括號的藍隊
如果是9個那就分配兩次帶括號的藍隊
為什么這么分,研究了發(fā)現(xiàn)的規(guī)律僅此而已。
2.檢測組隊玩家和顯示被取消組隊請求的玩家
給前3個手持羊毛的玩家添加組隊1標(biāo)簽
給有組隊1標(biāo)簽的玩家添加組隊2
顯示有組隊2標(biāo)簽的玩家加入了組隊
給有組隊2標(biāo)簽的玩家移除組隊1
給有組隊2標(biāo)簽的玩家添加組隊標(biāo)簽
給有組隊2標(biāo)簽的玩家移除組隊2
T顯有組隊3標(biāo)簽的玩家,顯示組隊隊伍有誰誰誰
將每一個有組隊標(biāo)簽的玩家人數(shù)分數(shù)設(shè)置為1
設(shè)置組隊玩家的人數(shù)分數(shù)為0
把組隊玩家的分數(shù)等于每一個有組隊標(biāo)簽的玩家的人數(shù)分數(shù)的和
檢測到組隊玩家的人數(shù)的分數(shù)在1-3范圍內(nèi)
給有組隊標(biāo)簽的玩家添加組隊3
檢測到組隊玩家的人數(shù)的分數(shù)在4-4范圍內(nèi)
tellraw顯示有組隊標(biāo)簽沒組隊3標(biāo)簽的玩家被移除了組隊
給有組隊標(biāo)簽沒組隊3標(biāo)簽的玩家移除組隊標(biāo)簽
給沒有組隊標(biāo)簽的玩家添加非組隊標(biāo)簽
這塊可能是類似遍歷的東西,剛開始我弄的是當(dāng)組隊玩家人數(shù)在3個以上那么就隨機取消一名
組隊的玩家,因為簡單嘛,后來覺得不太合適就花了幾個小時想出來這個
3.半窮舉分隊
首先生成3個工具人
summon 后臺1(分數(shù)等于玩家總數(shù),operation加法)
summon 后臺2(分數(shù)等于組隊玩家人數(shù),operation加法)
summon 后臺3(分數(shù)等于組隊隊伍顏色,random 1 2)
首先測試一下后臺2的分數(shù),如果是0-1也就是沒人組隊或者1人組隊那么取消這個人組隊,
你一個人組隊和沒組有什么區(qū)別嘛,再給這個人加上非組隊標(biāo)簽
然后用那個execute嵌套執(zhí)行條件
當(dāng)后臺1的分數(shù)在4分及以下取消所有人組隊,隨機分隊
當(dāng)后臺1的分數(shù)在5-11分,那么隨機一下組隊隊伍顏色可能是紅可能是藍
還是用那個311121112222的原理解釋一下(也就是組隊隊伍顏色是藍)
如果說那個組隊隊伍顏色是藍隊也就是2
那么3的執(zhí)行條件就是execute @e[type=armor_stand,name=后臺3,scores={人數(shù)=2}] ~~~
3的完整指令就是execute @e[type=armor_stand,name=后臺3,scores={人數(shù)=2}] ~~~
Scoreboard players set @e[type=armor_stand,tag=組隊,scores={隊伍=0}] 隊伍 2
然后1就是 execute @e[type=armor_stand,name=后臺3,scores={人數(shù)=2}] ~~~
Scoreboard players set @e[type=armor_stand,tag=非組隊,scores={隊伍=0},c=1] 隊伍 1
然后寫3遍這個
那個2要注意一下條件, 除了execute @e[type=armor_stand,name=后臺3,scores={人數(shù)=2}] ~~~這個條件外還要再嵌套一個execute @e[type=armor_stand,name=后臺2,scores={人數(shù)=0..2}] ~~~這個是干嘛的?
就是說比如7個人3人組隊分出來的組隊那個隊伍人數(shù)要比沒組隊的隊伍人數(shù)少一個也就是3:4,這個更公平一點
然后是那3條有人數(shù)限制的1
第一條就是execute @e[type=armor_stand,name=后臺3,scores={人數(shù)=2}] ~~~
Execute @e[type=armor_stand,name=后臺1,scores={人數(shù)=7..11}] ~~~ Scoreboard players set @e[type=armor_stand,tag=非組隊,scores={隊伍=0},c=1] 隊伍 1
第二條就把后臺1那個人數(shù)分數(shù)改成9,第三條就是改成11
最后那4個2就是為了補充一下人數(shù),防止沒人組隊的尷尬
execute @e[type=armor_stand,name=后臺3,scores={人數(shù)=2}] ~~~ Scoreboard players set @e[type=armor_stand,tag=非組隊,scores={隊伍=0},c=1] 隊伍 2
寫4遍這個
如果組隊隊伍顏色是紅隊那就反著寫322212(7-11)2(9-11)2(11-11)1111
4.一些花里胡哨的東西
CHINA-X音樂不是服務(wù)器導(dǎo)入的,本人不玩基巖租賃服,用的function,在自己地圖聽的
?
QA
1.???? 為什么就搞了2個隊伍?
因為2個隊伍簡單啊,而且很方便又實用啊。。。
隊伍多了窮舉最簡單可是那樣還有什么意義?
還有就是最關(guān)鍵得你這房間一共最多11個人,不是總能保持8個以上(8個多算多了得好嘛,日常都是2,3個3,4個,如果你不天天開的話),分那么多隊伍干嘛,沒必要.
2.???? 為什么拿11個盔甲架在那測試?
還是那個最多11個人,至于為什么拿盔甲架來測,因為我湊不到10個好友幫我測,就這么簡單..盔甲架能成的,把選擇器一改成玩家不就照樣也行嘛,改成@e[type=player] 那種最好。
Ps.這個組隊就是起床的一小部分,也不算特別重要,有的時候也懷疑這玩意到底有沒有用,
不過研究的這個過程挺享受的。。。
