Team

Visualizza obsoleti

*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.

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

Simple Team Rebalance

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)
Team Kill Check

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])
Team Only Door

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à

  • Lettura Parallela

    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.

  • Lettura Parallela

    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

  • GetPlayers():Instances
    Scrivi Parallelo

    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

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

Lettura Parallela

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

Simple Team Rebalance

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

Lettura Parallela

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

Team Only Door

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

Instances
Scrivi Parallelo

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

Instances

Un array di Players in the Team .

Campioni di codice

Teams GetTeams

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

player: Player

Il Player che è stato aggiunto.


Campioni di codice

Simple Team Rebalance

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

player: Player

Il Player rimosso.


Campioni di codice

Simple Team Rebalance

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)