Team
*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.
La classe Team représente une faction dans un emplacementRoblox. Le seul parent valide pour une équipe est dans le service Teams. Les équipes offrent une gamme de fonctionnalités utiles aux développeurs qui peuvent être divisés en deux groupes de travail:
- Les fonctionnalités qui fonctionnent « hors de la boîte de modélisation»
- Les développeurs peuvent programmer dans leur jeu.
Comportement d'équipe intégré Les fonctionnalités suivantes des équipes existent par défaut et ne nécessitent pas que le développeur programme un comportement personnalisé.
- Lorsqu'une partie d'une équipe, le nom au-dessus du personnage d'un joueur Model sera coloré en vert Team.TeamColor
- Changer Player.TeamColor fera en sorte que Player.Team passe à l'équipe avec le correspondant Team.TeamColor
- Lors de l'utilisation de la liste de joueurs par défaut, les utilisateurs seront groupés et affichés ensemble en tant que équipe
- Définir Player.Neutral à vrai entraînera la désociation de Player avec l'équipe, mais cela ne changera pas Player.Team ou 1> Class.Player.TeamColor1>
- Lorsqu'un Player rejoint un jeu, il sera attribué à l'équipe avec Team.AutoAssignable défini sur vrai qui a le moins de joueurs. Si aucune équipe auto attribuée n'est disponible, Player.Neutral sera défini sur vrai
- Lorsque SpawnLocation.Neutral est réglé sur false, seuls les joueurs dont le Player.TeamColor correspond à SpawnLocation.TeamColor peuvent générer sur cet 1> Class.SpawnLocation1>
- Lorsque SpawnLocation.AllowTeamChangeOnTouch est réglé sur vrai, le Player.TeamColor d'un joueur sera modifié en SpawnLocation.TeamColor lorsque son personnage touche le 1> Class.SpawnLocation1>
Comportements d'équipe étendus optionnels De nombreux développeurs ont choisi d'ajouter les fonctionnalités suivantes aux équipes dans leur propre code.
- Mettez en œuvre des vérifications dans le code d'arme pour empêcher les lanceramicaux.
- Immentez des vérifications dans des portes ou d'autres fonctionnalités qui ne permettent que certaines équipes de les utiliser
- Réassigner périodiquement les équipes pour maintenir l'soldede l'équipe
Échantillons de code
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)
Résumé
Propriétés
Cette propriété détermine si Players sera automatiquement placé sur le Team lors de l'ajout. Si plusieurs équipes ont cette propriété définie comme vraie, Roblox tentera même les équipes lorsque Players seront ajoutées.
Cette propriété détermine la couleur de la Team. Détermine la propriété Player.TeamColor des joueurs qui sont membres de l'équipe. Détermine également la couleur affichée sur la liste des joueurs et au-dessus des têtes des joueurs.
Méthodes
Évènements
Tire toujours qu'un Player est attribué au Team. Un joueur est considéré comme attribué s'il sa propriété Player.Team est égale à la 2>Class.Team2> et 5>Class.Player.Neutral5> est faux.
Feu quand un Player est retiré d'un Team. Cela peut être dû au fait que le Player quitte le jeu, que 2>Class.Player.Neutral2> est réglé sur vrai ou que le 5>Class.Player5> rejoint une autre équipe.
Propriétés
AutoAssignable
Cette propriété détermine si Players sera automatiquement placé sur le Team lors de l'ajout. Si plusieurs équipes ont cette propriété définie comme vraie, Roblox tentera même les équipes lorsque Players seront ajoutées.
Lorsqu'un Player rejoint un jeu, il sera attribué au Team avec Team.AutoAssignable défini sur vrai qui a le moins de joueurs. Si aucune telle équipe n'est disponible, le 2>Class.Player.Neutral2> sera défini sur vrai.
Notez que lors de l'utilisation de cette propriété, vous aurez l'avantage sur les équipes lorsque des joueurs seront ajoutés, il n'agira à rien lorsque les joueurs seront supprimés. Pour cette raison, les développeurs peuvent souhaiter implémenter leur propre système de balance d'équipe.
Échantillons de code
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
Cette propriété détermine la couleur du Team. Détermine la propriété Player.TeamColor des joueurs qui sont membres de l'équipe.
Beaucoup de la fonctionnalité d'équipe par défaut de Roblox est basée sur la couleur de l'équipe, plutôt que sur le nom ou l'objet. Par exemple, SpawnLocations peut être attribué à une équipe via SpawnLocation.TeamColor. Pour cette raison, il est recommandé que les développeurs s'assurent que chaque Team a une couleur d'équ
Tout joueur qui fait partie d'une équipe aura leur couleur de nom modifiée en couleur d'équipe dans la propriété TeamColor de l'équipe. Ils seront également mis sous l'en-tête de l'équipe sur la liste des joueurs.
Échantillons de code
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éthodes
GetPlayers
Renvoie une liste de Players qui sont attribués au Team . Un Player est considéré comme attribué si sa propriété 1> Class.Player.Team1> est égale à la 4> Class.Team4> et si son statut 7> Class.Player.Neutral</
Cette fonction a un certain nombre d'utilités potentielles, telles que le comptage du nombre de joueurs sur un Team ou la donation de chaque Player sur un Team à un 2>Class.Tool2>.
Retours
Échantillons de code
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
Évènements
PlayerAdded
Tire toujours qu'un Player est attribué au Team. Un joueur est considéré comme attribué s'il sa propriété Player.Team est égale à la 2>Class.Team2> et 5>Class.Player.Neutral5> est faux.
Cet événement est spécifique à l'équipe et ne se déclenchera que lorsqu'un Player joint le Team spécifique. Toute fonction connectée à cet événement sera transmise à l'objet Player du joueur qui a rejoint l'équipe. Par exemple :
Team.PlayerAdded:Connect(function(joueur) print(joueur.Name.." a rejoint l'équipe") terminer)
Paramètres
Échantillons de code
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
Feu quand un Player est retiré d'un Team. Cela peut être dû au fait que le Player quitte le jeu, que 2>Class.Player.Neutral2> est réglé sur vrai ou que le 5>Class.Player5> rejoint une autre équipe.
Cet événement est spécifique à l'équipe et ne se déclenchera que lorsqu'un Player quittera le Team spécifique. Toute fonction connectée à cet événement sera passée à l'objet Player du joueur qui a quitté l'équipe. Par exemple :
Team.PlayerRemoved:Connect(function(joueur) print(joueur.Name.." a quitté l'équipe") terminer)
Paramètres
Échantillons de code
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)