Thực hành if/then với bẫy

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.

Bẫy làm giảm sức khỏe của người chơi là một yếu tố chơi trò chơi thú vị có thể được lập trình bằng các câu lệnh điều kiện. Thực hành sử dụng các điều kiện bằng cách tạo một phần làm cho sức khỏe của người chơi giảm xuống zero khi chạm vào.

Thiết lập cái bẫy

Bẫy hoạt động rất tốt trong các trải nghiệm có thách thức dựa trên chuyển động, như obbies. Các bước này sẽ bắt đầu bằng cách thiết lập các biến và hàm cần thiết. Hãy làm càng nhiều càng tốt mà không cần nhìn vào các hộp mã trước.

  1. Tạo và đặt tên cho một phần bẫy. Chèn một kịch bản vào phần đó.

  2. Trong kịch bản, thêm một bình luận mô tả và sau đó sử dụng một biến để tham chiếu đến cha của kịch bản.


    -- Nếu một người chơi chạm vào phần này, đặt sức khỏe của họ thành 0
    local trapPart = script.Parent
  3. Tạo một hàm có tên onTouch() với một tham số có tên là otherPart.


    -- Nếu một người chơi chạm vào phần này, đặt sức khỏe của họ thành 0
    local trapPart = script.Parent
    local function onTouch(otherPart)
    end
  4. Kết nối hàm với sự kiện Touched của phần bẫy để chạy mỗi khi có thứ gì đó chạm vào phần.


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

Kiểm tra chạm của người chơi

Nhớ rằng, tham số otherPart ghi lại bất cứ thứ gì chạm vào phần bẫy, có thể là một phần của người chơi hoặc chỉ là nền.

Để đảm bảo rằng cái bẫy chỉ tiêu diệt người chơi và không tiêu diệt các vật dụng trang trí ngẫu nhiên, hãy sử dụng một câu lệnh if/then để kiểm tra xem bất cứ thứ gì có trong otherPart có chứa một đối tượng Humanoid hay không.

Tìm một đối tượng cụ thể

Hàm FindFirstChildWhichIsA() có thể được sử dụng để tìm các loại đối tượng cụ thể, rất tiện lợi vì chúng ta đang tìm kiếm một đối tượng loại Humanoid. Người chơi có thể chạm vào bẫy chỉ với một phần nhỏ của hình đại diện của họ, vì vậy một biến phải được thiết lập để tìm cha của phần chạm vào và tìm kiếm nó để tìm một Humanoid.

  1. Trong onTouch(), gõ local character = otherPart.Parent.


    local trapPart = script.Parent
    local function onTouch(otherPart)
    -- Tìm đối tượng cha của otherPart
    local character = otherPart.Parent
    end
    trapPart.Touched:Connect(onTouch)
  2. Kiểm tra xem character có thuộc tính Humanoid không bằng cách gõ:

    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)

Kiểm tra với câu lệnh if

Nếu một Humanoid được tìm thấy, thì đặt Sức khỏe của Humanoid xuống zero.

  1. Sử dụng một câu lệnh if để kiểm tra xem một Humanoid có được gán thành công cho local humanoid không.


    local trapPart = script.Parent
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    -- Đánh giá xem có tìm thấy Humanoid không
    if humanoid then
    end
    end
    trapPart.Touched:Connect(onTouch)
  2. Thêm một câu lệnh in và kiểm tra mã cho đến nay.


    local trapPart = script.Parent
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    -- Đánh giá xem có tìm thấy Humanoid không
    if humanoid then
    print("Đã tìm thấy một Humanoid")
    end
    end
    trapPart.Touched:Connect(onTouch)
  3. Chạy mã và kiểm tra rằng bạn có thể thấy đầu ra mỗi khi một người chơi chạm vào phần.

Thay đổi sức khỏe của người chơi

Nếu câu lệnh là đúng, bạn có thể sử dụng cùng một biến humanoid để đặt sức khỏe của người chơi xuống 0.

  1. Giữa thenend, gõ humanoid.Health = 0.

    Kịch bản hoàn thành

    local trapPart = script.Parent
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    -- Đánh giá xem có tìm thấy Humanoid không
    if humanoid then
    print("Đã tìm thấy một Humanoid")
    humanoid.Health = 0
    end
    end
    trapPart.Touched:Connect(onTouch)
  2. Kiểm tra cái bẫy.

Tóm tắt

Phần bẫy này đã sử dụng các điều kiện để phát hiện các phần Humanoid và đặt sức khỏe của Humanoid xuống zero. Kịch bản này là một cải tiến so với kịch bản bẫy trước đó, cái đã tiêu diệt bất kỳ đối tượng nào chạm vào mà không phân biệt nó là gì.

Tuy nhiên, nó vẫn có một vài thiếu sót. Humanoid không chỉ có trong người chơi. Humanoid cũng được tìm thấy trong các nhân vật không thể chơi được. Kịch bản này cũng chỉ tốt trong việc đặt sức khỏe của người chơi xuống zero. Bạn có thể thử nghiệm với việc trừ một lượng nhỏ sức khỏe, nhưng có thể nó sẽ trừ sức khỏe nhanh hơn so với mong muốn. Các bài học sau cung cấp các cải tiến bổ sung để kiểm soát tốt hơn mức sức khỏe bị trừ từ người chơi.

©2026 Roblox Corporation. Roblox, logo Roblox và Powering Imagination là các nhãn hiệu đã đăng ký và chưa đăng ký của chúng tôi tại Hoa Kỳ và các quốc gia khác.