Teams

Mostrar obsoleto

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

Não criável
Serviço

O serviço de Equipes armazena os objetos de um jogo de . Os objetos devem ser parentados para o serviço de Equipes.

Equipes oferecem uma variedade de recursos úteis para os desenvolvedores.Estes podem ser amplamente divididos em recursos que funcionam fora da caixa e recursos que os desenvolvedores podem programar em seu jogo.

Comportamento de equipe integrado A seguinte funcionalidade de Equipes existe por padrão e não requer que o desenvolvedor programa nenhum comportamento personalizado.

  • Quando parte de uma equipe, o nome acima do personagem de um jogador Model será colorido para o Team.TeamColor
  • Mudar Player.TeamColor vai causar Player.Team mudança para a Equipe com o correspondente Team.TeamColor
  • Ao usar a lista de jogadores padrão, os usuários serão agrupados e exibidos por Equipe
  • Definir Player.Neutral para verdade causará a desassociação do Player com a Equipe, mas não alterará Player.Team ou Player.TeamColor
  • Quando um Player se junta a um jogo, eles serão alocados à equipe com Team.AutoAssignable definido como verdadeiro que tem o menor número de jogadores.Se não houver equipe disponível para atribuição automática, Player.Neutral será definido como verdadeiro
  • Quando é definido como falso, apenas jogadores cujas combinações correspondam a só podem aparecer naquela combinação
  • Quando é definido como verdadeiro, o de um jogador mudará para quando seu personagem tocar o

Comportamento de equipe estendido opcional Muitos desenvolvedores escolheram adicionar os seguintes recursos às equipes em seu próprio código.

  • Implementar verificações para equipe no código da arma para prevenir o assassinato em equipe
  • Implemente portas ou outros recursos que apenas determinadas equipes podem usar
  • Reatribuir periodicamente equipes para manter o equilíbrio de equipes

Amostras de código

This code sample includes a simple example of how to re-balance teams. When Team.AutoAssignable is set to true players will be added to Teams in a balanced fashion. However as Players leave the game this can lead to unbalanced teams as players are not reallocated. This code keeps track of the number of players in each team and, when players leave will check to see if the teams need re-balancing.

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)

The following code sample will create a door in the Workspace that can only be walked through by Players on the Bright red team.

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)

This code sample includes a quick function that can be added to weapons in a place to prevent them from team killing. It will return false when the two players are on different teams or if either of them is neutral.

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])

Resumo

Métodos

  • GetTeams():Instances

    Retorna uma tabela que contém os objetos do jogo Team . Somente retornará objetos Team que são parentados ao serviço Teams.

Propriedades

Métodos

GetTeams

Instances

A função GetTeam retorna uma tabela que contém os objetos do jogo Team .

Observe que isso retornará apenas objetos de Equipe que são diretamente parentados ao serviço Teams.Por esse motivo, é recomendado que os desenvolvedores só paiem Team objetos para o serviço Teams e não para outros Instances (ou para uns aos outros).


Devolução

Instances

Um array de Teams na jogo.

Amostras de código

The example below prints the number of players on each Team.

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

Eventos