Nếu/sau đó thực hành 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ố trò chơi vui vẻ có thể được mã hóa bằng các tuyên bố điều kiện.Thực hành sử dụng điều kiện bằng cách tạo một phần đặt sức khỏe của người chơi thành không khi chạm vào.

Thiết lập bẫy

Bẫy hoạt động rất tốt trong các trải nghiệm với cá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à chức năng cần thiết.Làm càng nhiều càng tốt mà không xem hộp mã trước tiên.

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

  2. Trong kịch bản, thêm 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, hãy đặt sức khỏe của họ thành 0
    local trapPart = script.Parent
  3. Tạo một chức năng có tên là 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, hã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 chức năng với sự kiện của phần bẫy Touched khi có bất 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

Hãy nhớ, 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 một người chơi hoặc chỉ là tấm cơ sở.

Để đảm bảo bẫy chỉ phá hủy người chơi và sẽ không phá hủy các vật phẩm trang trí ngẫu nhiên, hãy sử dụng tuyên bố 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ể

Chức năng FindFirstChildWhichIsA() có thể được sử dụng để tìm kiếm các loại đối tượng cụ thể, rất hữu ích bởi vì chúng tôi đang tìm kiếm một đối tượng kiểu Humanoid.Người chơi có thể sẽ chạm vào bẫy chỉ với một phần của avatarđại diện của họ, do đó phải thiết lập một biến để tìm cha của phần tiếp xúc và tìm kiếm nó cho một Humanoid.

  1. Trong onTouch(), nhập local character = otherPart.Parent.


    local trapPart = script.Parent
    local function onTouch(otherPart)
    -- Tìm đối tượng cha của phần khác
    local character = otherPart.Parent
    end
    trapPart.Touched:Connect(onTouch)
  2. Kiểm tra xem có phải 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 tuyên bố if

Nếu tìm thấy một Humanoid, thì đặt sức khỏe của Humanoid thành không.

  1. Sử dụng một tuyên bố if để kiểm tra xem một Humanoid đã được gán thành công tới local humanoid .


    local trapPart = script.Parent
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    -- Xác định xem có tìm thấy Humanoid hay không
    if humanoid then
    end
    end
    trapPart.Touched:Connect(onTouch)
  2. Thêm một tuyên bố 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")
    -- Xác định xem có tìm thấy Humanoid hay không
    if humanoid then
    print("Found a Humanoid")
    end
    end
    trapPart.Touched:Connect(onTouch)
  3. Chạy mã và kiểm tra xem bạn có thể xem xuất ra bất cứ khi nào 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 tuyên bố 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 thành 0.

  1. Giữa thenend, nhập humanoid.Health = 0.

    Hoàn thành kịch bản

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

Tổng quát

Phần bẫy này sử dụng điều kiện để phát hiện các phần Humanoid và đặt sức khỏe của Humanoid thành 0.Tập lệnh này là một cải tiến cho tập lệnh bẫy trước, đã phá hủy bất kỳ đối tượng tiếp xúc nào bất kể nó là gì.

Tuy nhiên, nó vẫn có một vài khuyết điểm.Người ngoài hành tinh không chỉ có trong người chơi.Người ngoài hành tinh cũng được tìm thấy trong những nhân vật không thể chơi.Tập lệnh cũng chỉ tốt khi đặt sức khỏe của người chơi thành không.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ể sẽ trừ sức khỏe nhanh hơn mong muốn.Các bài học sau này cung cấp thêm các cải tiến để cung cấp nhiều kiểm soát hơn về lượng sức khỏe được trừ đi từ người chơi.