Takımlar Oluşturulması

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Takımlar oluşturma , oyuncuları ortak bir hedefe ulaşmak için yarışan gruplara ayırır, takımların en çok puan topladığı veya diğer düşman takımlarının önünde sona ulaşma stratejilerini karşılaştırdığı için özellikle önemlidir. Bir ilk kişi nişancı için, takımlar oluşturma özell

Bu nedenle, bu öğreticiyi kullanarak örnek laser etiketi deneyimi referans olarak, bu bölüm öğreticiyi kullanarak oyuncuları takımlara ayırmanın nasıl öğretileceğini öğretir:

  • Class.Teams hizmetinin varsayılan işlevlerini kullanarak oyuncuları yeşil veya pembe takıma atar.
  • Oyuncuların müttefikleriyle düşman takım üyeleri arasında ekran ve deneyim içindeki takım göstergeleri aracılığıyla farklılık yaratmasına yardımcı olmak.
  • Takım arkadaşlarını patlatmak için para cezalarını kullanmayan affedici oyun etkinleştirme.

Bu bölümü tamamladıktan sonra, oyuncuların herhangi bir nötr lobi veya takım oluşturma bölgesine yeniden doğmasına izin veren kodları öğreneceksiniz, ilk kişi güç alanı görüntülerini özelleştireceksiniz ve sunucudan veya istemciden iki ayrı olarak kullanıcı durumunu ele alacaksınız.

Takım Renglerini Atayın

Örnek laser etiketi deneyimi iki takım oluşturmak için Teams hizmetini temel olarak kullanır çünkü hizmet, içe aktarma davranışını genişletir ve kutu dışı çalışır. Örneğin, ekstra kodlama çabası gerektirmeyen durumlarda, hizmet aşağıdaki gibi eylemleri işleyebilir:

  • Oyuncuları her takıma eşit olarak sıralayın ve dengeleyin.
  • Lider liderlik tablosutakımlarının altındaki oyuncuları gruplandırır.
  • Oyuncuları 3D alanında eşdeğer takım rengine boya.
  • Takımların erişebileceği farklı oluşturma yerlerine oluşturulan oyuncular.

Bu varsayılan işlevselliği nedeniyle, örnek Teams hizmetini etkinleştirir ve ardından Team özellik değerler

Arayüz, deneyimin tüm kodlarının çoğu yerinde kullanıcıları takip etmek için deneyimin kull

startSyncingTeamColor referansları Team.Color takılabilirsiniz, böylece oyuncunun takım göstergesinin alt kısmındaki ekran sol kısmında doğru rengi ve ikonu atayabilirsiniz.

Yeşil Takım
Pembe Takım

local function setPlayerTeamIcon(gui: ScreenGui)
for _, teamColorIcon in gui.PlayerDisplay.TeamIcons:GetChildren() do
local iconTeamColor = teamColorIcon:GetAttribute(GuiAttribute.teamColor)
teamColorIcon.Visible = localPlayer.TeamColor == iconTeamColor
end
end
local function startSyncingTeamColor(gui: ScreenGui)
setPlayerTeamIcon(gui)
localPlayer:GetPropertyChangedSignal("Team"):Connect(function()
setPlayerTeamIcon(gui)
end)
end

Takım Göstergelerini Göster

Bir oyuncu bir takıma düzenlendiğinde, takımlarına ait olduğunu hızlı bir şekilde anlayabilmeli ve müttefikleriyle düşman takım üyeleri arasında farklılık yaratabilmelidir. Bu yetenek önemlidir, çünkü birinci kişisel bir nişancı deneyiminin oynanışı, oyuncuların savaş bölgelerinde etiketlenmed

Oyuncuları başarılı olmak için ayarlamak için, özel laser etiketi deneyimi, hem ekranda hem de 3D alanında birkaç takım göstergesi sağlar:

  • Oyuncu Göstergesi – oyuncutakım rengini ve simgegösteren özel bir ekran UI'si.
  • Takım Göstergesi – oyuncutakım rengini gösteren özelleştirilmiş bir deneyim UI'si.
  • Leaderboard Indicator – Takımların altındaki oyuncuları takım renginde gruplandıran varsayılan takımlar servisi.
  • İsim Tintesi – oyuncuismini kafasındaki takım rengine boya.
Ekran Göstergeleri
Oyuncu Göstergesi
Lider tablosu göstergesi
Deneyim İçi Göstergeleri
Takım Göstergesi
İsim Renkleri

Önceki bölümden takım rengi atamak dışında Liderlik Göstergesi ve İsim Renkleri için ekstra çalışma yapmanıza gerek yok, ancak özel UI takım göstergeleri, göstergeleri gösteren ve kapatan düşman göstergelerini gizleyen gibi işlevleri

Müttefik Ateşi Kapat

Bazı ilk kişi nişancı deneyimleri, kendi takım arkadaşlarını patlatan oyuncuları cezalandırırken, örnek lazer etiketi deneyimi, dostluk ateşini devre dışı bırakarak daha hoş bir oynama imkanı sağlar. Bu tasarım kararı, oyun kaynağından kaybetmeyi önlemek için herkesin sadece takım puanını artırmasına izin verir, oyun kazasından dolayı kaybetmey

Örnekün bu işlevi nasıl gerçekleştirdiğini anlamak için, ServerScriptService > LaserBlastHandler > processTaggedPlayers > 2> onPlayerTagged2> oyuncu


local function onPlayerTagged(playerBlasted: Player, playerTagged: Player, damageAmount: number)

Sağlığı azaltmadan önce, etiketli oyuncu aynı takımda olduğunu doğrular. Eğer aynı takımda olduğunu doğrularsa, etiketli oyuncu patlayıcıyı tamamen görmezden gelir.


local character = playerTagged.Character
local isFriendly = playerBlasted.Team == playerTagged.Team
-- Müttefik ateşi yasakla
if isFriendly then
return
end

Ancak, etiketli oyuncu öldürücü takımda ise, oyuncu blaster yazgöre uygun miktarda hasar alır. Ayrıca, oyuncu etiketlenmiş çıktığı takım için yeterli hasarı alırsa, kullanıcının başlattığı patlamadan sonra takımın ödülü bir puan olarak görü


local humanoid = character and character:FindFirstChild("Humanoid")
if humanoid and humanoid.Health > 0 then
local damage = math.min(damageAmount, humanoid.Health)
humanoid:TakeDamage(damage)
if humanoid.Health <= 0 then
Scoring.incrementScore(playerBlasted, 1)
end
end
end
return onPlayerTagged

Şimdi deneyimi test etseniz, tüm oyuncular anahtar bölgelerdeki herhangi bir oluşturma bölgesinde rastgele olarak doğacak ve her takım birbirinden bağımsız olarak yan yana yerleşecek, yani her takım birbirinden yan yana yerleşecek.

Bu sorunu ele almak için, öğreticiyi bu kadar sınırlı takım oluşturma noktalarına özel kodlama hakkında bilgilendirir, klien durumunu yönetirken blaster'ınızın sağlığını sıfırladığında oluşturma bölgesine veya oyun alanına yeniden oluşturur ve sağlığınızın sıfır olduğunda oluşturma bölgesine veya lobi alanı