Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local Players = game:GetService("Players")
- local checkpointsFolder = workspace:WaitForChild("Checkpoints") -- Folder tempat menyimpan semua checkpoint
- -- Simpan posisi checkpoint berdasarkan nomor
- local checkpointPositions = {}
- -- Ambil semua checkpoint dari folder
- for _, part in pairs(checkpointsFolder:GetChildren()) do
- if part:IsA("BasePart") then
- local name = part.Name
- local num = string.match(name, "^cek(%d+)$") -- Cari nama yang sesuai format "cek<number>"
- if num then
- local number = tonumber(num)
- if number and number >= 0 and number <= 10000 then
- checkpointPositions[number] = part.Position
- end
- end
- end
- end
- -- Pasang deteksi sentuhan ke setiap checkpoint
- local function connectCheckpointTouch(part, checkpointNumber)
- part.Touched:Connect(function(hit)
- local character = hit.Parent
- local player = Players:GetPlayerFromCharacter(character)
- if player then
- local current = player:GetAttribute("Checkpoint") or 0
- if checkpointNumber > current then
- player:SetAttribute("Checkpoint", checkpointNumber)
- print(player.Name .. " mencapai checkpoint: cek" .. checkpointNumber)
- end
- end
- end)
- end
- -- Hubungkan semua checkpoint dengan deteksi
- for number, _ in pairs(checkpointPositions) do
- local part = checkpointsFolder:FindFirstChild("cek" .. number)
- if part then
- connectCheckpointTouch(part, number)
- end
- end
- -- Respawn pemain di checkpoint terakhir setelah mati
- Players.PlayerAdded:Connect(function(player)
- player:SetAttribute("Checkpoint", 0)
- player.CharacterAdded:Connect(function(character)
- local checkpoint = player:GetAttribute("Checkpoint")
- local spawnPos = checkpointPositions[checkpoint]
- if spawnPos then
- task.wait(0.1) -- tunggu karakter siap
- local hrp = character:WaitForChild("HumanoidRootPart")
- hrp.CFrame = CFrame.new(spawnPos + Vector3.new(0, 5, 0)) -- spawn sedikit di atas checkpoint
- end
- end)
- end)
- --[[
- Kalian bisa ubah bagian ini sesuai yang kalian mau:
- workspace:WaitForChild("Checkpoints")
- > Kalian bisa ubah nama folder "Checkpoints" menjadi nama lain sesuai keinginan.
- Ini hanya nama folder tempat menyimpan semua balok checkpoint.
- local num = string.match(name, "^cek(%d+)$")
- > Kalian bisa ubah "cek" dengan nama lain seperti "point", misalnya:
- string.match(name, "^point(%d+)$")
- Maka nama balok yang dikenali menjadi: point0, point1, point2, dst.
- ]]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement