Cronômetro Avançado
Esse cronômetro necessita dos códigos Botão, Cronômetro e Teleporte. As partes que colocarei aqui servem apenas para substituir o que já existem nesses três códigos
Para a parte do Cronômetro:
Acesse o script em TextLabel e substitua para o seguinte código:
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local bindableEvent = ReplicatedStorage:FindFirstChild("Timer1")
local text = script.Parent
local gui = text.Parent
local player = gui.Parent.Parent
local timer = gui:FindFirstChild("RodandoTimer")
local tempo = gui:FindFirstChild("tempoFinal")
bindableEvent.Event:Connect(function(playerName, status)
if status == "Iniciar" then
text.BackgroundColor = BrickColor.new("White")
local tempoInicial = DateTime.now()
local minutos = tempoInicial:FormatLocalTime("mm", "en-us")
local segundos = tempoInicial:FormatLocalTime("ss", "en-us")
local milissegundos = tempoInicial:FormatLocalTime("SSS", "en-us")
timer.Value = true
while timer.Value == true do
local tempoRodando = DateTime.now()
local minutosR = tempoRodando:FormatLocalTime("mm", "en-us") - minutos
local segundosR = tempoRodando:FormatLocalTime("ss", "en-us") - segundos
local milissegundosR = tempoRodando:FormatLocalTime("SSS", "en-us") - milissegundos
if milissegundosR < 0 then
milissegundosR = 1000 + milissegundosR
segundosR = segundosR - 1
end
if segundosR < 0 then
segundosR = 60 + segundosR
minutosR = minutosR - 1
end
if minutosR < 0 then
minutosR = 0
segundosR = 0
milissegundosR = 0
end
tempo.Value = minutosR .. ":" .. segundosR .. ":" .. milissegundosR
text.Text = tempo.Value
wait(0.001)
end
local pontos = player.leaderstats.Tempo
pontos.Value = tempo.Value
text.BackgroundColor = BrickColor.new("Lime green")
end
end)
Para a parte do Teleporte/Botão:
- Adicione o botão dentro da pasta dos teleportes;
- Apague a entrada do teleporte;
- Substitua o código dentro do ClickDetector do botão por esse:
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local bindableEvent = ReplicatedStorage:FindFirstChild("Timer1")
local saida = script.Parent.Parent.Parent.Parent:FindFirstChild("Saída")
local saidaPos = saida.CFrame + Vector3.new(0,5,0)
local clickdetector = script.Parent
clickdetector.MouseClick:Connect(function(hit)
local players = game.Players:GetPlayers()
for _, player in pairs(players) do
local character = player.Character
if character then
local humanoidRootPart = character:FindFirstChild("HumanoidRootPart")
if humanoidRootPart then
humanoidRootPart.CFrame = saidaPos
end
end
end
bindableEvent:Fire("", "Iniciar")
end)
Para reiniciar o jogo...
...vamos adicionar à plataforma que criamos ao fim do Cronômetro o sistema de Teleporte, então adicione o bloco a uma pasta junto de outro bloco chamado Saída, e coloque a saída no local próximo do botão de início de jogo. Coloque esse código no bloco do cronômetro:
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local bindableEvent = ReplicatedStorage:FindFirstChild("Timer1")
local saida = script.Parent.Parent:FindFirstChild("Saída")
local saidaPos = saida.CFrame + Vector3.new(0,5,0)
script.Parent.Touched:connect(function(hit)
if hit and hit.Parent and hit.Parent:FindFirstChild("Humanoid") then
local player = game.Players:GetPlayerFromCharacter(hit.Parent)
bindableEvent:Fire(player.Name, "PararTimer")
local playerPos = hit.Parent:FindFirstChild("HumanoidRootPart")
playerPos.CFrame = saidaPos
end
end)