Pułapki, które zmniejszają zdrowie graczy, są zabawnym elementem rozgrywki, który można zakodować za pomocą instrukcji warunkowych. Ćwicz używanie warunków, tworząc część, która ustawia zdrowie gracza na zero po dotknięciu.
Ustaw pułapkę
Pułapki doskonale sprawdzają się w grach z wyzwaniami opartymi na ruchu, takimi jak obby. Te kroki rozpoczną się od ustawienia niezbędnych zmiennych i funkcji. Zrób tyle, ile możesz, nie patrząc najpierw na bloki kodu.
Stwórz i nazwij część pułapki. Wstaw skrypt do części.
W skrypcie dodaj opisowy komentarz, a następnie użyj zmiennej, aby odwołać się do rodzica skryptu.
-- Jeśli gracz dotknie tej części, ustaw jego zdrowie na 0local trapPart = script.ParentStwórz funkcję o nazwie onTouch() z parametrem o nazwie otherPart.
-- Jeśli gracz dotknie tej części, ustaw jego zdrowie na 0local trapPart = script.Parentlocal function onTouch(otherPart)endPołącz funkcję z wydarzeniem Touched części pułapki, aby uruchamiała się za każdym razem, gdy coś dotknie tej części.
local trapPart = script.Parentlocal function onTouch(otherPart)endtrapPart.Touched:Connect(onTouch)
Sprawdź dotknięcie przez gracza
Pamiętaj, że parametr otherPart rejestruje wszystko, co dotyka części pułapki, co może być częścią gracza lub po prostu podstawą.
Aby upewnić się, że pułapka zniszczy tylko graczy i nie zniszczy przypadkowych elementów dekoracyjnych, użyj instrukcji if/then, aby sprawdzić, czy cokolwiek w otherPart zawiera obiekt Humanoid.
Znajdź konkretny obiekt
Funkcja FindFirstChildWhichIsA() może być używana do wyszukiwania konkretnych typów obiektów, co jest przydatne, ponieważ szukamy obiektu typu Humanoid. Gracze prawdopodobnie dotkną pułapki tylko częścią swojego awatara, więc należy ustawić zmienną, aby znaleźć rodzica dotykającej części i przeszukać go w poszukiwaniu Humanoida.
W onTouch(), wpisz local character = otherPart.Parent.
local trapPart = script.Parentlocal function onTouch(otherPart)-- Znajduje obiekt rodzica otherPartlocal character = otherPart.ParentendtrapPart.Touched:Connect(onTouch)Sprawdź, czy character ma Humanoid, wpisując:
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")endtrapPart.Touched:Connect(onTouch)
Sprawdź za pomocą instrukcji if
Jeśli Humanoid zostanie znaleziony, ustaw zdrowie Humanoida na zero.
Użyj instrukcji if, aby sprawdzić, czy Humanoid został pomyślnie przypisany do local humanoid.
local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- Ocena, czy Humanoid został znalezionyif humanoid thenendendtrapPart.Touched:Connect(onTouch)Dodaj instrukcję print i sprawdź kod do tej pory.
local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- Ocena, czy Humanoid został znalezionyif humanoid thenprint("Znaleziono Humanoida")endendtrapPart.Touched:Connect(onTouch)Uruchom kod i sprawdź, czy możesz zobaczyć wynik za każdym razem, gdy gracz dotknie części.
Zmień zdrowie gracza
Jeśli warunek jest prawdziwy, możesz użyć tej samej zmiennej humanoid, aby ustawić zdrowie gracza na 0.
Pomiędzy then a end, wpisz humanoid.Health = 0.
Zakończony skryptlocal trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- Ocena, czy Humanoid został znalezionyif humanoid thenprint("Znaleziono Humanoida")humanoid.Health = 0endendtrapPart.Touched:Connect(onTouch)Przetestuj pułapkę.
Podsumowanie
Ta część pułapki używała warunków do wykrywania części Humanoid i ustawiania zdrowia Humanoida na zero. Ten skrypt jest ulepszeniem poprzedniego skryptu pułapki, który niszczył każdy dotykający obiekt, niezależnie od tego, co to było.
Ma jednak nadal kilka wad. Humanoidy nie są tylko w graczach. Humanoidy znajdują się również w postaciach niegrywalnych. Skrypt jest również dobry tylko do ustawiania zdrowia gracza na zero. Możesz eksperymentować z odejmowaniem małej ilości zdrowia, ale prawdopodobnie będzie to odejmować zdrowie szybciej, niż byś chciał. Późniejsze lekcje dostarczą dalszych ulepszeń, aby dać większą kontrolę nad tym, ile zdrowia jest odejmowane graczom.