Các bẫy 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 điều kiện. Luyện tập sử dụng điều kiện bằng cách tạo một phần mà đặt sức khỏe của người chơi để bằng khi chạm vào nó.
Cài đặt cái bẫy
Các bẫy hoạt động tốt nhấ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 cài đặt các biến đổi và chức năng cần thiết. Làm nhiều như bạn có thể mà không nhìn vào các hộp mã đầu tiên.
Tạo và đặt tên một phần của cái bẫy. Thêm một script vào phần.
Trong script, thêm một bình luận mô tả và sau đó sử dụng một biến để tham chiếu vào cha của script.
-- Nếu một người chạm vào bộ phận này, hãy đặt sức khỏe của họ thành 0local trapPart = script.ParentTạo một chức năng tên là onTouch() với một biến tên là otherPart .
-- Nếu một người chạm vào bộ phận này, hãy đặt sức khỏe của họ thành 0local trapPart = script.Parentlocal function onTouch(otherPart)endKết nối hàm này với sự kiện Touched của phần màu mỡ để chạy mỗi khi có ai chạm vào phần màu mỡ.
local trapPart = script.Parentlocal function onTouch(otherPart)endtrapPart.Touched:Connect(onTouch)
Kiểm tra bằng cảm ứng người chơi
Nhớ, tham số otherPart lưu bất cứ điều gì chạm vào phần mồi, có thể là một phần của người chơi hoặc chỉ là bảng mạch cơ sở.
Để đảm bảo rằng cái bẫy chỉ sẽ hủy hoại người chơi và không hủy hoại các món đồ trang trí ngẫu nhiên, hãy sử dụng câu if/then để kiểm tra xem bất kỳ thứ gì ở otherPart có chứa một đối tượng Humanoid 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 thuận tiện vì chúng tôi đang tìm kiếm một đối tượng kiểu Hình người. Người chơi có thể chạm vào các bẫy chỉ với một phầ
Trong onTouch() , hãy viết local character = otherPart.Parent .
local trapPart = script.Parentlocal function onTouch(otherPart)-- Tìm mối quan hệ phụ cấp của một đối tượng kháclocal character = otherPart.ParentendtrapPart.Touched:Connect(onTouch)Kiểm tra để xem có phải character có một Humanoid bằng cách nhập:
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")endtrapPart.Touched:Connect(onTouch)
Kiểm tra với một if Statement
Nếu một Hình người được tìm thấy, thì hãy đặt Sức khỏe của Hình người đó thành 0.
Sử dụng một if statement để kiểm tra có phải một Humanoid đã được giao cho local humanoid .
local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- Đánh giá nếu một Hình người được tìm thấyif humanoid thenendendtrapPart.Touched:Connect(onTouch)Thêm một lệnh in và kiểm tra mã đến nay.
local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- Đánh giá nếu một Hình người được tìm thấyif humanoid thenprint("Found a Humanoid")endendtrapPart.Touched:Connect(onTouch)Chạy mã và kiểm tra rằng bạn có thể xem kết quả mỗi khi một người chạm vào bộ phận.
Thay đổi sức khỏe của người chơi
Nếu tuyên bố đúng, bạn có thể sử dụng cùng một biến hình người để đặt sức khỏe của người chơi để 0.
Giữa then và end, hãy viết humanoid.Health = 0 .
Tập lệnh đã hoàn thànhlocal trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- Đánh giá nếu một Hình người được tìm thấyif humanoid thenprint("Found a Humanoid")humanoid.Health = 0endendtrapPart.Touched:Connect(onTouch)Thử nghiệm cái bẫy.
Tổng kết
Phần này của cái bẫy sử dụng điều kiện để xác định các bộ phận hình người và đặt sức khỏe của hình người lên bằng 0. This script is an improvement on the previous trap script, which destroyed any touching object no matter what it was.
Nó vẫn tuy nhiên vẫn còn một vài nhược điểm. Humanoids không chỉ ở trong người chơi. Humanoids cũng được tìm thấy trong những nhân vật không chơi. Script này chỉ tốt để thiết lập sức khỏe của người chơi để là