Team
*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.
La classe Team rappresenta una fazione in un PostoRoblox. L'unico genitore valido per una squadra è nel servizio Teams. Le squadre offrono una gamma di funzionalità utili per gli sviluppatori che possono essere divisi in due gruppi grossi:
- Funzionalità che funzionano "fuori dalla Quadro di selezione"
- Caratteristiche che gli sviluppatori possono programmare nel loro Gioco.
Comportamento del team incorporato La seguente funzionalità delle squadre esiste per impostazione predefinita e non richiede che il sviluppatore 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à in modo che Player.Team passi al Team con il corrispondente Team.TeamColor
- Quando si utilizza la lista dei giocatori predefiniti, gli utenti saranno grouped e visualizzati insieme come una team
- Impostare Player.Neutral a vero farà si che il Player sia disassociazione con la 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>
Comportamenti della squadra estesi opzionali Molti sviluppatori hanno scelto di aggiungere le seguenti funzionalità alle squadre nel loro codice.
- Imposta controlli nel codice dell'arma per prevenire il Lanciareamico.
- Imposta controlli nelle porte o in altre funzionalità che consentono di utilizzarle solo a certain team
- 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")
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])
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)
Sommario
Proprietà
Questa proprietà determina se Players verrà automaticamente posizionato sul Team quando si unisce. Se più team hanno questa proprietà impostata a vero, Roblox cercherà anche i team quando Players vengono aggiunti.
Questa proprietà imposta il colore del Team. Determina la proprietà Player.TeamColor dei giocatori che sono membri della team. Inoltre determina il colore visualizzato sulla lista dei giocatori e sopra le teste dei Giocatore.
Metodi
Eventi
Fa fuoco ogni volta che un Player è assegnato al Team . Un giocatore è considerato assegnato se la loro proprietà Player.Team è uguale alla 2>Class.Team2> e 5>Class.Player.Neutral5> è falsa.
Fa fuoco ogni volta che un Player viene rimosso da un Team . Questo può essere dovuto al fatto che il Player lascia il Gioco, 1> Class.Player.Neutral1> essere impostato su true o il 4> Class.Player4> che si unisce a un'altra team.
Proprietà
AutoAssignable
Questa proprietà determina se Players verrà automaticamente posizionato sul Team quando si unisce. Se più team hanno questa proprietà impostata a vero, Roblox cercherà anche i team quando Players vengono aggiunti.
Quando un Player si unisce a un gioco, saranno assegnati al Team con Team.AutoAssignable impostato su true che ha il meno giocatori. Se nessuna tale squadra è disponibile, 2>Class.Player.Neutral2> sarà impostato su true.
Nota mentre si utilizza questa proprietà aiuterà anche i team quando vengono aggiunti, non farà nulla quando i giocatori vengono rimossi. Per questo motivo gli sviluppatori possono voler implementare il proprio sistema di bilanciamento del team.
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)
TeamColor
Questa proprietà imposta il colore del Team. Determina la proprietà Player.TeamColor dei giocatori che sono membri della team.
Molta della funzionalità della squadra predefinita di Roblox è basata sul colore della squadra, non sul nome o sull'oggetto. Ad esempio, SpawnLocations può essere assegnato a una squadra tramite SpawnLocation.TeamColor . Per questo motivo è consigliato che gli sviluppatori assicurino che ogni Team abbia un col
Qualsiasi giocatore che fa parte di una squadra avrà il loro colore di nome cambiato nella ProprietàTeamColor della team. Saranno anche messi sotto il nome della squadra nella lista dei giocatori.
Campioni di codice
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)
Metodi
GetPlayers
Restituisce una lista di Players che sono assegnati alla Team . Un Player è considerato assegnato se la sua proprietà 1> Class.Player.Team1> è uguale alla 4> Class.Team4> e 7> Class.Player.Neutral
Questa funzione ha un certo numero di potenziali utilizzi, tra cui il conteggio del numero di giocatori su un Team o la consegna di ogni Player su un Team a 1> Class.Tool1> .
Restituzioni
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
Eventi
PlayerAdded
Fa fuoco ogni volta che un Player è assegnato al Team . Un giocatore è considerato assegnato se la loro proprietà Player.Team è uguale alla 2>Class.Team2> e 5>Class.Player.Neutral5> è falsa.
Questo evento è specifico e si attiva solo quando un Player si unisce al Team specifico. Qualsiasi funzione connessa a questo evento sarà passata all'oggetto Player del giocatore che si è unito alla team. Ad esempio:
Team.PlayerAdded:Connect(function(Giocatore) print(Giocatore.Name.." has joined the team") Terminare)
Parametri
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)
PlayerRemoved
Fa fuoco ogni volta che un Player viene rimosso da un Team . Questo può essere dovuto al fatto che il Player lascia il Gioco, 1> Class.Player.Neutral1> essere impostato su true o il 4> Class.Player4> che si unisce a un'altra team.
Questo evento è specifico e si attiva solo quando un Player lascia il Team specifico. Qualunque funzione connessa a questo evento sarà passata all'oggetto Player del giocatore che ha lasciato la team. Ad esempio:
Team.PlayerRemoved:Connect(function(Giocatore) print(Giocatore.Name.." has left the team") Terminare)
Parametri
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)