I have a function that starts the timer, but for some reason I can't make it stop with the "break" command. No errors either.
local Use
local Active = true
local InCloak = true
local StopTimer = true
local UseingCloak = script.Parent.IsCloak
local DoneCloaking = script.Parent.DoneCloak
local Timer = script.Parent.CloakTimer
local Count = script.Parent.CountUp
script.Parent.Activated:Connect(function()
if Timer.Value <= 10 then
else
if Active == true then
coroutine.resume(coroutine.create(function()
Active = false
wait(2)-- Delay
StopTimer = true
UseingCloak.Value = true
Count.Value = false
script.Parent.Handle.Cloak:Play()
wait(1)
InCloak = true
if InCloak == true then
InCloak = false
Active = true
end
end))
elseif InCloak == true then
InCloak = false
wait(2)--Delay
StopTimer = false
-- Uncloak
script.Parent.Handle.UnCloak:Play()
Count.Value = true
wait(1) -- general tool cooldown
Active = true
end
end
end)
function calculate() -- Timer Countdown
if UseingCloak.Value == true then
while true do
wait(.5)
Timer.Value -= 1
if Timer.Value <= 0 then -- This doesn't stop
script.Parent.Handle.UnCloak:Play()
InCloak = false
Count.Value = true
Active = true
break
elseif StopTimer == false then -- This doesn't stop
StopTimer = false
script.Parent.Handle.UnCloak:Play()
InCloak = false
Count.Value = true
Active = true
break
end
end
end
end
function calculate2() -- Timer Regen
if Count.Value == true then
while true do
wait(.1)
Timer.Value += 0.1
if UseingCloak.Value == true then
break
end
if Timer.Value >= 60 then
Timer.Value = 60
if Timer.Value <= 0 then
Timer.Value = 0
end
end
end
end
end
UseingCloak:GetPropertyChangedSignal("Value"):Connect(calculate)
DoneCloaking:GetPropertyChangedSignal("Value"):Connect(calculate)
Count:GetPropertyChangedSignal("Value"):Connect(calculate)

1 comment
Try using print() statements. They help alot.