Ćwiczenie if/then z pułapkami

*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.

Pułapki, które zmniejszają zdrowie graczy, to zabawny element rozgrywki, który można zakodować za pomocą instrukcji warunkowych. Ćwicz używanie instrukcji warunkowych, tworząc część, która ustawia zdrowie gracza na zero po dotknięciu.

Ustawienie pułapki

Pułapki działają wyjątkowo dobrze w doświadczeniach z wyzwaniami opartymi na ruchu, takimi jak obby. Kroki te rozpoczną się od ustawienia niezbędnych zmiennych i funkcji. Zrób tyle, ile możesz, nie patrząc najpierw na bloki kodu.

  1. Stwórz i nazwij część pułapki. Wstaw skrypt do części.

  2. W skrypcie dodaj opisowy komentarz, a następnie użyj zmiennej do odniesienia się do rodzica skryptu.


    -- Jeśli gracz dotknie tej części, ustaw jego zdrowie na 0
    local trapPart = script.Parent
  3. Stwórz funkcję o nazwie onTouch() z parametrem o nazwie otherPart.


    -- Jeśli gracz dotknie tej części, ustaw jego zdrowie na 0
    local trapPart = script.Parent
    local function onTouch(otherPart)
    end
  4. Połącz funkcję z wydarzeniem Touched części pułapki, aby uruchamiała się zawsze, gdy coś dotknie tej części.


    local trapPart = script.Parent
    local function onTouch(otherPart)
    end
    trapPart.Touched:Connect(onTouch)

Sprawdzenie dotyku gracza

Pamiętaj, że parametr otherPart rejestruje to, 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 przedmiotów dekoracyjnych, użyj instrukcji if/then, aby sprawdzić, czy cokolwiek, co znajduje się w otherPart, zawiera obiekt Humanoid.

Znajdź konkretny obiekt

Funkcję FindFirstChildWhichIsA() można wykorzystać do poszukiwania konkretnych typów obiektów, co jest przydatne, ponieważ szukamy obiektu typu Humanoid. Gracze prawdopodobnie dotkną pułapki tylko częścią swojego awatara, dlatego musi być ustawiona zmienna, aby znaleźć rodzica dotykającej części i przeszukać go w poszukiwaniu Humanoida.

  1. W onTouch(), wpisz local character = otherPart.Parent.


    local trapPart = script.Parent
    local function onTouch(otherPart)
    -- Znajduje obiekt rodzicielski otherPart
    local character = otherPart.Parent
    end
    trapPart.Touched:Connect(onTouch)
  2. Sprawdź, czy character ma Humanoid, wpisując:

    local humanoid = character:FindFirstChildWhichIsA("Humanoid")


    local trapPart = script.Parent
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    end
    trapPart.Touched:Connect(onTouch)

Sprawdzenie za pomocą instrukcji if

Jeśli Humanoid zostanie znaleziony, ustaw zdrowie Humanoida na zero.

  1. Użyj instrukcji if, aby sprawdzić, czy Humanoid został pomyślnie przypisany do local humanoid.


    local trapPart = script.Parent
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    -- Ocena, czy Humanoid został znaleziony
    if humanoid then
    end
    end
    trapPart.Touched:Connect(onTouch)
  2. Dodaj polecenie print i sprawdź kod do tej pory.


    local trapPart = script.Parent
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    -- Ocena, czy Humanoid został znaleziony
    if humanoid then
    print("Znaleziono Humanoida")
    end
    end
    trapPart.Touched:Connect(onTouch)
  3. Uruchom kod i sprawdź, czy widzisz wynik, gdy gracz dotknie części.

Zmiana zdrowia gracza

Jeśli warunek jest prawdziwy, możesz użyć tej samej zmiennej humanoid do ustawienia zdrowia gracza na 0.

  1. Pomiędzy then a end wpisz humanoid.Health = 0.

    Zakończony skrypt

    local trapPart = script.Parent
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    -- Ocena, czy Humanoid został znaleziony
    if humanoid then
    print("Znaleziono Humanoida")
    humanoid.Health = 0
    end
    end
    trapPart.Touched:Connect(onTouch)
  2. Przetestuj pułapkę.

Podsumowanie

Ta część pułapki użyła instrukcji warunkowych do wykrywania części Humanoid i ustawienia zdrowia Humanoida na zero. Ten skrypt jest ulepszeniem poprzedniego skryptu pułapki, który zniszczyłby 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ę także w postaciach niegrywalnych. Skrypt jest również dobry tylko w ustawianiu 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 odejmuje się graczom.

©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.