Team
*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.
La clase Team representa una facción en un lugar de Roblox. El único padre válido para un equipo es en el servicio Teams. Los equipos ofrecen una gama de características útiles para los desarrolladores que se pueden dividir en dos grupos ásperos:
- Características que funcionan 'fuera de la caja delimitadora'
- Las características que los desarrolladores pueden programar en su juego.
Comportamiento del equipo integrado La siguiente funcionalidad de las Teamas existe por defecto y no requiere que el desarrollador programar ningún comportamiento personalizado.
- Cuando sea parte de un equipo, el nombre sobre el personaje de un jugador Model será de color al Team.TeamColor
- Al usar la lista de jugadores predeterminada, los usuarios se agruparán y se mostrarán juntos como un equipo
- Establecer Player.Neutral a true hará que el Player esté desasociado con el equipo, pero no cambiará Player.Team o 1> Class.Player.TeamColor1>
- Cuando un Class.Player se una a un juego, se asignarán al equipo con Class.Team.AutoAssignable definido como cierto que tiene los jugadores más pocos. Si no hay un equipo de autoasignación disponible, Class.Player.Neutral se asignará como cierto
- Cuando SpawnLocation.Neutral está configurado como falso, solo los jugadores cuyo Player.TeamColor coincida con SpawnLocation.TeamColor pueden generarse en ese 1> Class.SpawnLocation1>
- Cuando SpawnLocation.AllowTeamChangeOnTouch está configurado como verdadero, el color Player.TeamColor de un jugador cambiará a SpawnLocation.TeamColor cuando su personaje toque el 1> Class.SpawnLocation1>
Comportamientos de equipo extendidos opcionales Muchos desarrolladores eligieron agregar las siguientes características a los equipos en su propio código.
- Implemente verificaciones en el código de armas para prevenir desencadenaramigable.
- Implica controles en las puertas o en otras características que solo permiten el uso de ciertos equipos
- Asigna periódicamente equipos para mantener el saldodel equipo
Amostras de código
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)
Resumo
Propriedades
Esta propiedad determina si Players será colocado automáticamente en el Team cuando se unen. Si varios equipos tienen esta propiedad configurada como verdadera, Roblox intentará incluso los equipos cuando se agreguen Players.
Esta propiedad establece el color de la Team. Determina la propiedad Player.TeamColor de los jugadores que son miembros del equipo. También determina el color que se muestra en la lista de jugadores y encima de las cabezas de los jugadores.
Métodos
Eventos
Se activa cuando se asigna un Player a Class.Team. Un jugador se considera asignado si su propiedad Team es igual a la Player.Team y 2>Class.Player.Neutral2> es falsa.
Se activa cuando se elimina un Player de un Team . Esto puede deberse a que el Player salga del juego, 1> Class.Player.Neutral1> se establezca como cierto o que el 4> Class.Player4> se una a un equipo diferente.
Propriedades
AutoAssignable
Esta propiedad determina si Players será colocado automáticamente en el Team cuando se unen. Si varios equipos tienen esta propiedad configurada como verdadera, Roblox intentará incluso los equipos cuando se agreguen Players.
Cuando un Class.Player se una a un juego, se asignará al Class.Team con Class.Team.AutoAssignable configurado como verdadero que tiene los jugadores más pequeños. Si no hay tal equipo disponible, se establecerá Class.Player.Neutral.
Tenga en cuenta mientras usa esta propiedad, ayudará incluso a los equipos cuando se agreguen jugadores, no hará nada cuando se eliminen los jugadores. Por esta razón, los desarrolladores pueden desear implementar su propio sistema de equilibrado de equipo.
Amostras de código
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
Esta propiedad establece el color de la Team. Determina la propiedad Player.TeamColor de los jugadores que son miembros del equipo.
Muchas de las funciones de equipo predeterminadas de Roblox se basan en el color del equipo, no en el nombre o el objeto. Por ejemplo, SpawnLocations se puede asignar a un equipo a través de SpawnLocation.TeamColor . Por esta razón, se recomienda que los desarrolladores aseguren de que cada Team tenga un color de equipo único.
Cualquier jugador que sea parte de un equipo tendrá su nombre cambiado a TeamColor del propiedaddel equipo. También estarán debajo del encabezado del equipo en la lista de jugadores.
Amostras de código
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)
Métodos
GetPlayers
Devuelve una lista de Players que están asignados a la Team . Un Player se considera asignado si su propiedad 1> Class.Player.Team1> es igual a la 4> Class.Team4> y 7> Class.Player.Neutral7>
Esta función tiene varios usos potenciales, incluido contar el número de jugadores en un Team o darle a cada Player en un Team un 2>Class.Tool2> .
Devolução
Amostras de código
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
PlayerAdded
Se activa cuando se asigna un Player a Class.Team. Un jugador se considera asignado si su propiedad Team es igual a la Player.Team y 2>Class.Player.Neutral2> es falsa.
Este evento es específico y solo se activará cuando un Player se una al Team específico. Cualquier función conectada a este evento se pasará al objeto Player del jugador que se unió al equipo. Por ejemplo:
Team.PlayerAdded:Connect(function(jugador) print(jugador.Name.." se ha unido al equipo") finalizar)
Parâmetros
Amostras de código
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
Se activa cuando se elimina un Player de un Team . Esto puede deberse a que el Player salga del juego, 1> Class.Player.Neutral1> se establezca como cierto o que el 4> Class.Player4> se una a un equipo diferente.
Este evento es específico del equipo y solo se activará cuando un Player salga del equipo específico. Cualquier función conectada a este evento se pasará al objeto Team del jugador que salió del equipo. Por ejemplo:
Team.PlayerRemoved:Connect(function(jugador) print(jugador.Name.." ha dejado el equipo") finalizar)
Parâmetros
Amostras de código
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)