Team

Hiển Thị Bản Đã Lỗi Thời

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.

Lớp Team đại diện cho một phe trong một địa điểmRoblox. Người cha duy nhất cho một đội là trong dịch vụ Teams. Teams cung cấp một loạt các tính năng hữu ích cho các nhà phát triển có thể được chia thành hai nhóm rau:

  • Các tính năng hoạt động ngoài hộp
  • Các tính năng mà các nhà phát triển có thể lập trình vào trò chơi của họ.

Hành vi đội tích hợp Các chức năng sau đây của Teams tồn tại bởi mặc định và không yêu cầu nhà phát triển lập trình bất kỳ hành vi tùy chỉnh nào.

  • Khi một phần của một đội, tên trên một nhân vật của người chơi sẽ được thay đổi màu sắc thành Model
  • Thay đổi Player.TeamColor sẽ khiến Player.Team chuyển sang đội với màu Team.TeamColor tương ứng
  • Khi sử dụng danh sách người chơi mặc định, người dùng sẽ được phân loại và hiển thị cùng nhau như một nhóm
  • Đặt Player.Neutral để true sẽ khiến Player bị rời khỏi nhóm, nhưng nó sẽ không thay đổi Player.Team hoặc 1> Class.Player.TeamColor1>
  • Khi một Class.Player tham gia vào một trò chơi, họ sẽ được giao vào đội với Player được đặt trên true có số lượng người chơi ít nhất. Nếu không có đội giao trực tiếp, Team.AutoAssignable sẽ được đặt tr
  • Khi SpawnLocation.Neutral được cài đặt sai, chỉ những người chơi có Player.TeamColor đúng với SpawnLocation.TeamColor để có thể xuất hiện trên 1> Class.SpawnLocation1>
  • Khi SpawnLocation.AllowTeamChangeOnTouch được cài đặt thành true, một người chơi's Player.TeamColor sẽ thay đổi thành SpawnLocation.TeamColor khi người chơi của họ chạm vào 1> Class.SpawnLocation1>

Hành vi mở rộng đội tùy chọn Nhiều nhà phát triển đã chọn thêm các tính năng sau đây vào các đội trong mã của họ.

  • Thực hiện kiểm tra trong mã vũ khí để ngăn chặn lửa thân thiện.
  • Thực hiện kiểm tra trong các cửa hoặc các tính năng khác cho phép chỉ một số nhóm có thể sử dụng chúng
  • Tái phân bổ thường xuyên các đội để duy trì sự cân số dưcủa đội

Mẫu mã

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)

Tóm Tắt

Thuộc Tính

  • Đọc Song Song

    Điều này xác định liệu Players sẽ được đặt tự động vào Team khi tham gia. Nếu nhiều đội có giá trị này đặt trên true, Roblox sẽ cố gắng thậm chí các đội khi Players được thêm.

  • Đọc Song Song

    Thuộc tính này đặt màu của Team . Định định màu Player.TeamColor của người chơi là thành viên của đội. Cũng xác định màu hiển thị trên danh sách người chơi và trên đầu người chơi.

Phương Pháp

  • GetPlayers():Instances
    Ghi Song Song

    Trả lại một danh sách các Players được giao cho Team . Một Player được xem như đã giao nếu điều kiện 1> Class.Player.Team1> của họ bằng v

Sự Kiện

  • Lửa mọi lúc mọi nơi khi một Player được giao cho Team . Một người chơi được xem như đã giao nếu điều kiện Player.Team của họ bằng với 1> Class.Team1> và

  • Lửa mỗi khi một Class.Player được loại bỏ khỏi một Class.Team . Điều này có thể là do Class.Player rời khỏi trò chơi, Class.Player.Neutral được đặt thành true hoặc Class.Player tham gia một nhóm khác.

Thuộc Tính

AutoAssignable

Đọc Song Song

Điều này xác định liệu Players sẽ được đặt tự động vào Team khi tham gia. Nếu nhiều đội có giá trị này đặt trên true, Roblox sẽ cố gắng thậm chí các đội khi Players được thêm.

Khi một Class.Player tham gia vào một trò chơi, họ sẽ được giao cho Class.Team với Class.Team.AutoAssignable được đặt trên true có số lượng người chơi ít nhất. Nếu không có đội nào khác có sẵn, Class.Player sẽ được đặt tr

Ghi chú khi sử dụng thuộc tính này sẽ giúp đỡ cả các đội khi người chơi được thêm, nó sẽ không làm bất cứ điều gì khi người chơi bị xóa. Vì lý do này, các nhà phát triển có thể muốn tích hợp cân bằng đội của riêng họ.

Mẫu mã

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

Đọc Song Song

Đặt màu của Team . Định nghĩa màu Player.TeamColor của người chơi là thành viên của nhóm.

Rất nhiều chức năng của đội mặc định của Roblox dựa trên màu của đội, chứ không phải tên hoặc mục tiêu. Ví dụ, SpawnLocations có thể được giao cho một đội bằng cách sử dụng Class.S

Bất kỳ người chơi nào cũng là một phần của một đội sẽ có màu tên của họ thay đổi thành màu tên đội của đội. Họ cũng sẽ được đặt dưới dấu hiệu của danh sách người chơi.

Mẫu mã

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)

Phương Pháp

GetPlayers

Instances
Ghi Song Song

Trả lại một danh sách các Players được giao cho Team . Một Player được xem như đã giao nếu điều kiện 1> Class.Player.Team1> của họ bằng v

Hành động này có một loạt các lợi dụng tiềm năng, bao gồm đếm số lượng người chơi trên một Team hoặc đưa mọi người Player trên một Team có một 1> Class.Tool1> .


Lợi Nhuận

Instances

Một dàn Players trong Team .

Mẫu mã

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

Sự Kiện

PlayerAdded

Lửa mọi lúc mọi nơi khi một Player được giao cho Team . Một người chơi được xem như đã giao nếu điều kiện Player.Team của họ bằng với 1> Class.Team1> và

Sự kiện này là của đội và chỉ khi một Player tham gia vào Team cụ thể. Bất kỳ chức năng nào liên quan đến sự kiện này sẽ được truyền cho Player người tham gia vào đội. Ví dụ:

Team.PlayerAdded:Connect(function(người chơi) print(người chơi.Name.." đã tham gia vào đội") kết thúc)

Tham Số

player: Player

Class.Player đã được thêm vào.


Mẫu mã

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

Lửa mỗi khi một Class.Player được loại bỏ khỏi một Class.Team . Điều này có thể là do Class.Player rời khỏi trò chơi, Class.Player.Neutral được đặt thành true hoặc Class.Player tham gia một nhóm khác.

Sự kiện này là riêng cho đội và chỉ khi một Player rời khỏi Team . Bất kỳ chức năng nào liên quan đến sự kiện này sẽ được truyền cho Player người rời khỏi đội. Ví dụ:

Team.PlayerRemoved: Connect(function(người chơi) print(người chơi.Name.." đã rời khỏi nhóm") kết thúc)

Tham Số

player: Player

Các Player đã bị xóa.


Mẫu mã

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)