Ć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, 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.

  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, aby odwołać 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ę za każdym razem, gdy coś dotknie tej części.

    local trapPart = script.Parent
    local function onTouch(otherPart)
    end
    trapPart.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.

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

    local trapPart = script.Parent
    local function onTouch(otherPart)
    -- Znajduje obiekt rodzica 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)

Sprawdź 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 instrukcję 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 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.

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

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