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.

Các bẫy làm giảm sức khỏe của người chơi là một yếu tố thú vị trong trò chơi 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 mà làm giảm sức khỏe của người chơi xuống 0 khi chạm vào.

Thiết lập bẫy

Các bẫy hoạt động rất tốt trong các trò chơi có thử thách 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 nhiều nhất có thể 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 script vào phần đó.

  2. Trong script, 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 script.

    -- 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 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à mặt đất.

Để đảm bảo rằng bẫy chỉ tiêu diệt người chơi và không tiêu diệt các vật 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ì 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 kiếm các loại đối tượng cụ thể, điều này 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 của avatar 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ó cho 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ó một Humanoid 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 một 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 0.

  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 hay không.

    local trapPart = script.Parent
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    -- Đánh giá xem một Humanoid có được tìm thấy không
    if humanoid then
    end
    end
    trapPart.Touched:Connect(onTouch)
  2. Thêm một câu lệnh print 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 một Humanoid có được tìm thấy 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.

    Script hoàn thành
    local trapPart = script.Parent
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    -- Đánh giá xem một Humanoid có được tìm thấy 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 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 0. Script này là một cải tiến so với script 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 quan tâm đến nó là gì.

Tuy nhiên, nó vẫn có một vài lỗi. Humanoid không chỉ có trong người chơi. Humanoid cũng có trong các nhân vật không thể chơi được. Script này cũng chỉ tốt cho việc đặt sức khỏe của người chơi xuống 0. Bạn có thể thử nghiệm với việc trừ một lượng sức khỏe nhỏ, nhưng có thể nó sẽ trừ sức khỏe nhanh hơn mong muốn. Các bài học sau sẽ cung cấp thêm cải tiến để kiểm soát tốt hơn lượng 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.