ถ้า/แล้วฝึกฝนกับกับดัก

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

กับดักที่ลดพลังชีวิตของผู้เล่นเป็นองค์ประกอบการเล่นเกมที่สนุกที่สามารถโค้ดด้วยคำสั่งเงื่อนไขได้ฝึกซ้อมโดยสร้างส่วนที่ตั้งค่าสุขภาพของผู้เล่นเป็นศูนย์เมื่อสัมผัสได้

ตั้งค่ากับดัก

กับดักทํางานได้ดีเป็นพิเศษในประสบการณ์ที่มีความท้าทายที่ขึ้นอยู่กับการเคลื่อนไหว เช่น obbiesขั้นตอนเหล่านี้จะเริ่มต้นด้วยการตั้งค่าตัวแปรและฟังก์ชันที่จำเป็นทำให้มากที่สุดเท่าที่จะทำได้โดยไม่ต้องดูกล่องโค้ดก่อน

  1. สร้างและตั้งชื่อส่วนของกับดัก ใส่สคริปต์ลงในส่วน

  2. ในสคริปต์ เพิ่มความคิดเห็นอธิบายแล้วใช้ตัวแปรเพื่ออ้างอิงถึงพ่อของสคริปต์


    -- หากผู้เล่นสัมผัสส่วนนี้ให้ตั้งสุขภาพของพวกเขาเป็น 0
    local trapPart = script.Parent
  3. สร้างฟังก์ชันชื่อ onTouch() ที่มีพารามิเตอร์ชื่อ otherPart


    -- หากผู้เล่นสัมผัสส่วนนี้ให้ตั้งสุขภาพของพวกเขาเป็น 0
    local trapPart = script.Parent
    local function onTouch(otherPart)
    end
  4. เชื่อมฟังก์ชันกับอีเวนต์ของส่วนดัก Touched ที่จะทำงานเมื่อมีบางอย่างสัมผัสส่วน


    local trapPart = script.Parent
    local function onTouch(otherPart)
    end
    trapPart.Touched:Connect(onTouch)

ตรวจสอบการสัมผัสของผู้เล่น

จำไว้ว่าพารามิเตอร์ otherPart บันทึกสิ่งที่สัมผัสส่วนดักซึ่งอาจเป็นส่วนหนึ่งของผู้เล่นหรือเพียงแค่แผ่นฐาน

เพื่อให้แน่ใจว่ากับดักจะทำลายผู้เล่นเท่านั้นและจะไม่ทำลายไอเทมตกแต่งแบบสุ่ม ให้ใช้คำสั่ง if/then เพื่อตรวจสอบว่าสิ่งที่อยู่ใน otherPart มีวัตถุมนุษย์หรือไม่

ค้นหาวัตถุเฉพาะ

ฟังก์ชัน FindFirstChildWhichIsA() สามารถใช้ค้นหาประเภทวัตถุเฉพาะซึ่งสะดวกเพราะเรากำลังมองหาวัตถุประเภท Humanoidผู้เล่นอาจสัมผัสกับกับดักด้วยส่วนหนึ่งของอวตารเท่านั้น ดังนั้นตัวแปรจะต้องถูกตั้งขึ้นเพื่อค้นหาผู้ปกครองของส่วนที่สัมผัสและค้นหามันสําหรับมนุษย์

  1. ใน onTouch() , ประเภท local character = otherPart.Parent .


    local trapPart = script.Parent
    local function onTouch(otherPart)
    -- ค้นหาวัตถุบิดาของส่วนอื่น
    local character = otherPart.Parent
    end
    trapPart.Touched:Connect(onTouch)
  2. ตรวจสอบเพื่อดูว่า character มี Humanoid โดยพิมพ์:

    local humanoid = character:FindFirstChildWhichIsA("Humanoid")


    local trapPart = script.Parent
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    end
    trapPart.Touched:Connect(onTouch)

ตรวจสอบด้วยคำสั่ง if

หากพบมนุษย์หุ่นยนต์ ให้ตั้งค่าสุขภาพของมนุษย์หุ่นยนต์เป็นศูนย์

  1. ใช้คำสั่ง if เพื่อตรวจสอบว่ามนุษย์ได้รับการจัดสรรเรียบร้อยแล้วไปยัง local humanoid หรือไม่


    local trapPart = script.Parent
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    -- ประเมินว่ามีมนุษย์หุ่นยนต์ถูกพบหรือไม่
    if humanoid then
    end
    end
    trapPart.Touched:Connect(onTouch)
  2. เพิ่มคําสั่งพิมพ์และตรวจสอบโค้ดที่ผ่านมา


    local trapPart = script.Parent
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    -- ประเมินว่ามีมนุษย์หุ่นยนต์ถูกพบหรือไม่
    if humanoid then
    print("Found a Humanoid")
    end
    end
    trapPart.Touched:Connect(onTouch)
  3. รัน รหัสและตรวจสอบว่าคุณสามารถเห็นผลออกได้ทุกครั้งที่ผู้เล่นสัมผัสชิ้นส่วน

เปลี่ยนสุขภาพของผู้เล่น

หากคำสั่งเป็นจริง คุณสามารถใช้ตัวแปร humanoid เดียวกันเพื่อตั้งค่าสุขภาพของผู้เล่นเป็น 0

  1. ระหว่าง then และ end ให้พิมพ์ humanoid.Health = 0

    สคริปต์สําเร็จ

    local trapPart = script.Parent
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    -- ประเมินว่ามีมนุษย์หุ่นยนต์ถูกพบหรือไม่
    if humanoid then
    print("Found a Humanoid")
    humanoid.Health = 0
    end
    end
    trapPart.Touched:Connect(onTouch)
  2. ทดสอบกับดัก

สรุป

ส่วนกับดักนี้ใช้เงื่อนไขในการตรวจจับชิ้นส่วนมนุษย์และตั้งค่าสุขภาพของมนุษย์เป็นศูนย์สคริปต์นี้เป็นการปรับปรุงบนสคริปต์กับดักก่อนหน้านี้ซึ่งทำลายวัตถุที่สัมผัสได้ไม่ว่าจะเป็นอะไร

แต่มันยังคงมีข้อบกพร่องไม่กี่อย่างมนุษย์ไม่ใช่แค่อยู่ในผู้เล่นเท่านั้นมนุษย์ยังพบในตัวละครที่ไม่สามารถเล่นได้สคริปต์ยังดีเพียงในการตั้งค่าสุขภาพของผู้เล่นเป็นศูนย์คุณสามารถทดลองกับการลบล้างปริมาณสุขภาพเล็กน้อย แต่มีแนวโน้มว่าจะลบสุขภาพเร็วกว่าที่ต้องการบทเรียนต่อมาให้การปรับปรุงเพิ่มเติมเพื่อให้ควบคุมได้มากขึ้นเกี่ยวกับจํานวนสุขภาพที่ถูกหักจากผู้เล่น