Team
*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.
The Team class represents a faction in a Roblox dünya. The only valid parent for a Team is in the Teams service. Teams offer a range of features that are useful to developers that can be divided into two rough groups:
- Kutudan çıkış işleyen özellikler
- Geliştiricilerin oyunlarına kodlayabileceği özellikler.
Yerleşik Takım Davranışı Takımlar'ın aşağıdaki işlevleri varsayılır olarak mevcut olup geliştiricinin herhangi bir özel davranışı programlaması gerekmez.
- Bir Takım'ın bir parçası, bir oyuncunun karakterinin üzerindeki isim Model ile renklenir.
- Varsayılan oyuncu listesini kullanırken kullanıcılar bir takım olarak bir araya getirilecek ve gösterilecektir
- Anahtarı Player.Neutral ın doğru olmasına ayarlayarak Player ı takım ile birleştirmeyi engeller, ancak Player.Team veya 1> Class.Player.TeamColor1> değiştirmez
- Bir Player bir oyuna katıldığında, bir takıma Team.AutoAssignable ile ayarlanmış olan iletişim kurulacaktır. Eğer bir takım kullanılamıyorsa, Player.Neutral ile ayarlanacaktır.
- Class.SpawnLocation.Neutral doğru olarak ayarlandığında, sadece Player.TeamColor ile eşleşen oyuncular o SpawnLocation.TeamColor üzerinde oluşturulabilir.
- Class.SpawnLocation.AllowTeamChangeOnTouch Class.Player.TeamColor``Class.SpawnLocation.TeamColor 1>Class.SpawnLocation.TeamColor1> 4>Class.SpawnLocation.AllowPlayerChange4> 7>Class.SpawnLocation.AllowPlayerChange7> 0>Class.SpawnLocation.AllowPlayerChange0> 3>Class.SpawnLocation.AllowPlayerChange3> 6>Class.SpawnLocation
Ekstra Gelişmiş Takım Davranışları Birçok geliştirici kendi kodlarındaki takımlara aşağıdaki özellikleri eklemek için tercih etti.
- Müttefik ateşi önlemek için silah kodunda kontrolleri uygula.
- Sadece belirli takımların kullanımına izin veren kapılar veya diğer özelliklerde kontrolleri uygulayın
- Takım dengelemesini korumak için takımları periyodik olarak yeniden atayın
Kod Örnekleri
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)
Özet
Özellikler
Bu özellik, katılırken Players ile otomatik olarak Team arasına yerleştirileceğini belirler. Eğer birkaç takım bu özellik setini doğru yaparsa, Roblox, katılırken Players ile birlikte bir takım dışarıda deneyecektir.
Bu özellik, Team 'nın rengini ayarlar. Takımın üyelerinden olan oyuncuların Player.TeamColor özelliğini belirler. Ayrıca, oyuncu listesindeki ve oyuncunun başındaki renkleri belirler.
Yöntemler
Etkinlikler
Bir Player bir Team 'e atanırsa oyuncu kendi Player.Team özelliğiyle eşleştirilir. Bir oyuncunun 1>Class.Player.Team1> özelliği ile eşleşmesi durumunda, oyuncu kendi 4>Class.Player.Neutral4> özelliğiyle eşleşmes
Bir Class.Player``Class.Team から kaldırıldığında herhangi bir zaman ateştirir. Bu, Player oyundan ayrıldığından, 1> Class.Player.Neutral1> doğru olarak ayarlandığında veya 4> Class.Player4> bir f
Özellikler
AutoAssignable
Bu özellik, katılırken Players ile otomatik olarak Team arasına yerleştirileceğini belirler. Eğer birkaç takım bu özellik setini doğru yaparsa, Roblox, katılırken Players ile birlikte bir takım dışarıda deneyecektir.
Bir Player bir oyuna katıldığında, onlara Team ile birlikte Team.AutoAssignable ayarına sahip olacaklar. Eğer böyle bir takım mevcut değilse, 1> Class.Player.Neutral1> bir takım ayarına sahip olacak.
Bu özellik kullanılırken dikkat edilmesi, oyuncular eklenince takımların dengelenmesine yardımcı olacaktır, oyuncular kaldırıldığında hiçbir şey yapmaz. Bu nedenle geliştiriciler kendi takım dengeleme sistemlerini uygulayabilir.
Kod Örnekleri
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
Bu özellik, Team 'nın rengini ayarlar. Takımın üyelerinin Player.TeamColor özelliğini belirler.
Roblox'un varsayılan takım işlevlerinin çoğu, takım rengine dayanmaktadır, bu nedenle isim veya nesne değil. Örneğin, SpawnLocations , bir takıma SpawnLocation.TeamColor ile atanabilir. Bu nedenle, geliştiricilerin her Team
Takımın bir parçası olan herhangi bir oyuncunun takımın TeamColor özelliğine kendi isim rengini değiştirecek. Ayrıca oyuncu listesinin altında takım başlığının altında yer alacaktır.
Kod Örnekleri
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)
Yöntemler
GetPlayers
Class.Player|Players ile ilgili bir liste içerir. Bir Team ile ilgili bir liste içerirse, özellikleri Player ile aynıdır ve 1> Class.Player.Neutral1> ile sahte ise değerlidir.
Bu işlevin bir dizi potansiyel kullanımı vardır, bunlar sayıyı Team ın veya her bir Player 'ın bir Team üzerinde bir 2>Class.Tool2> vermesi.
Dönüşler
Class.Team içindeki Team matrisi.
Kod Örnekleri
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
Etkinlikler
PlayerAdded
Bir Player bir Team 'e atanırsa oyuncu kendi Player.Team özelliğiyle eşleştirilir. Bir oyuncunun 1>Class.Player.Team1> özelliği ile eşleşmesi durumunda, oyuncu kendi 4>Class.Player.Neutral4> özelliğiyle eşleşmes
Bu olay takım spesifik ve sadece Player ile birleştiğinde yanacaktır. Herhangi bir Team ile ilgili işlev bağlantısı, katılan takımın Player ile bağlanmasından sonra oyuncunun katılımını alacaktır. Örneğin:
Team.PlayerAdded:Connect(function(oyuncu) print(oyuncu.Name.." has joined the team") bitir)
Parametreler
Kod Örnekleri
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
Bir Class.Player``Class.Team から kaldırıldığında herhangi bir zaman ateştirir. Bu, Player oyundan ayrıldığından, 1> Class.Player.Neutral1> doğru olarak ayarlandığında veya 4> Class.Player4> bir f
Bu olay takım spesifikidir ve sadece bir Player takımdan ayrıldığında ateşlenecektir. Bu olaya bağlı herhangi bir işlev, Team oyuncusunun takımdan ayrıldığındaki oyunun Player nesline geçecektir. Örneğin:
Team.PlayerRemoved: Connect(function(oyuncu) print(oyuncu.Name.." takımı terk etti") bitir)
Parametreler
Class.Player kaldırıldı.
Kod Örnekleri
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)