Thêm một Part mới giữa hai bệ. Cho nó màu đỏ, đặt Material thành Neon, bật Anchored và đặt tên là Lava.
Trong Explorer, rê chuột lên Lava, bấm nút + và chọn Script.
Xóa dòng có sẵn rồi dán đoạn code này vào.
Lava > Script
local lava = script.Parent
lava.Touched:Connect(function(hit)
local humanoid = hit.Parent:FindFirstChildOfClass("Humanoid")
if humanoid then
humanoid.Health = 0
end
end)
Mỗi phần làm gì
script.Parent là part chứa script. Ở đây đó là dung nham.
Touched chạy mỗi khi có gì đó chạm vào part. hit là thứ đã chạm vào nó, ví dụ một bàn chân.
hit.Parent là cả nhân vật. Nếu nó có Humanoid thì đó là một người chơi, nên script đặt Health thành 0.
Xem thêm chi tiết
Material là một danh sách trong Properties. Bấm vào nó và chọn Neon. Neon làm part phát sáng.
Khi bạn thêm Script, nó mở ra trong một tab mới với một dòng code. Bấm vào trong code, nhấn Ctrl+A để chọn hết rồi Ctrl+V để dán đè lên.
Quay lại thế giới của bạn bằng cách bấm vào tab có tên place của bạn.
Để thử: nhấn F5 và đi vào dung nham. Nhân vật của bạn vỡ ra rồi quay lại chỗ bắt đầu.
Hãy làm dung nham rộng và phẳng, ví dụ Size 12, 1, 6, và đặt nó thấp hơn các bệ một chút, để nhảy hụt sẽ rơi vào đó.
Bước này không chạy được với mình
Hãy kiểm tra ba điều này trước
Tên của mọi part và script phải giống hệt trong hướng dẫn, kể cả chữ hoa.
Script phải nằm trong đúng vật thể. Hãy xem dòng nhãn phía trên khung code.
Mở cửa sổ Output từ menu Window. Chữ màu đỏ cho biết script nào và dòng nào bị lỗi.
Trong Explorer, rê chuột lên Workspace, bấm + và thêm một Folder. Đặt tên là Checkpoints.
Đặt ba part đã Anchored dọc theo đường đua rồi kéo chúng vào folder. Đặt tên là 1, 2 và 3. Part 1 nằm trên bệ xuất phát.
Rê chuột lên ServerScriptService, bấm + và thêm một Script. Dán đoạn code này vào.
ServerScriptService > Script
local Players = game:GetService("Players")
local checkpoints = workspace:WaitForChild("Checkpoints")
Players.PlayerAdded:Connect(function(player)
local stats = Instance.new("Folder")
stats.Name = "leaderstats"
stats.Parent = player
local stage = Instance.new("IntValue")
stage.Name = "Stage"
stage.Value = 1
stage.Parent = stats
player.CharacterAdded:Connect(function(character)
local root = character:WaitForChild("HumanoidRootPart")
local point = checkpoints:FindFirstChild(tostring(stage.Value))
if point then
task.wait(0.1)
root.CFrame = point.CFrame + Vector3.new(0, 4, 0)
end
end)
end)
for _, point in ipairs(checkpoints:GetChildren()) do
point.Touched:Connect(function(hit)
local player = Players:GetPlayerFromCharacter(hit.Parent)
local stats = player and player:FindFirstChild("leaderstats")
if not stats then return end
local number = tonumber(point.Name)
if number == stats.Stage.Value + 1 then
stats.Stage.Value = number
end
end)
end
Mỗi phần làm gì
leaderstats là một tên folder đặc biệt. Các giá trị trong đó hiện ở danh sách người chơi, nên ai cũng thấy Stage của bạn.
Khi nhân vật xuất hiện, script đưa nó tới điểm lưu có tên bằng Stage của người chơi.
Chạm vào một điểm lưu chỉ làm Stage tăng nếu đó là điểm tiếp theo. Như vậy người chơi không thể bỏ qua đoạn đường.
Xem thêm chi tiết
Một Folder chứa các vật thể khác, giống như một thư mục trên máy tính. Tự nó không làm gì trong game.
Để kéo một part vào folder, kéo tên nó trong Explorer thả lên tên Checkpoints. Khi đó part nằm thụt vào một bậc, bên dưới folder.
Làm các part điểm lưu mỏng và rộng, ví dụ Size 6, 0.4, 6, và đặt chúng lên trên các bệ. Một màu khác giúp người chơi dễ nhận ra.
Để thử: nhấn F5 và nhìn danh sách người chơi ở góc trên bên phải. Nó hiện Stage 1. Chạm vào điểm lưu 2 thì nó đổi thành 2.
Phải chạm các điểm lưu theo thứ tự. Chạm 3 trước 2 thì không có gì xảy ra.
Lỗi thường gặp. Đặt tên part là Checkpoint1 hoặc One. Script tìm đúng các tên 1, 2 và 3.
Bước này không chạy được với mình
Hãy kiểm tra ba điều này trước
Tên của mọi part và script phải giống hệt trong hướng dẫn, kể cả chữ hoa.
Script phải nằm trong đúng vật thể. Hãy xem dòng nhãn phía trên khung code.
Mở cửa sổ Output từ menu Window. Chữ màu đỏ cho biết script nào và dòng nào bị lỗi.
Đặt một part lớn đã Anchored ở cuối đường và đặt tên là Finish. Cho nó màu vàng để người chơi thấy mục tiêu.
Thêm một Script vào Finish và dán đoạn code này.
Finish > Script
local Players = game:GetService("Players")
local finish = script.Parent
local cooldown = {}
finish.Touched:Connect(function(hit)
local player = Players:GetPlayerFromCharacter(hit.Parent)
local stats = player and player:FindFirstChild("leaderstats")
if not stats or cooldown[player] then return end
cooldown[player] = true
stats.Stage.Value = 1
player:LoadCharacter()
task.wait(2)
cooldown[player] = nil
end)
Mỗi phần làm gì
GetPlayerFromCharacter tìm ra người chơi nào đã chạm vào vạch đích.
Bảng cooldown ngăn code chạy nhiều lần trong cùng một giây.
Stage quay về 1 và LoadCharacter đưa người chơi về điểm xuất phát để chơi lượt nữa.
Xem thêm chi tiết
Để làm nó màu vàng kim, bấm vào ô Color trong Properties và chọn màu vàng. Material Neon làm nó sáng lên.
Size 12, 1, 12 là kích thước hợp cho vạch đích. Đặt nó sau cú nhảy cuối cùng, cao hơn phần còn lại một chút.
Để thử: nhấn F5, chạy hết đường đua rồi bước lên part màu vàng kim. Bạn quay lại chỗ bắt đầu và Stage hiện lại là 1.
Thời gian chờ 2 giây có là vì một bước chân chạm vào part nhiều lần.
Bước này không chạy được với mình
Hãy kiểm tra ba điều này trước
Tên của mọi part và script phải giống hệt trong hướng dẫn, kể cả chữ hoa.
Script phải nằm trong đúng vật thể. Hãy xem dòng nhãn phía trên khung code.
Mở cửa sổ Output từ menu Window. Chữ màu đỏ cho biết script nào và dòng nào bị lỗi.
Nhấn F5 để chơi. Chạy hết đường đua từ đầu đến cuối.
Cố tình rơi vào dung nham. Bạn phải quay lại ở điểm lưu gần nhất.
Nhấn Shift+F5 để dừng.
Mở cửa sổ Output từ menu Window. Chữ màu đỏ nghĩa là một script bị lỗi, và nó cho biết số dòng.
Xem thêm chi tiết
F5 bắt đầu game với nhân vật của bạn trong đó. Thanh công cụ thay đổi khi game đang chạy.
Những thay đổi bạn làm khi game đang chạy sẽ mất khi bạn dừng. Luôn nhấn Shift+F5 trước, rồi mới chỉnh sửa.
Trong cửa sổ Output, bấm vào một dòng màu đỏ thì Studio mở script tại dòng có lỗi.
Khi có gì đó không chạy, hãy kiểm tra ba điều: tên của part, vị trí của script, và Anchored đã bật chưa.
Lỗi thường gặp. Một bệ bị rơi khi game bắt đầu: Anchored đang tắt. Chạm vào part mà không có gì xảy ra: script nằm sai vật thể, hoặc một cái tên bị gõ sai.
Bước này không chạy được với mình
Hãy kiểm tra ba điều này trước
Tên của mọi part và script phải giống hệt trong hướng dẫn, kể cả chữ hoa.
Script phải nằm trong đúng vật thể. Hãy xem dòng nhãn phía trên khung code.
Mở cửa sổ Output từ menu Window. Chữ màu đỏ cho biết script nào và dòng nào bị lỗi.