So i have this script in a tool if you press "r" it plays a sound and increases a Intvalue by 5 Though it doesn't play the animation and the animation is made by me its inside of the tool's handle. This is a local script. Everything except the animation works. This is a screenshot of the tool in explorer here
local shaking = false
local flickering = false
local maxcharge = script.Charge.Value
local on = false
function turnon()
on = true
script.Parent.Light.Enabled = true
script.Parent.OnSound:Play()
end
function turnoff()
on = false
script.Parent.Light.Enabled = false
end
function click()
if on ~= true and script.Charge.Value > 0 then
turnon()
else
turnoff()
end
end
script.Parent.Parent.Activated:connect(click)
function flicker(tim)
if flickering == false then
flickering = true
for i = 1, math.abs(math.random(-16, -tim)) do
if script.Charge.Value > 1 and on == true then
wait(math.abs(math.random(-30, -tim)) / 1000)
if script.Parent.Light.Enabled == true then
script.Parent.Light.Enabled = false
else
script.Parent.Light.Enabled = true
end
else
turnoff()
end
end
if script.Charge.Value > 0 and on == true then
script.Parent.Light.Enabled = true
end
flickering = false
end
end
local keyConnection = nil
function onKeyDown(key)
if key:lower() == "r" and shaking ~= true then
vChar = script.Parent.Parent.Parent
if vChar == nil then return end
hum = vChar:FindFirstChild("Humanoid")
if hum == nil then return end
--if not Tool.Enabled then return end
script.Parent.Parent.Enabled = false
torso = vChar:FindFirstChild("Torso")
if torso == nil then script.Parent.Parent.Enabled = true return end
local shakeanim = hum:LoadAnimation(script.Parent.ShakeAnim)
if shakeanim == nil then script.Parent.Parent.Enabled = true return end
if shakeanim ~= nil then
shaking = true
shakeanim:Play() --This part doesn't work
script.Parent.ShakeSound:Play()
wait(0.15)
shakeanim:Stop() --And this one
if script.Charge.Value + 5 < maxcharge then
script.Charge.Value = script.Charge.Value + 5
end
shaking = false
script.Parent.Parent.Enabled = true
end
end
end
function onEquippedLocal(mouse)
keyConnection = mouse.KeyDown:connect(onKeyDown)
end
script.Parent.Parent.Equipped:connect(onEquippedLocal)
while true do
wait(0.25)
if on == true and script.Charge.Value > 0 then
script.Charge.Value = script.Charge.Value - 1
if script.Charge.Value < 15 and math.random(1, 10) < 5 then
flicker(script.Charge.Value)
end
elseif script.Parent.Light.Enabled == true then
turnoff()
end
end
--script.Parent.Parent.Activated:connect(onActivate)
--script.Parent.Light.Enabled.Changed:connect(cd)
