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