Perangkap yang mengurangi kesehatan pemain adalah elemen permainan yang menyenangkan yang dapat dikode dengan pernyataan kondisional. Berlatih menggunakan kondisi dengan membuat bagian yang menetapkan kesehatan pemain setara saat disentuh.
Mengatur Perangkap
Perangkap bekerja dengan sangat baik dalam pengalaman dengan tantangan berbasis gerakan, seperti obby. Langkah-langkah ini akan dimulai dengan menetapkan variabel dan fungsi yang diperlukan. Lakukan sebanyak mungkin tanpa melihat kotak kode terlebih dahulu.
Buat dan nama bagian perangkap. Sisipkan skrip ke bagian.
Dalam script, tambahkan komentar deskriptif dan kemudian gunakan variabel untuk mengacu pada orang tua script.
-- Jika seorang pemain menyentuh bagian ini, tetapkan kesehatan mereka ke 0local trapPart = script.ParentBuat fungsi bernama onTouch() dengan parameter bernama otherPart .
-- Jika seorang pemain menyentuh bagian ini, tetapkan kesehatan mereka ke 0local trapPart = script.Parentlocal function onTouch(otherPart)endHubungkan fungsi ke acara Touched bagian perangkap untuk mengeksekusi setiap kali sesuatu menyentuh bagian.
local trapPart = script.Parentlocal function onTouch(otherPart)endtrapPart.Touched:Connect(onTouch)
Memeriksa untuk Player Touch
Ingat, parameter otherPart menyimpan apa pun yang menyentuh bagian perangkap, yang mungkin menjadi bagian dari pemain atau hanya papan dasar.
Untuk menjamin bahwa perangkap hanya akan menghancurkan pemain dan tidak akan menghancurkan item dekor acak, gunakan pernyataan if/then untuk memeriksa apakah apa pun di otherPart berisi objek Humanoid.
Menemukan Objek Tertentu
Fungsi FindFirstChildWhichIsA() dapat digunakan untuk mencari jenis objek tertentu, yang mudah karena kita mencari objek Humanoid. Pemain kemungkinan akan menyentuh perangkap hanya dengan bagian dari avatar mereka, jadi variabel harus diatur untuk menemukan orang tua dari bagian yang disentuh dan mencarinya untuk Humanoid.
Dalam onTouch() , ketik local character = otherPart.Parent .
local trapPart = script.Parentlocal function onTouch(otherPart)-- Menemukan objek orang tualocal character = otherPart.ParentendtrapPart.Touched:Connect(onTouch)Periksa apakah character memiliki Humanoid dengan mengetik:
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")endtrapPart.Touched:Connect(onTouch)
Memeriksa dengan if Statement
Jika Humanoid ditemukan, maka tetapkan Kesehatan Humanoid menjadi nol.
Gunakan if statement untuk memeriksa apakah Humanoid diberikan dengan sukses ke local humanoid .
local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- Mengevaluasi apakah ditemukan Humanoidif humanoid thenendendtrapPart.Touched:Connect(onTouch)Tambahkan pernyataan cetak dan periksa kode sejauh ini.
local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- Mengevaluasi apakah ditemukan Humanoidif humanoid thenprint("Found a Humanoid")endendtrapPart.Touched:Connect(onTouch)Jalankan kode dan periksa bahwa Anda dapat melihat hasilnya setiap kali seorang pemain menyentuh bagian.
Mengubah Kesehatan Pemain
Jika pernyataan itu benar, Anda dapat menggunakan variabel manusia yang sama untuk menetapkan kesehatan pemain menjadi 0.
Antara then dan end, ketik humanoid.Health = 0.
Skrip yang selesailocal trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- Mengevaluasi apakah ditemukan Humanoidif humanoid thenprint("Found a Humanoid")humanoid.Health = 0endendtrapPart.Touched:Connect(onTouch)Tes perangkap.
Sintesis
Bagian perangkap ini menggunakan kondisi untuk mendeteksi bagian Humanoid dan menetapkan kesehatan Humanoid ke nol. Skrip ini adalah peningkatan dari skrip perangkap sebelumnya, yang menghancurkan setiap objek sentuh apa pun, tidak peduli apa itu.
Ini masih memiliki beberapa kekurangan. Humanoid tidak hanya dalam pemain. Humanoid juga ditemukan dalam karakter non-playable. Skrip ini juga hanya bagus untuk menetapkan kesehatan pemain menjadi nol. Anda dapat bereksperimen dengan mengurangkan sedikit kesehatan, tetapi kemungkinan akan menurunkan kesehatan lebih cepat dari yang diinginkan. Pelaj