Śmiertelna lawa

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

W Wprowadzeniu do skryptów nauczyłeś się, jak wprowadzać zmiany w grze w pętli w czasie. Co jeśli chcesz wprowadzać zmiany na podstawie zachowania użytkownika? W tym samouczku nauczysz się, jak stworzyć śmiertelną podłogę z lawą, która zabija użytkowników, gdy na nią wejdą.

Ustawienia

Potrzebujesz miejsca w swoim świecie, aby umieścić śmiertelną lawę. Jeśli śledziłeś kurs Wprowadzenie do skryptów, podłoga z lawą idealnie wpasuje się w lukę pokrytą znikającymi platformami.

  1. Wstaw Part i przesuń go na miejsce w swoim świecie. Nazwij go LavaFloor.

  2. Zmień jego rozmiar, aby pokrywał podłogę otaczającej przestrzeni.

  3. Spraw, aby podłoga wyglądała bardziej jak lawa, ustawiając właściwość Material na Neon i Color na odcień pomarańczowy.

  4. Wstaw Skrypt do części LavaFloor i zmień jego nazwę na Kill.

  5. Usuń domyślny kod i stwórz zmienną dla lawy.

    local lava = script.Parent

Połącz z wydarzeniem

Użyj wydarzenia, aby wykryć, kiedy użytkownik dotyka lawy. Każda część ma zdarzenie Touched, które uruchamia się, gdy coś ją dotknie. Możesz połączyć się z tym wydarzeniem, aby uruchomić funkcję, gdy zostanie wywołane.

  1. Zdefiniuj nową funkcję o nazwie kill.

  2. Uzyskaj dostęp do zdarzenia Touched na obiekcie lawy, używając kropki, tak jak w przypadku właściwości: lava.Touched.

  3. Wywołaj funkcję Connect na zdarzeniu Touched, przekazując kill() jako funkcję do wywołania, gdy część jest dotykana.

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

Każdy kod, który napiszesz w funkcji kill, będzie teraz uruchamiany, gdy coś dotknie lawy. Zauważ, że do funkcji Connect używa się dwukropka, a nie kropki - nie martw się na razie, dlaczego, po prostu zapamiętaj różnicę.

Uzyskaj dotykającą część

Aby zabić użytkownika, funkcja będzie potrzebować obiektu powiązanego z tym użytkownikiem. Zdarzenie Touched części może dostarczyć "drugą część", która ją dotknęła — ale tylko jeśli poprosisz o to, czyniąc to parametrem funkcji.

Parametry to definicje tego, co funkcja oczekuje otrzymać, gdy jest wywoływana. Parametr może być używany w funkcji tak samo jak każda inna zmienna. Możesz przekazać informacje do parametru, umieszczając je w nawiasach, gdy funkcja jest wywoływana. Zdefiniuj parametr o nazwie otherPart dla funkcji kill.

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

Gdy funkcja kill jest wywoływana, parametr otherPart będzie reprezentować część, która dotknęła podłogi z lawą, a kod, który napiszesz w funkcji, będzie mógł go używać.

Postać i humanoid

Gdy użytkownik dotyka lawy, Roblox może wykryć konkretną część ciała użytkownika, która ją dotknęła, na przykład lewą nogę lub prawą stopę. Ta część znajduje się w modelu Character użytkownika, który zawiera wszystkie obiekty, które tworzą awatara użytkownika w grze, w tym:

  • Poszczególne części ciała użytkownika, takie jak głowa, kończyny i tułów.
  • Jakiekolwiek ubrania i akcesoria noszone przez użytkownika.
  • Humanoid, specjalny obiekt, który zawiera wiele właściwości związanych z użytkownikiem, w tym zdrowie użytkownika.
  • HumanoidRootPart, który kontroluje ruch użytkownika.

Jak wcześniej wspomniano, każda część ciała, która dotyka lawy, jest częścią modelu Character, więc możesz uzyskać odniesienie do tej postaci za pomocą otherPart.Parent. Stwórz zmienną, aby przechować rodzica części, która dotknęła podłogi z lawą.

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

Z modelu postaci będziesz musiał uzyskać obiekt Humanoid, aby zabić użytkownika. Możesz to zrobić za pomocą funkcji FindFirstChild() — wystarczy przekazać jej nazwę rzeczy, której szukasz, a ona zwróci pierwsze pasujące dziecko, które znajdzie w tym obiekcie. Wywołaj FindFirstChild() na zmiennej partParent z "Humanoid" jako dzieckiem do znalezienia i przechowaj wynik w nowej zmiennej o nazwie humanoid.

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

Sprawdź humanoida

Możesz łatwo sprawdzić, czy Humanoid został znaleziony, używając instrukcji if. Kod w instrukcji if będzie działał tylko wtedy, gdy warunek zdefiniowany w pierwszej linii jest prawdziwy.

Istnieje wiele operatorów, które można wykorzystać do budowania bardziej złożonych warunków, z którymi spotkasz się w przyszłych kursach - na razie po prostu umieść zmienną humanoid tam. Stwórz instrukcję if z humanoid jako warunkiem.

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)

Ustaw zdrowie postaci

Teraz, gdy Humanoid został sprawdzony, jego właściwości mogą być zmieniane. Jeśli ustawisz jego właściwość Health na 0, powiązana postać umiera. W ciele instrukcji if ustaw właściwość Health humanoida na 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)

I to wszystko, twoja podłoga z lawą jest gotowa! Przetestuj swoją grę, a powinieneś stwierdzić, że twoja śmiertelna lawa skutecznie zabija użytkowników przy kontakcie. Spróbuj użyć swojej lawy jako dodatkowego wyzwania w obby lub jako granicy dla świata.

Ostateczny kod

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. Nazwa Roblox, logo Roblox oraz hasło „Powering Imagination” należą do naszych zarejestrowanych i niezarejestrowanych znaków towarowych na terenie Stanów Zjednoczonych oraz w innych krajach.