W wprowadzeniu do skryptowania nauczyłeś się, jak wprowadzać zmiany w doświadczeniu w pętlu z czasem.Co jeśli chcesz wprowadzić zmiany w oparciu o zachowanie użytkownika? W tym samouczku dowiesz się, jak stworzyć śmiertelną podłogę lawy, która zabija użytkowników, gdy na nią nadepną.
Ustaw
Potrzebujesz miejsca w swoim świecie, aby umieścić śmiertelną lawę.Jeśli przestrzegałeś kursu Wprowadzenie do skryptowania, podłoga lawy pasowałaby dobrze do luki pokrytej przez znikające platformy.
Wprowadź Part i umieść go na miejscu w swoim świecie. Nazwij go LavaFloor .
Zmień rozmiar, aby pokryła podłogę przestrzeni zawierającej.
Uczyń podłogę bardziej przypominającą lawę, ustawiając właściwość Material na Neon i Color na pomarańczowy odcień.
Wprowadź skrypt do części LavaFloor i zmień nazwę na Kill.
Usuń domyślny kod i utwórz zmienną dla lawy.
local lava = script.Parent
Połącz z wydarzeniem
Użyj wydarzenia event , aby wykryć, kiedy użytkownik dotknie lawy.Każda część ma wydarzenie Touched, które uruchamia się, gdy coś ją dotknie.Możesz połączyć z tym wydarzeniem, aby uruchomić funkcję, gdy się wystrzeli.
Oświadcz nową funkcję o nazwie kill.
Dostęp do wydarzenia Touched na obiekcie lawy za pomocą kropki, tak jak właściwość: lava.Touched.
Wezwij funkcję Connect na wydarzeniu Touched, przekazując kill() jako funkcję, którą należy wezwać, gdy część zostanie dotknięta.
local lava = script.Parentlocal function kill()endlava.Touched:Connect(kill)
Każdy kod, który napiszesz w funkcji kill, będzie uruchamiany za każdym razem, gdy coś dotknie lawy.Zauważ, że kolumna jest używana dla funkcji , nie punkt - nie martw się, dlaczego w tym momencie, po prostu zapamiętaj różnicę.
Zdobądź dotykającą część
Aby zabić użytkownika, funkcja będzie potrzebować obiektu powiązanego z tym użytkownikiem.Wydarzenie części Touched może dostarczyć "inną część", która ją dotknęła — ale tylko wtedy, gdy poprosisz o to, uczyniając ją parametrem funkcji .
Parametry są definicjami tego, co funkcja oczekuje otrzymać, gdy jest wzywana.Parametr może być użyty w funkcji tak jak każda inna zmienna.Możesz przekazać informacje do parametru, włączając je w nawiasy, gdy funkcja jest wywoływana.Parametry są zdefiniowane w nawiasach na pierwszej linii funkcji.Utwórz parametr o nazwie otherPart dla funkcji kill.
local lava = script.Parent
local function kill(otherPart)
end
lava.Touched:Connect(kill)
Gdy funkcja kill zostanie wywołana, parametr otherPart reprezentuje część, która dotknęła podłogi lawy, a kod, który napiszesz w funkcji, będzie mógł go używać.
Postać i humanoid
Kiedy użytkownik dotknie lawy, Roblox może wykryć konkretną część ciała użytkownika, która ją dotknęła, taką jak lewa noga lub prawa stopa.Ta część jest w modelu postaci użytkownika , który zawiera wszystkie obiekty, które składają się na awatar użytkownika w doświadczeniu, w tym:
- Poszczególne części ciała użytkownika, takie jak głowa, kończyny i tułów.
- Wszelkie odzież i akcesoria noszone przez użytkownika.
- The Humanoid , specjalny obiekt, który zawiera wiele właściwości związanych z użytkownikiem, w tym zdrowie użytkownika.
- The HumanoidRootPart, który kontroluje ruch użytkownika.
Jak wcześniej zauważono, każda część ciała, która dotyka lawy, jest częścią modelu postaci, więc możesz uzyskać odniesienie do tej postaci za pomocą otherPart.Parent .Utwórz zmienną, aby przechować rodzica części, która dotknęła podłogi lawy.
local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
end
lava.Touched:Connect(kill)
Z modelu postaci musisz uzyskać obiekt Humanoid, aby zabić użytkownika.Możesz to zrobić za pomocą funkcji FindFirstChild()—po prostu przekaż jej nazwę rzeczy, której szukasz, a dostarczy pierwszego pasującego dziecka, które znajduje w tym obiekcie.Wezwij FindFirstChild() na zmienną partParent z "Humanoid" jako dzieckiem, aby znaleźć i przechować 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 za pomocą oświadczenia jeśli .Kod w oświadczeniu if uruchomi się tylko wtedy, gdy warunek określony w pierwszej linii jest prawdziwy.
Istnieje wiele operatorów operators, które można wykorzystać do budowania bardziej skomplikowanych warunków, które spotkasz w przyszłych kursach - na razie po prostu umieść zmienną humanoid tam.Stwórz jeśli oświadczenie z 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 można zmienić.Jeśli ustawisz jego właściwość Health na 0 , związany z nią postać umiera.W ciele oświadczenia if ustaw właściwość Health ludzkiego 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)
Z tym twoja podłoga lawowa jest kompletna! Przetestuj swoje doświadczenie i powinieneś znaleźć, że twoja śmiercionośna lawa pomyślnie zabija użytkowników w kontaktować się.Spróbuj użyć swojej lawy jako dodatkowego wyzwania w obby lub jako granicy dla świata.
kodkońcowy
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)