今天要來講可能不怎麼好用但還是要學的內建隊伍系統~
這項服務我們在第一還第二天的單元有提到,他所管理的是玩家的隊伍,而這個隊伍是幹嘛的呢? 這其實是Roblox內建的隊伍系統,當然我知道,自己寫一個隊伍系統絕對會比這個還要來的好操作,但有的時候我們沒有要那麼麻煩,只是想要把玩家分成A、B兩隊而已,那這時使用Teams服務就會是個很好的選擇。
首先,要新增隊伍,我們可以在Teams服務裡面新增一項隊伍物件
然後就可以到屬性頁面更改各項屬性
那我們就以紅隊藍隊來舉例。
接著,在任意一個腳本裡面將Teams服務定義出來
local Teams = game:GetService("Teams")
然後擷取玩家,你可以在LocalScript裡面直接用LocalPlayer,或者使用當玩家加入遊戲時的事件擷取玩家參數,這裡我以後者舉例
local Teams = game:GetService("Teams")
game.Players.PlayerAdded:Connect(function(Player)
end)
接著,我們就可以給玩家賦予他的隊伍,這裡我們將玩家賦予藍隊
local Teams = game:GetService("Teams")
game.Players.PlayerAdded:Connect(function(Player)
Player.Team = Teams.Blue
end)
接著進到遊戲,可以看到,在右上角的玩家列表顯示了兩個隊伍,並且我們在藍隊
我們都知道,這塊東西是玩家的重生點
但你知道如果這塊重生點的隊伍顏色跟玩家的隊伍顏色一樣的話,他也可以做為玩家隊伍的重生點喔!
舉個例子,我們將這個重生點複製一份,並且分別將顏色改成紅色與藍色 (紅色與藍色的色號要跟隊伍顏色一模一樣)
接下來我們進入遊戲測試,可以發現,玩家好像不一定會在藍色的重生點生成
這是因為**,玩家載入的速度比腳本還快,所以當玩家載入完成時,玩家的隊伍是中立 (意思就是不是藍隊也不是紅隊),所以玩家就會在對於中立玩家的重生點生成**。
那要改變這項屬性也很簡單,我們只需要先定義出哪一個隊伍是玩家一開始會預先進入的 (或者你也可以直接定義一個中立隊伍),並且把重生點的對於中立這項屬性關掉就好了。
首先,我們先新增一個中立隊伍
然後把中立隊伍以外的隊伍的AutoAssignable屬性關掉,這項屬性會把剛加入的玩家自動編進此隊伍,所以我們想要玩家一開始就被編進中立隊伍
然後剛剛寫的那份腳本也可以刪掉了,接著我們到重生點的屬性頁面,往下滑會看到這項屬性
這邊就是玩家隊伍重生點的各項屬性,首先,第一項屬性可以讓玩家透過碰到這個重生點來改變隊伍,而第二個屬性控制的是是否讓中立玩家在此生成,因為我們沒有要中立玩家在此生成所以把它關掉,而第三個就是這個重生點的隊伍顏色啦! 你可以把它改成剛剛我們做的藍隊與紅隊的顏色
現在加入遊戲,可以看到我們並沒有在任一一個重生點生成,取而代之的是在天空中生成然後掉下來
而現在,嘗試去觸碰任一一個重生點,你就會發現你變成了你碰到的那個顏色的隊伍了
並且還會有一個系統提示在聊天欄,這個提示只有你會看到,別的玩家看不到
明天會講玩家的記分板