Teams
*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.
Il servizio Team contiene gli oggetti Team di un Gioco. Gli oggetti Team devono essere parented al servizio Team.
Le squadre offrono una gamma di funzionalità che sono utili per gli sviluppatori. Questi possono essere ampiamente divisi in funzionalità che funzionano fuori dal box e funzionalità che gli sviluppatori possono programmare nel loro Gioco.
Comportamento del team incorporato La seguente funzionalità dei team esiste per impostazione predefinita e non richiede che il programmatore programmi alcun comportamento personalizzato.
- Quando parte di una squadra, il nome sopra il personaggio di un GiocatoreModel sarà colorato al Team.TeamColor
- Cambiare Player.TeamColor farà si che Player.Team passi alla squadra con il corrispondente Team.TeamColor
- Quando si utilizza la lista dei giocatori predefiniti, gli utenti saranno grouped e visualizzati dalla team
- Impostare Player.Neutral a vero farà si che il Player non sia più associato alla team, ma non cambierà Player.Team o 1> Class.Player.TeamColor1>
- Quando un Player si unisce a un Gioco, saranno assegnati al team con Team.AutoAssignable impostato su true che ha il minor numero di giocatori. Se nessuna squadra auto-assegnabile è disponibile, Player.Neutral sarà impostato su true
- Quando SpawnLocation.Neutral è impostato su false, solo i giocatori il cui Player.TeamColor corrisponde a SpawnLocation.TeamColor possono generare su quel 1> Class.SpawnLocation1>
- Quando SpawnLocation.AllowTeamChangeOnTouch è impostato su true, a Giocatore's Player.TeamColor cambierà in SpawnLocation.TeamColor quando il loro personaggio tocca il 1> Class.SpawnLocation1>
Comportamento della squadra esteso opzionale Molti sviluppatori hanno scelto di aggiungere le seguenti funzionalità alle squadre nel loro codice.
- Imposta controlli per la squadra nel codice dell'arma per prevenire la morte della squadra
- implementa porte o altre funzionalità che solo certain team possono utilizzare
- Riassegnare periodically team per mantenere l'saldoteam
Campioni di codice
local Teams = game:GetService("Teams")
-- create two teams
local redTeam = Instance.new("Team")
redTeam.TeamColor = BrickColor.new("Bright red")
redTeam.AutoAssignable = true
redTeam.Name = "Red Team"
redTeam.Parent = Teams
local blueTeam = Instance.new("Team")
blueTeam.TeamColor = BrickColor.new("Bright blue")
blueTeam.AutoAssignable = true
blueTeam.Name = "Blue Team"
blueTeam.Parent = Teams
-- start counting the number of players on each team
local numberRed, numberBlue = 0, 0
local function playerAdded(team)
-- increase the team's count by 1
if team == redTeam then
numberRed = numberRed + 1
elseif team == blueTeam then
numberBlue = numberBlue + 1
end
end
local function playerRemoved(team)
-- decrease the team's count by 1
if team == redTeam then
numberRed = numberRed - 1
elseif team == blueTeam then
numberBlue = numberBlue - 1
end
-- check if the teams are unbalanced
local bigTeam, smallTeam = nil, nil
if (numberRed - numberBlue) > 2 then
bigTeam = redTeam
smallTeam = blueTeam
elseif (numberBlue - numberRed) > 2 then
bigTeam = blueTeam
smallTeam = redTeam
end
if bigTeam then
-- pick a random player
local playerList = bigTeam:GetPlayers()
local player = playerList[math.random(1, #playerList)]
-- check the player exists
if player then
-- change the player's team
player.TeamColor = smallTeam.TeamColor
-- respawn the player
player:LoadCharacter()
end
end
end
-- listen for players being added / removed
blueTeam.PlayerAdded:Connect(function(_player)
playerAdded(blueTeam)
end)
blueTeam.PlayerRemoved:Connect(function(_player)
playerRemoved(blueTeam)
end)
redTeam.PlayerAdded:Connect(function(_player)
playerAdded(redTeam)
end)
redTeam.PlayerRemoved:Connect(function(_player)
playerRemoved(redTeam)
end)
local Players = game:GetService("Players")
local door = Instance.new("Part")
door.Anchored = true
door.Size = Vector3.new(7, 10, 1)
door.Position = Vector3.new(0, 5, 0)
door.Parent = workspace
local debounce = false
door.Touched:Connect(function(hit)
if not debounce then
debounce = true
if hit then
local player = Players:GetPlayerFromCharacter(hit.Parent)
if player and player.TeamColor == BrickColor.new("Bright red") then
door.Transparency = 0.5
door.CanCollide = false
task.wait(3)
door.Transparency = 0
door.CanCollide = true
end
end
task.wait(0.5)
debounce = false
end
end)
local Players = game:GetService("Players")
function checkTeamKill(playerAttack, playerVictim)
if playerAttack.Team ~= playerVictim.Team or playerAttack.Neutral or playerVictim.Neutral then
return false
end
return true
end
local players = Players:GetPlayers()
checkTeamKill(players[1], players[2])
Sommario
Proprietà
Metodi
Proprietà
Metodi
GetTeams
La funzione GetTeam restituisce una tabella che contiene gli oggetti Team del Gioco.
Nota che questo restituirà solo oggetti della squadra che sono direttamente parented al servizio Teams . Per questo motivo, si consiglia ai developer di genere Team oggetti solo al servizio Teams e non a altri 1> Class.Instance|Instances1> (o a loro tra loro).
Restituzioni
Un array di Teams nel Gioco.
Campioni di codice
local Teams = game:GetService("Teams")
local teams = Teams:GetTeams()
for _, team in pairs(teams) do
local players = team:GetPlayers()
print("Team", team.Name, "has", #players, "players")
end