ใน การแนะนำการเขียนสคริปต์ คุณได้เรียนรู้วิธีการทำการเปลี่ยนแปลงในประสบการณ์ในลูปเวลาถ้าคุณต้องการทำการเปลี่ยนแปลงตามพฤติกรรมของผู้ใช้ ในบทแนะนำนี้ คุณจะเรียนรู้วิธีการสร้างพื้นลาวาที่มีพิษซึ่งฆ่าผู้ใช้เมื่อพวกเขาเหยียบมัน
ตั้งค่า
คุณต้องการสถานที่ในโลกของคุณเพื่อวางลาวาที่มีพิษหากคุณทำตามหลักสูตร การเขียนสคริปต์ คุณจะสามารถใส่พื้นลาวาลงในช่องว่างที่ครอบคลุมโดยแพลตฟอร์มที่หายไปได้อย่างสวยงาม
ใส่ Part และย้ายไปยังสถานที่ในโลกของคุณ ตั้งชื่อว่า LavaFloor
ปรับขนาดให้เหมาะสมเพื่อให้ครอบคลุมพื้นของพื้นที่ปิดล้อม
ทำให้พื้นดูเหมือนลาวาโดยการตั้งค่าคุณสมบัติ Material เป็น Neon และ Color เป็นสีส้ม
ใส่ สคริปต์ ในส่วน LavaFloor และเปลี่ยนชื่อเป็น Kill
ลบโค้ดเริ่มต้นและสร้างตัวแปรสำหรับลาวา
local lava = script.Parent
เชื่อมต่อกับอีเวนต์
ใช้อีเวนต์ เหตุการณ์ เพื่อตรวจสอบเมื่อผู้ใช้สัมผัสกับลาวาทุกส่วนมีอีเวนต์ Touched ที่จะเปิดเมื่อมีบางอย่างสัมผัสมันคุณสามารถ เชื่อมต่อ กับอีเวนต์นี้เพื่อรันฟังก์ชันเมื่อมันเปิดไฟ
ประกาศฟังก์ชันใหม่ที่เรียกว่า kill
เข้าถึงอีเวนต์ Touched บนวัตถุลาวาโดยใช้จุลภาคเหมือนคุณสมบัติ: lava.Touched
เรียกฟังก์ชัน Connect ในอีเวนต์ Touched โดยส่ง kill() เป็นฟังก์ชันที่จะเรียกเมื่อส่วนถูกแตะ
local lava = script.Parentlocal function kill()endlava.Touched:Connect(kill)
โค้ดใดๆ ที่คุณเขียนในฟังก์ชัน kill จะทำงานทุกครั้งที่มีบางอย่างสัมผัสกับลาวาโปรดทราบว่าคอลัมน์ ถูกใช้สำหรับฟังก์ชัน ไม่ใช่จุลภาค - ไม่ต้องกังวลเกี่ยวกับเหตุผลที่เกิดขึ้นในจุดนี้ เพียงจำแตกต่างไว้
รับส่วนที่สัมผัสได้
เพื่อฆ่าผู้ใช้ ฟังก์ชันจะต้องการวัตถุที่เกี่ยวข้องกับผู้ใช้นั้นอีเวนต์ของชิ้นส่วน Touched สามารถให้ "ส่วนอื่น" ที่สัมผัสมันได้ — แต่เฉพาะถ้าคุณร้องขอโดยทำให้เป็น พารามิเตอร์ ของฟังก์ชัน
พารามิเตอร์คือการนิยามของสิ่งที่ฟังก์ชันคาดว่าจะได้รับเมื่อเรียกใช้พารามิเตอร์สามารถใช้ในฟังก์ชันเช่นเดียวกับตัวแปรอื่น ๆคุณสามารถส่งข้อมูลไปยังพารามิเตอร์โดยรวมไว้ในเครื่องหมายวงเล็บเมื่อเรียกฟังก์ชันพารามิเตอร์จะถูกกำหนดในเครื่องหมายวงเล็บในบรรทัดแรกของฟังก์ชันสร้างพารามิเตอร์ ที่เรียกว่า สำหรับฟังก์ชัน
local lava = script.Parent
local function kill(otherPart)
end
lava.Touched:Connect(kill)
เมื่อฟังก์ชัน kill ถูกเรียกใช้ พารามิเตอร์ otherPart จะแทนที่ส่วนที่สัมผัสพื้นลาวา และโค้ดที่คุณจะเขียนในฟังก์ชันจะสามารถใช้ได้
ตัวละครและมนุษย์นอยด์
เมื่อผู้ใช้สัมผัสลาวา Roblox สามารถตรวจจับส่วนของร่างกายที่เฉพาะเจาะจงของผู้ใช้ที่สัมผัสมันได้ เช่น ขาซ้ายหรือเท้าขวาส่วนนี้อยู่ในโมเดลตัวละครของผู้ใช้ ซึ่งมีวัตถุทั้งหมดที่ทำให้อวตารของผู้ใช้ในประสบการณ์ รวมถึง:
- ส่วนตัวของผู้ใช้เช่นหัว แขน และลําตัว
- เสื้อผ้าและอุปกรณ์เสริมที่ผู้ใช้สวมใส่
- The Humanoid , วัตถุพิเศษที่มีคุณสมบัติมากมายที่เกี่ยวข้องกับผู้ใช้, รวมถึงสุขภาพของผู้ใช้
- ส่วนรากมนุษย์ที่ควบคุมการเคลื่อนไหวของผู้ใช้
ตามที่ได้ระบุไว้ก่อนหน้านี้ ส่วนใดของร่างกายที่สัมผัสกับลาวาเป็นส่วนหนึ่งของโมเดลตัวละครดังนั้นคุณสามารถรับอ้างอิงถึงตัวละครนั้นได้ด้วย otherPart.Parentสร้างตัวแปรเพื่อเก็บผู้ปกครองของชิ้นส่วนที่สัมผัสพื้นลาวา
local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
end
lava.Touched:Connect(kill)
จากโมเดลตัวละครคุณจะต้องรับวัตถุ Humanoid เพื่อฆ่าผู้ใช้คุณสามารถทำเช่นนี้ด้วยฟังก์ชัน FindFirstChild()—เพียงส่งชื่อของสิ่งที่คุณกำลังมองหาและจะให้ลูกที่ตรงกันครั้งแรกที่มันพบในวัตถุนั้นโทร FindFirstChild() ที่แปร partParent ด้วย "Humanoid" เป็นลูกที่จะค้นหาและเก็บผลลัพธ์ในแปรใหม่ที่เรียกว่า humanoid
local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
end
lava.Touched:Connect(kill)
ตรวจสอบหุ่นยนต์
คุณสามารถตรวจสอบได้ง่ายว่า Humanoid ถูกพบโดยใช้คำสั่ง ถ้า โค้ดในข้อความ if จะทำงานเฉพาะถ้าเงื่อนไขที่กำหนดไว้ในบรรทัดแรกเป็นจริง
มีตัวประกอบหลากหลาย ที่สามารถใช้สร้างเงื่อนไขที่ซับซ้อนมากขึ้นซึ่งคุณจะพบในหลักสูตรในอนาคต - สําหรับตอนนี้เพียงใส่ตัวแปร ที่นั่นสร้าง ถ้า คำสั่งด้วย humanoid เป็นเงื่อนไข
local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
if humanoid then
end
end
lava.Touched:Connect(kill)
ตั้งค่าสุขภาพของตัวละคร
ตอนนี้ที่ Humanoid ถูกตรวจสอบแล้ว คุณสมบัติของมันสามารถเปลี่ยนแปลงได้หากคุณตั้งค่าคุณสมบัติ Health ของมันเป็น 0 ตัวละครที่เกี่ยวข้องจะตายในร่างของคำสั่ง if ตั้งค่าคุณสมบัติ Health ของ humanoid เป็น 0
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
if humanoid then
humanoid.Health = 0
end
end
lava.Touched:Connect(kill)
ด้วยเหตุนี้พื้นลาวาของคุณจะสมบูรณ์! ทดสอบประสบการณ์ของคุณและคุณควรพบว่าลาวาที่ร้ายแรงของคุณสามารถฆ่าผู้ใช้ได้สำเร็จเมื่อสัมผัสลองใช้ลาวาเป็นความท้าทายเพิ่มเติมใน obby หรือเป็นขอบเขตสำหรับโลก
รหัสสุดท้าย
local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
if humanoid then
humanoid.Health = 0
end
end
lava.Touched:Connect(kill)