Perangkap yang mengurangi kesehatan pemain adalah elemen permainan yang menyenangkan yang dapat dikodekan dengan pernyataan konditional.Berlatih menggunakan kondisional dengan membuat bagian yang menetapkan kesehatan pemain menjadi nol saat disentuh.
Siapkan perangkap
Perangkap bekerja secara luar biasa baik dalam pengalaman dengan tantangan berbasis gerakan, seperti obbies.Langkah-langkah ini akan dimulai dengan mengatur variabel dan fungsi yang diperlukan.Lakukan sebanyak mungkin tanpa melihat kotak kode pertama.
Buat dan beri nama bagian perangkap. Masukkan skrip ke bagian.
Dalam skrip, tambahkan komentar deskriptif dan kemudian gunakan variabel untuk merujuk pada orang tua skrip.
-- Jika pemain menyentuh bagian ini, atur kesehatan mereka menjadi 0local trapPart = script.ParentBuat fungsi bernama onTouch() dengan parameter bernama otherPart .
-- Jika pemain menyentuh bagian ini, atur kesehatan mereka menjadi 0local trapPart = script.Parentlocal function onTouch(otherPart)endHubungkan fungsi ke bagian perangkap Touched acara untuk dijalankan setiap kali sesuatu menyentuh bagian.
local trapPart = script.Parentlocal function onTouch(otherPart)endtrapPart.Touched:Connect(onTouch)
Periksa sentuhan pemain
Ingat, parameter otherPart mencatat apa pun yang menyentuh bagian perangkap, yang mungkin merupakan bagian dari pemain atau hanya piring dasar.
Untuk memastikan perangkap hanya akan menghancurkan pemain dan tidak akan menghancurkan item dekorasi acak, gunakan pernyataan if/then untuk memeriksa apakah apa pun yang ada di otherPart berisi objek Humanoid.
Temukan objek spesifik
Fungsi FindFirstChildWhichIsA() dapat digunakan untuk mencari jenis objek tertentu, yang praktis karena kita mencari objek jenis Humanoid.Pemain kemungkinan akan menyentuh perangkap hanya dengan bagian dari avatar mereka, jadi variabel harus dibuat untuk menemukan orang tua dari bagian yang disentuh dan mencarinya untuk Humanoid.
Di onTouch() , ketik local character = otherPart.Parent .
local trapPart = script.Parentlocal function onTouch(otherPart)-- Menemukan objek orangtua bagian lainlocal character = otherPart.ParentendtrapPart.Touched:Connect(onTouch)Periksa untuk melihat 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)
Periksa dengan pernyataan if
Jika Humanoid ditemukan, maka atur Kesehatan Humanoid menjadi nol.
Gunakan pernyataan if untuk memeriksa apakah Humanoid berhasil ditugaskan ke local humanoid .
local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- Mengevaluasi apakah Humanoid ditemukanif 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 Humanoid ditemukanif humanoid thenprint("Found a Humanoid")endendtrapPart.Touched:Connect(onTouch)Jalankan kode dan periksa apakah Anda dapat melihat output setiap kali pemain menyentuh bagian.
Ubah kesehatan pemain
Jika pernyataan itu benar, Anda dapat menggunakan variabel humanoid yang sama untuk mengatur kesehatan pemain menjadi 0.
Antara then dan end, ketik humanoid.Health = 0 .
Skrip selesailocal trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- Mengevaluasi apakah Humanoid ditemukanif humanoid thenprint("Found a Humanoid")humanoid.Health = 0endendtrapPart.Touched:Connect(onTouch)Uji perangkap.
Singkatan
Bagian perangkap ini menggunakan kondisi untuk mendeteksi bagian Humanoid dan mengatur kesehatan Humanoid menjadi nol.Skrip ini adalah peningkatan pada skrip perangkap sebelumnya, yang menghancurkan objek sentuh apa pun tidak peduli apa itu.
Namun, masih memiliki beberapa kekurangan.Humanoid tidak hanya ada di pemain.Humanoid juga ditemukan di karakter yang tidak dapat dimainkan.Skrip juga hanya bagus dalam menetapkan kesehatan pemain menjadi nol.Anda dapat bereksperimen dengan mengurangi sedikit kesehatan, tetapi kemungkinan akan mengurangi kesehatan lebih cepat dari yang diinginkan.Pelajaran selanjutnya memberikan peningkatan lebih lanjut untuk memberikan kontrol lebih besar atas berapa banyak kesehatan yang dikurangi dari pemain.