Teams

แสดงที่เลิกใช้งานแล้ว

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

ไม่สามารถสร้าง
บริการ

บริการทีมมีวัตถุ Team ของเกม ต้องมีวัตถุ Team เป็นพ่อของบริการทีม

ทีมเสนอรุ่นที่หลากหลายของคุณสมบัติที่มีประโยชน์สำหรับผู้พัฒนา สิ่งเหล่านี้สามารถแบ่งออกเป็นรุ่นที่ทำงานออกจากกล่องและคุณสมบัติที่ผู้พัฒนาสามารถโปรแกรมในเกมของพวกเขาได้

พฤติกรรมทีมอินบายด์ ตามที่ติดตั้งไว้ในทีม ฟังก์ชันต่อไปนี้ของทีมมีอยู่โดยปกติและไม่ต้องการให้ผู้พัฒนาเขียนรหัสพฤติกรรมใด ๆ ที่กําหนดเอง

  • เมื่อเป็นส่วนหนึ่งของทีม, ชื่อข้างบนตัวละครของผู้เล่นจะถูกสีเป็น Model
  • การเปลี่ยน Player.TeamColor จะทำให้ Player.Team สวิตช์เป็นทีมด้วย Team.TeamColor ตามลำดับ
  • เมื่อใช้รายการผู้เล่นเริ่มต้นผู้ใช้จะถูกจัดเป็นกลุ่มและปรากฏขึ้นโดยทีม
  • การตั้งค่า Player.Neutral ให้เป็นจริงจะทำให้ Player ไม่สามารถเข้าร่วมกับทีมได้ แต่จะไม่เปลี่ยนแปลง Player.Team หรือ 1> Class.Player.TeamColor1>
  • เมื่อ Player เข้าร่วมเกมพวกเขาจะได้รับการแจกจ่ายไปยังทีมด้วย Team.AutoAssignable ตั้งค่าให้เป็น true ที่มีผู้เล่นน้อยที่สุด หากไม่มีทีมที่สามารถแจกจ่ายได้
  • เมื่อ SpawnLocation.Neutral ตั้งค่าเป็น false เท่านั้นผู้เล่นที่มี Player.TeamColor ตรงกับ SpawnLocation.TeamColor สามารถเรียกใช้ได้บน 11> Class.SpawnLocation1>
  • เมื่อ SpawnLocation.AllowTeamChangeOnTouch ตั้งค่าเป็นจริงผู้เล่นจะเปลี่ยน Player.TeamColor ของพวกเขาเป็น SpawnLocation.TeamColor เมื่อพวกเขาสัมผัสกับ 1> Class.SpawnLocation1>

พฤติกรรมทีมขนาดขยายได้เปิดตัว รหัส

  • ใส่ให้เช็คสำหรับทีมในโค้ดอาวุธเพื่อป้องกันการฆ่าทีม
  • ใส่ประตูหรือคุณสมบัติอื่น ๆ ที่ใช้ได้กับทีมบางทีมเท่านั้น
  • ยอดคงเหลือ

ตัวอย่างโค้ด

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

สรุป

วิธีการ

  • GetTeams():Instances

    กลับตารางที่มีวัตถุ Team ของเกม จะกลับมาเฉพาะวัตถุ Team ที่เป็นบรรพบุรุษของบริการ Teams เท่านั้น

คุณสมบัติ

วิธีการ

GetTeams

Instances

ระบบ GetTeam กลับตารางที่มีวัตถุ Team ของเกม

หมายเหตุนี้จะกลับไปที่วัตถุทีมเท่านั้นที่เป็นลูกพี่ลูกน้องโดยตรงกับบริการ Teams สำหรับเหตุผลนี้จึงแนะนำให้ผู้พัฒนาเท่านั้นที่


ส่งค่ากลับ

Instances

รายการของ Teams ในเกม

ตัวอย่างโค้ด

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

อีเวนต์