กับดักที่ลดพลังชีวิตของผู้เล่นเป็นองค์ประกอบการเล่นเกมที่สนุกซึ่งสามารถเขียนด้วยคำสั่งเงื่อนไข ฝึกใช้คำสั่งเงื่อนไขโดยการสร้างชิ้่นส่วนที่ตั้งค่าพลังชีวิตของผู้เล่นเป็นศูนย์เมื่อสัมผัส.
ตั้งค่ากับดัก
กับดักทำงานได้ดีมากในประสบการณ์ที่มีความท้าทายที่อิงตามการเคลื่อนไหว เช่น 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)เพิ่มคำสั่งพิมพ์และตรวจสอบโค้ดจนถึงตอนนี้.
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 เป็นศูนย์ สคริปต์นี้เป็นการปรับปรุงจากสคริปต์กับดักก่อนหน้านี้ ซึ่งทำลายวัตถุที่สัมผัสไม่ว่าจะเป็นอะไร.
อย่างไรก็ตาม มันยังมีข้อบกพร่องเล็กน้อย Humanoids ไม่ได้มีอยู่เฉพาะในผู้เล่น Humanoids ยังพบในตัวละครที่ไม่สามารถเล่นได้ สคริปต์นี้ยังดีแค่การตั้งค่าพลังชีวิตผู้เล่นเป็นศูนย์ คุณสามารถทดลองกับการลบพลังชีวิตเล็กน้อย แต่มีแนวโน้มว่าจะทำให้พลังชีวิตลดลงเร็วกว่าที่ต้องการ บทเรียนในภายหลังจะให้การปรับปรุงเพิ่มเติมเพื่อให้สามารถควบคุมจำนวนพลังชีวิตที่ลดลงจากผู้เล่นได้มากขึ้น.