W Wprowadzenie do Skryptów dowiedziałeś się, jak wprowadzać zmiany w doświadczeniu w ciągu czasu. Co się stanie, jeśli chcesz wprowadzić zmiany w oparciu o zachowanie użytkownika? W tym samouczku nauczysz się, jak stworzyć śmiertelną podłogę z lawy, która zabija użytkowników, gdy na nią kroczą.
Ustawianie
Potrzebujesz miejsca w swoim świecie, aby postawić śmiertelną lawę. Jeśli zrealizowałeś kurs Wprowadzenie do Skryptów, podłoga z lawy idealnie nadaliby się do szczeliny pokrytej przez znikające platformy.
Umieść Part i przesuń go do miejsca w swoim świecie. Zadaj mu imię LavaFloor.
Zmień rozmiar, aby pokrył podłogę przestrzeni zamknięcia.
Uczyn znacznie więcej podłogi, Material z właściwości Neon do Color i 2> Color2> do pomarańczowego odcienia.
Umieść Skrypt w części LavaFloor i zmień go na Kill.
Usuń domyślny kod i stwórz zmienne dla lawy.
local lava = script.Parent
Łączenie się z wydarzeniem
Użyj wydarzenia , aby wykryć, gdy użytkownik dotyka lawy. Każda część ma wydarzenie Touched, które włącza się, gdy ktoś ją dotyka. Możesz łączyć się z tym wydarzeniem, aby uruchomić funkcję, gdy się włącza.
Oświadcz nową funkcję zwaną kill .
Z액cesem do wydarzenia Touched na obiekcie lava używając kropki, tak jak właściwość: lava.Touched .
Weź funkcję Connect na wydarzeniu Touched, przekazując funkcję kill.
local lava = script.Parentlocal function kill()endlava.Touched:Connect(kill)
Każdy kod, który napiszesz w funkcji kill, będzie teraz działać, gdy coś dotknie lawy. Uwaga, że kolon jest używany dla funkcji Connect, a nie dla kropki - nie martw się o to, dlaczego w tym momencie po prostu zapamiętaj różnicę.
Dostanie się dotykającą część
Aby zabić użytkownika, funkcja będzie potrzebował obiektu związanego z tym użytkownikiem. Event Touched części może zapewnić "drugą część", która ją dotknęła — ale tylko jeśli ją poprosisz, uczyniając ją parametrem funkcji.
Parametry są definicjami tego, co funkcja oczekuje, aby otrzymać, gdy jest nazywany. Parametr może być używany w funkcji tak samo, jak każda inna zmienne. Możesz przekazać informacje parametru poprzez włączenie go do nawiasów, gdy funkcja jest nazywana. Parametry są zdefiniowane w nawiasach na pierwszej linii funkcji. Stw
local lava = script.Parent
local function kill(otherPart)
end
lava.Touched:Connect(kill)
Gdy funkcja kill jest wywołana, parametr otherPart będzie reprezentować 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
Gdy użytkownik dotyka lawy, Roblox może wykryć szczególną część ciała użytkownika, która dotykałaby go, taką jak lewa noga lub prawy stóp. 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 torso.
- Każda odzież i akcesoria użytkownika.
- Class.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 z otherPart.Parent . Utwórz zmienne, aby przechować rodzic części, która dotyka podłogi lawy.
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() — po prostu przekaż imię rzeczy, którą szukasz, i zapewnia pierwsze dopas
local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
end
lava.Touched:Connect(kill)
Sprawdzanie kształtu ludzkiego
Możesz łatwo sprawdzić, czy znaleziono jeśli stwierdzenie. Kod w jeśli stwierdzeniu będzie działać tylko wtedy, gdy kondycja określona w pierwszej linijce jest prawdą.
Istnieje wiele różnych operatorów, które można użyć do budowania bardziej złożonych warunków, które będziesz spotykać w przyszłości - dla teraz po prostu umieść zmienne humanoid tam. Stwórz if oświadczenie z 2> humanoid2> 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)
Ustawienie zdrowia 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 znak Character umiera. W ciele if-statystyki ustawuj właściwość 2>Health2> znaku humanoid 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 z lawy jest ukończona! Testuj swoją doświadczenie i powinieneś znaleźć, że twoja zabójcza lawa skutecznie zabija użytkowników po kontaktować się. Spróbuj użyć swojej lawy jako dodatkowego wyzwania w obby lub jako granicy dla świata.
Kod koń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)