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.
Tạo và đặt tên một phần bẫy. Thêm một kịch bản vào phần.
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 0local trapPart = script.ParentTạ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 0local trapPart = script.Parentlocal function onTouch(otherPart)endKế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.Parentlocal function onTouch(otherPart)endtrapPart.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.
Trong onTouch(), nhập local character = otherPart.Parent.
local trapPart = script.Parentlocal function onTouch(otherPart)-- Tìm đối tượng cha của phần kháclocal character = otherPart.ParentendtrapPart.Touched:Connect(onTouch)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.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")endtrapPart.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.
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.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- Xác định xem có tìm thấy Humanoid hay khôngif humanoid thenendendtrapPart.Touched:Connect(onTouch)Thêm một tuyên bố in và kiểm tra mã cho đến nay.
local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- Xác định xem có tìm thấy Humanoid hay khôngif humanoid thenprint("Found a Humanoid")endendtrapPart.Touched:Connect(onTouch)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.
Giữa then và end, nhập humanoid.Health = 0.
Hoàn thành kịch bảnlocal trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- Xác định xem có tìm thấy Humanoid hay khôngif humanoid thenprint("Found a Humanoid")humanoid.Health = 0endendtrapPart.Touched:Connect(onTouch)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.