กับดักที่ลดพลังชีวิตของผู้เล่นเป็นองค์ประกอบการเล่นเกมที่สนุกซึ่งสามารถเขียนโค้ดด้วยคำสั่งเงื่อนไข ฝึกใช้คำสั่งเงื่อนไขโดยการสร้างส่วนที่ตั้งค่าพลังชีวิตของผู้เล่นเป็นศูนย์เมื่อถูกสัมผัส
ตั้งค่ากับดัก
กับดักทำงานได้ดีมากในเกมที่มีความท้าทายที่อิงจากการเคลื่อนไหว เช่น obbies ขั้นตอนเหล่านี้จะเริ่มต้นด้วยการตั้งค่าตัวแปรและฟังก์ชันที่จำเป็น ทำตามที่คุณสามารถทำได้โดยไม่ต้องดูที่กล่องโค้ดก่อน
สร้างและตั้งชื่อส่วนของกับดัก แทรกสคริปต์ลงในส่วน
ในสคริปต์ ให้เพิ่มความคิดเห็นที่อธิบายและจากนั้นใช้ตัวแปรเพื่ออ้างอิงถึงพ่อแม่ของสคริปต์
-- หากผู้เล่นสัมผัสส่วนนี้ ให้ตั้งค่าพลังชีวิตของพวกเขาเป็น 0local trapPart = script.Parentสร้างฟังก์ชันที่ชื่อว่า onTouch() โดยมีพารามิเตอร์ชื่อ otherPart
-- หากผู้เล่นสัมผัสส่วนนี้ ให้ตั้งค่าพลังชีวิตของพวกเขาเป็น 0local trapPart = script.Parentlocal function onTouch(otherPart)endเชื่อมต่อฟังก์ชันกับเหตุการณ์ Touched ของส่วนกับดักเพื่อให้ทำงานเมื่อมีบางสิ่งสัมผัสส่วน
local trapPart = script.Parentlocal function onTouch(otherPart)endtrapPart.Touched:Connect(onTouch)
ตรวจสอบการสัมผัสของผู้เล่น
จำไว้ว่า พารามิเตอร์ otherPart จะบันทึกสิ่งที่สัมผัสกับส่วนกับดัก ซึ่งอาจเป็นส่วนหนึ่งของผู้เล่นหรือเพียงแค่ฐาน
เพื่อให้แน่ใจว่ากับดักจะทำลายผู้เล่นเท่านั้นและจะไม่ทำลายของตกแต่งแบบสุ่ม ให้ใช้คำสั่ง if/then เพื่อตรวจสอบว่าสิ่งที่อยู่ใน otherPart มีวัตถุ Humanoid หรือไม่
ค้นหาวัตถุเฉพาะ
ฟังก์ชัน FindFirstChildWhichIsA() สามารถใช้เพื่อค้นหาประเภทวัตถุเฉพาะ ซึ่งมีประโยชน์เพราะเรากำลังมองหาวัตถุประเภท Humanoid ผู้เล่นจะสัมผัสกับกับดักด้วยเพียงส่วนหนึ่งของอวตารของพวกเขา ดังนั้นจึงต้องตั้งค่าตัวแปรเพื่อค้นหาพ่อแม่ของส่วนที่สัมผัสและค้นหามันสำหรับ Humanoid
ใน onTouch() ให้พิมพ์ local character = otherPart.Parent
local trapPart = script.Parentlocal function onTouch(otherPart)-- ค้นหาวัตถุพ่อแม่ของ otherPartlocal character = otherPart.ParentendtrapPart.Touched:Connect(onTouch)ตรวจสอบว่า character มี Humanoid โดยพิมพ์:
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")endtrapPart.Touched:Connect(onTouch)
ตรวจสอบด้วยคำสั่ง if
หากพบ Humanoid ให้ตั้งค่าพลังชีวิตของ Humanoid เป็นศูนย์
ใช้คำสั่ง if เพื่อตรวจสอบว่ามี Humanoid ถูกกำหนดให้กับ local humanoid หรือไม่
local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- ประเมินว่าพบ Humanoid หรือไม่if humanoid thenendendtrapPart.Touched:Connect(onTouch)เพิ่มคำสั่ง print และตรวจสอบโค้ดจนถึงตอนนี้
local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- ประเมินว่าพบ Humanoid หรือไม่if humanoid thenprint("พบ Humanoid")endendtrapPart.Touched:Connect(onTouch)รัน โค้ดและตรวจสอบว่าคุณสามารถเห็นผลลัพธ์เมื่อใดก็ตามที่ผู้เล่นสัมผัสส่วน
เปลี่ยนพลังชีวิตของผู้เล่น
หากคำสั่งเป็นจริง คุณสามารถใช้ตัวแปร humanoid เดียวกันเพื่อตั้งค่าพลังชีวิตของผู้เล่นเป็น 0
ระหว่าง then และ end ให้พิมพ์ humanoid.Health = 0
สคริปต์ที่เสร็จสมบูรณ์local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- ประเมินว่าพบ Humanoid หรือไม่if humanoid thenprint("พบ Humanoid")humanoid.Health = 0endendtrapPart.Touched:Connect(onTouch)ทดสอบกับดัก
สรุป
ส่วนกับดักนี้ใช้คำสั่งเงื่อนไขเพื่อตรวจจับส่วน Humanoid และตั้งค่าพลังชีวิตของ Humanoid เป็นศูนย์ สคริปต์นี้เป็นการปรับปรุงจากสคริปต์กับดักก่อนหน้านี้ซึ่งทำลายวัตถุที่สัมผัสไม่ว่าจะเป็นอะไร
อย่างไรก็ตาม มันยังมีข้อบกพร่องอยู่บ้าง Humanoid ไม่ได้มีอยู่เฉพาะในผู้เล่น Humanoid ยังพบในตัวละครที่ไม่สามารถเล่นได้ สคริปต์นี้ยังดีเพียงแค่ตั้งค่าพลังชีวิตของผู้เล่นเป็นศูนย์ คุณสามารถทดลองกับการลดพลังชีวิตเล็กน้อย แต่มีแนวโน้มว่าจะลดพลังชีวิตเร็วกว่าที่ต้องการ บทเรียนในภายหลังจะมีการปรับปรุงเพิ่มเติมเพื่อให้ควบคุมได้มากขึ้นว่าพลังชีวิตจะถูกลดลงมากน้อยเพียงใด