Membuat Tim

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Menciptakan tim memungkinkan Anda mengumpulkan pemain menjadi kelompok yang bersaing untuk menyelesaikan tujuan umum, seperti mencetak skor terbanyak atau menyeberangi garis finish sebelum anggota tim musuh lainnya. Untuk pemain pertama, menciptakan tim sangat penting karena membangun strategi game yang kompleks dan koordinasi di luar set keterampilan setiap pemain individual.

Menggunakan sample laser tag experience sebagai referensi, bagian ini dari tutorial menunjukkan cara mengurutkan pemain ke dalam tim, termasuk panduan skrip tentang:

  • Menggunakan fungsionalitas default Teams untuk menetapkan pemain ke tim hijau atau merah muda.
  • Membantu pemain berbeda mengidentifikasi antara penggemar mereka dan anggota tim musuh melalui indikator tim on-screen dan dalam pengalaman.
  • Mengaktifkan permainan yang bisa diubah yang tidak menghukum pemain karena meledak rekan mereka.

Setelah Anda menyelesaikan bagian ini, Anda akan belajar tentang skrip yang memungkinkan pemain untuk spawn atau respawn ke lobi netral atau zona bertelur tim, kostumisasi visual field force pemain pertama, dan menangani status klien dari server dan klien.

Menetapkan Warna Tim

Pengalaman laser tag sampel menggunakan layanan Teams sebagai dasar untuk membuat dua tim karena layanan menawarkan perilaku sorting tim bawaan yang bekerja secara luas di luar kotak. Misalnya, tanpa upaya script tambahan, layanan menangani tindakan seperti:

  • Mengurutkan dan menyeimbangkan pemain secara merata ke setiap tim.
  • Mengumpulkan pemain di bawah tim mereka di papan peringkat.
  • Mewarnai nama pemain di ruang 3D ke warna tim yang sesuai.
  • Memunculkan pemain untuk lokasi bertelur yang hanya tim mereka yang dapat mengakses.

Karena kemampuan default ini, sampel mengaktifkan layanan Teams , lalu menggunakan dua objek Team yang berbeda dengan berbagai

Pent penting untuk dicatat nama BrickColor yang tepat untuk Team.Color properti kare

startSyncingTeamColor referensi Team.Color sehingga dapat menetapkan warna dan ikon yang benar untuk tampilan tim pemain di sudut kiri bawah dari layar mereka.

Tim Hijau
Tim Pink

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

Menampilkan Indikator Tim

Setelah seorang pemain diurutkan menjadi tim, mereka harus dapat dengan cepat memecahkan apa tim mereka berasal, dan berbeda antara anggota tim mereka dan anggota tim musuh. Kemampuan ini penting karena gameplay dari pengalaman menembak orang pertama memerlukan pemain untuk membuat keputusan strategis cepat saat mereka berada di zona kombat sehingga mereka tidak terpikir dan kehilangan putaran.

Untuk menyiapkan pemain untuk berhasil, pengalaman tag laser sampel memberikan banyak indikator tim baik di layar maupun di ruang 3D:

  • Indikator Pemain – UI khusus di layar yang menunjukkan warna tim pemain dan ikon.
  • Indikator Tim – UI khusus dalam pengalaman yang menunjukkan warna tim pemain.
  • Indikator Papan Peringkat – UI layar default tim yang mengumpulkan pemain di bawah warna tim mereka.
  • Tint Nama Panggilan – Layanan Tim Biasa dalam UI pengalaman yang menyatukan nama panggilan pemain di atas kepala mereka ke warna tim mereka.
Indikator Pada-layar >
Indikator Pemain
Indikator Papan Peringkat
Indikator Tidak Pengalamanan
Indikator Tim
Warna Nama

Anda tidak perlu melakukan pekerjaan tambahan untuk Leaderboard Indicator atau Name Tint di luar menetapkan warna tim dari bagian sebelumnya dari tutorial, tetapi indikator UI khusus memerlukan lebih banyak upaya pemrograman untuk menunjukkan indikator dan menutup indikator musuh saat mereka berada di belakang dinding. Unt

Nonaktifkan Tembakan Teman

Sementara beberapa pengalaman penembak orang pertama menghukum pemain yang meledak rekan satu tim mereka sendiri, pengalaman laser samuel memungkinkan lebih banyak permainan yang mudah diterima dengan menonaktifkan tembakan teman. Keputusan desain ini memungkinkan setiap orang hanya meningkatkan skor tim mereka, bukan menurunkannya karena kecelakaan gameplay.

Untuk memahami cara sampel menerapkan kemampuan ini, tinjau cara ServerScriptService > LaserBlastHandler > prosesTaggedPlayers > 1>onPlayerTagged1> menangani kerusakan ke tag


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

Sebelum menurunkan kesehatan, script pertama memverifikasi apakah pemain bertanda adalah di tim yang sama dengan pemain yang memulai ledakan. Jika mereka berada di tim yang sama, script mengabaikan data ledakan sepenuhnya.


local character = playerTagged.Character
local isFriendly = playerBlasted.Team == playerTagged.Team
-- Larangan tembakan ramah
if isFriendly then
return
end

Namun, jika pemain bertanda adalah pada tim musuh, pemain mengambil jumlah kerusakan yang sesuai menurut jenis blaster. Selain itu, jika pemain mengambil cukup banyak kerusakan untuk menjadi tagged keluar, script menghadiahkan poin ke tim pemain yang menginisialisasi ledakan. Untuk lebih banyak informasi tentang cara menambahkan


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

Jika Anda menguji pengalaman saat ini, semua pemain akan secara acak muncul di salah satu zona pemunculan di ujung kiri dan kanan arena, terlepas dari tim mana mereka berasal, yang berarti setiap tim akan muncul tepat di sebelah satu sama lain.

Untuk mengatasi masalah ini, bagian berikut dari tutorial mengajari Anda tentang logika khusus di balik pembatasan tim untuk lokasi tertentu, menangani status klien saat pemain meninggalkan area spawn setelah memilih blaster mereka, dan respawning pemain kembali ke zona spawne mereka atau area lobi setelah kesehatan mereka mencapai nol.