Teams

Veraltete anzeigen

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Nicht erstellbar
Dienst

Der Teams-Dienst enthält die Team -Objekte eines Spiels. Team -Objekte müssen dem Teams-Dienst zugewiesen sein.

Teams bieten eine Reihe von Funktionen, die für Entwickler nützlich sind. Dies kann breit über Funktionen, die außerhalb der Box laufen, und Funktionen, die Entwickler in ihrem Spiel programmieren können, in Unternehmen aufgeteilt werden.

Eingebaute Team-Verhalten Die folgende Funktionalität von Teams existiert standardmäßig und erfordert nicht, dass der Entwickler ein benutzerdefiniertes Verhalten programmiert.

Optionale erweiterte Teamverhalten Viele Entwickler haben sich entschieden, die folgenden Funktionen in ihren eigenen Codes zu verwenden.

  • implementiere Checks für Team im Waffencode, um Team-Kills zu verhindern
  • Stellen Sie Türen oder andere Funktionen ein, die nur bestimmten Teams zur Verfügung stehen
  • Team-Verteilerung periodisch erneut, um Team-Haushalt Kontostand

Code-Beispiele

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

Zusammenfassung

Methoden

  • GetTeams():Instances

    Gibt eine Tabelle zurück, die die Spiel- Team -Objekte enthält. Wird nur Team -Objekte zurückgeben, die mit dem Teams -Dienst verbunden sind.

Eigenschaften

Methoden

GetTeams

Instances

Die GetTeam-Funktion gibt eine Tabelle zurück, die die Team.

Beachten Sie, dass dies nur Team-Objekte zurückgibt, die direkt mit dem Teams -Dienst verbunden sind. Aus diesem Grund wird empfohlen, dass Entwickler nur Team -Objekte mit dem Teams -Dienst und nicht mit anderen 1> Class.Instance|Instanzen1> (oder mit sich selbst) verbunden sind.


Rückgaben

Instances

Ein Array von Teams im Spiel.

Code-Beispiele

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

Ereignisse