立即開始
中級教學

致命的熔岩

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

腳本入門中,您學會了如何在一段時間內循環地對體驗進行更改。如果您想根據用戶行為進行更改呢?在本教程中,您將學習如何製作一個致命的熔岩地板,當用戶踩上去時會殺死他們。

設置

您需要在您的世界中放置一個致命的熔岩。如果您按照腳本入門課程進行,熔岩地板將適合放在隱藏平台覆蓋的空隙中。

  1. 插入一個Part並將其移動到您的世界中的正確位置。將其命名為LavaFloor

  2. 調整其大小,使其覆蓋封閉空間的地板。

  3. 通過將Material屬性設置為NeonColor設置為橙色陰影,使地板看起來更像熔岩。

  4. LavaFloor部件中插入一個Script,並將其重命名為Kill

  5. 刪除默認代碼,並創建一個指向熔岩的變量。


    local lava = script.Parent

連接到事件

使用事件來檢測用戶何時觸及熔岩。每個部件都有一個Touched事件,當某物觸及它時會觸發。您可以連接到此事件以在它觸發時運行一個函數。

  1. 聲明一個名為kill的新函數。

  2. 通過點擊訪問熔岩對象上的Touched事件,就像屬性一樣:lava.Touched

  3. Touched事件上調用Connect函數,傳遞kill()作為在部件被觸及時調用的函數。


    local lava = script.Parent
    local function kill()
    end
    lava.Touched:Connect(kill)

您在kill函數中寫的任何代碼將在每次有東西觸及熔岩時運行。請注意,對於Connect函數使用的是冒號,而不是點 - 此時不用擔心為什麼,只需記住這個區別。

獲取觸及的部件

為了殺死用戶,該函數需要一個與該用戶相關的對象。部件的Touched事件可以提供觸摸它的“另一個部件”——但前提是您要求它,通過將其設置為函數的參數

參數是函數期望在調用時接收的定義。參數可以像其他變量一樣在函數中使用。您可以在調用函數時,通過在括號中包含它來向參數傳遞信息。參數在函數的第一行括號中定義。為kill函數創建一個名為otherPart參數


local lava = script.Parent
local function kill(otherPart)
end
lava.Touched:Connect(kill)

當調用kill函數時,otherPart參數將代表觸及熔岩地板的部件,您在函數中編寫的代碼將能夠使用它。

角色和人形

當用戶觸及熔岩時,Roblox可以檢測到觸及它的用戶的特定身體部位,例如左腿或右腳。這部分位於用戶的角色模型中,該模型包含在體驗中構成用戶虛擬形象的所有對象,包括:

  • 用戶的各個身體部位,例如頭部、四肢和軀幹。
  • 用戶所穿的任何衣物和配件。
  • Humanoid,這是一個特殊對象,包含許多與用戶相關的屬性,包括用戶的生命值。
  • 控制用戶運動的HumanoidRootPart。

如前所述,任何觸及熔岩的身體部位都是角色模型的一部分,因此您可以通過otherPart.Parent獲取對該角色的引用。創建一個變量來存儲觸及熔岩地板的部件的父級。


local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
end
lava.Touched:Connect(kill)

從角色模型中,您需要獲取Humanoid對象才能殺死用戶。您可以使用FindFirstChild()函數來做到這一點——只需將要查找的項目的名稱傳遞給它,並將在該對象中找到的第一個匹配子項提供出來。對partParent變量調用FindFirstChild(),以"Humanoid"作為要查找的子項,並將結果存儲在名為humanoid的新變量中。


local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
end
lava.Touched:Connect(kill)

檢查人形

您可以使用if語句輕鬆檢查是否找到了Humanoid。如果only if語句中的條件為真,則該語句中的代碼才會運行。

有各種運算符可用於構建更複雜的條件,您將在未來的課程中遇到——目前,僅將humanoid變量放在那裡。創建一條以humanoid作為條件的if語句。


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語句的主體中,將humanoid的Health屬性設置為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)
©2026 Roblox Corporation、Roblox、Roblox 標誌及 Powering Imagination 是我們在美國及其他國家地區的部分註冊與未註冊商標。