Script checkpoint roblox studio lite
fauzielay12
393 x views • 11 months ago
-- Server script di dalam Part checkpoint
local checkpoint = script.Parent
checkpoint.Touched:Connect(function(hit)
local player = game.Players:GetPlayerFromCharacter(hit.Parent)
if not player then return end
if not hit.Parent:FindFirstChild("Humanoid") then return end
-- Simpan posisi checkpoint sebagai Attribute pada Player (Vector3)
player:SetAttribute("CheckpointPosition", checkpoint.Position)
-- Visual: ubah warna biar kelihatan sudah diambil
if checkpoint:IsA("BasePart") then
checkpoint.BrickColor = BrickColor.new("Bright green")
end
end)
Script Reset
local player = game.Players.LocalPlayer
local button = script.Parent -- karena LocalScript ada di dalam TextButton
-- inisialisasi: tombol sembunyikan kalau belum ada checkpoint
local function updateButtonVisibility()
local pos = player:GetAttribute("CheckpointPosition")
if pos then
button.Visible = true
else
button.Visible = false
end
end
-- panggil awal
updateButtonVisibility()
-- update saat attribute berubah (setAttribute dari server)
player:GetAttributeChangedSignal("CheckpointPosition"):Connect(updateButtonVisibility)
-- klik tombol -> teleport ke checkpoint
button.MouseButton1Click:Connect(function()
local checkpointPos = player:GetAttribute("CheckpointPosition")
if not checkpointPos then
-- belum ada checkpoint
-- Bisa juga tampilkan notif kecil; untuk sementara pakai print
print("Belum ada checkpoint tersimpan.")
return
end
-- pastikan karakter ada
local char = player.Character or player.CharacterAdded:Wait()
local hrp = char:FindFirstChild("HumanoidRootPart") or char:WaitForChild("HumanoidRootPart")
-- teleport: beri offset Y supaya tidak nemplok pada tanah
hrp.CFrame = CFrame.new(checkpointPos + Vector3.new(0, 5, 0))
end)
local checkpoint = script.Parent
checkpoint.Touched:Connect(function(hit)
local player = game.Players:GetPlayerFromCharacter(hit.Parent)
if not player then return end
if not hit.Parent:FindFirstChild("Humanoid") then return end
-- Simpan posisi checkpoint sebagai Attribute pada Player (Vector3)
player:SetAttribute("CheckpointPosition", checkpoint.Position)
-- Visual: ubah warna biar kelihatan sudah diambil
if checkpoint:IsA("BasePart") then
checkpoint.BrickColor = BrickColor.new("Bright green")
end
end)
Script Reset
local player = game.Players.LocalPlayer
local button = script.Parent -- karena LocalScript ada di dalam TextButton
-- inisialisasi: tombol sembunyikan kalau belum ada checkpoint
local function updateButtonVisibility()
local pos = player:GetAttribute("CheckpointPosition")
if pos then
button.Visible = true
else
button.Visible = false
end
end
-- panggil awal
updateButtonVisibility()
-- update saat attribute berubah (setAttribute dari server)
player:GetAttributeChangedSignal("CheckpointPosition"):Connect(updateButtonVisibility)
-- klik tombol -> teleport ke checkpoint
button.MouseButton1Click:Connect(function()
local checkpointPos = player:GetAttribute("CheckpointPosition")
if not checkpointPos then
-- belum ada checkpoint
-- Bisa juga tampilkan notif kecil; untuk sementara pakai print
print("Belum ada checkpoint tersimpan.")
return
end
-- pastikan karakter ada
local char = player.Character or player.CharacterAdded:Wait()
local hrp = char:FindFirstChild("HumanoidRootPart") or char:WaitForChild("HumanoidRootPart")
-- teleport: beri offset Y supaya tidak nemplok pada tanah
hrp.CFrame = CFrame.new(checkpointPos + Vector3.new(0, 5, 0))
end)