Perangkap yang mengurangi kesehatan pemain adalah elemen permainan yang menyenangkan yang dapat diprogram dengan pernyataan kondisional. Latih penggunaan kondisional dengan membuat bagian yang mengatur kesehatan pemain menjadi nol saat disentuh.
Siapkan perangkap
Perangkap bekerja dengan sangat baik dalam permainan dengan tantangan berbasis gerakan, seperti obbies. Langkah-langkah ini akan dimulai dengan menyiapkan variabel dan fungsi yang diperlukan. Lakukan sebanyak mungkin tanpa melihat kotak kode terlebih dahulu.
Buat dan beri nama bagian perangkap. Masukkan skrip ke dalam bagian tersebut.
Dalam skrip, tambahkan komentar deskriptif dan kemudian gunakan variabel untuk merujuk pada induk skrip.
-- Jika seorang pemain menyentuh bagian ini, atur kesehatan mereka menjadi 0local trapPart = script.ParentBuat fungsi bernama onTouch() dengan parameter bernama otherPart.
-- Jika seorang pemain menyentuh bagian ini, atur kesehatan mereka menjadi 0local trapPart = script.Parentlocal function onTouch(otherPart)endHubungkan fungsi tersebut ke acara Touched bagian perangkap untuk dijalankan setiap kali sesuatu menyentuh bagian tersebut.
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 dasar.
Untuk memastikan perangkap hanya akan menghancurkan pemain dan tidak menghancurkan item dekorasi acak, gunakan pernyataan if/then untuk memeriksa apakah apa pun yang ada di otherPart mengandung objek Humanoid.
Temukan objek tertentu
Fungsi FindFirstChildWhichIsA() dapat digunakan untuk mencari jenis objek tertentu, yang sangat berguna karena kita mencari objek tipe Humanoid. Pemain kemungkinan akan menyentuh perangkap hanya dengan sebagian dari avatar mereka, jadi variabel harus disiapkan untuk menemukan induk dari bagian yang menyentuh dan mencarinya untuk Humanoid.
Dalam onTouch(), ketik local character = otherPart.Parent.
local trapPart = script.Parentlocal function onTouch(otherPart)-- Menemukan objek induk dari otherPartlocal 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 print 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("Ditemukan Humanoid")endendtrapPart.Touched:Connect(onTouch)Jalankan kode dan periksa bahwa Anda dapat melihat output setiap kali seorang pemain menyentuh bagian tersebut.
Ubah kesehatan pemain
Jika pernyataan tersebut benar, Anda dapat menggunakan variabel humanoid yang sama untuk mengatur kesehatan pemain menjadi 0.
Antara then dan end, ketik humanoid.Health = 0.
Skrip yang diselesaikanlocal trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- Mengevaluasi apakah Humanoid ditemukanif humanoid thenprint("Ditemukan Humanoid")humanoid.Health = 0endendtrapPart.Touched:Connect(onTouch)Uji perangkap.
Ringkasan
Bagian perangkap ini menggunakan kondisional untuk mendeteksi bagian Humanoid dan mengatur kesehatan Humanoid menjadi nol. Skrip ini adalah perbaikan dari skrip perangkap sebelumnya, yang menghancurkan objek yang menyentuh tanpa mempedulikan apa itu.
Namun, masih ada beberapa kekurangan. Humanoid tidak hanya ada di pemain. Humanoid juga ditemukan di karakter non-playable. Skrip ini juga hanya baik untuk mengatur kesehatan pemain menjadi nol. Anda dapat bereksperimen dengan mengurangi sejumlah kecil kesehatan, tetapi kemungkinan besar akan mengurangi kesehatan lebih cepat dari yang diinginkan. Pelajaran selanjutnya memberikan perbaikan lebih lanjut untuk memberikan kontrol yang lebih besar atas seberapa banyak kesehatan yang dikurangi dari pemain.