local L=""local a=nil local h=nil local u=nil function toolKeyFrameReachedFunc(L)if L=="\069\110\100"then local L=stopToolAnimations()playToolAnimation(L,.0,Humanoid)end end function playToolAnimation(B,E,O)if B~=L then if h~=nil then h:Stop()h:Destroy()E=0 end local J=math.random(1,animTable[B].totalWeight)local k=J local s=1 while J>animTable[B][s].weight do J=J-animTable[B][s].weight s=s+1 end local C=animTable[B][s].anim a=h h=O:LoadAnimation(C)h:Play(E)L=B u=h.KeyframeReached:connect(toolKeyFrameReachedFunc)end end function stopToolAnimations()local a=L if u~=nil then u:disconnect()end L=""if h~=nil then h:Stop()h:Destroy()h=nil end return a end
-------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------

local toolAnimName = ""
local toolOldAnimTrack = nil
local toolAnimTrack = nil
local currentToolAnimKeyframeHandler = nil

function toolKeyFrameReachedFunc(frameName)
	if frameName == "End" then
		--		print("Keyframe : ".. frameName)
		local repeatAnim = stopToolAnimations()
		playToolAnimation(repeatAnim, 0.0, Humanoid)
	end
end

function playToolAnimation(animName, transitionTime, humanoid)
	if animName ~= toolAnimName then
		if toolAnimTrack ~= nil then
			toolAnimTrack:Stop()
			toolAnimTrack:Destroy()
			transitionTime = 0
		end

		local roll = math.random(1, animTable[animName].totalWeight)
		local origRoll = roll
		local idx = 1
		while roll > animTable[animName][idx].weight do
			roll = roll - animTable[animName][idx].weight
			idx = idx + 1
		end
		--		print(animName .. " * " .. idx .. " [" .. origRoll .. "]")
		local anim = animTable[animName][idx].anim

		-- load it to the humanoid; get AnimationTrack
		toolOldAnimTrack = toolAnimTrack
		toolAnimTrack = humanoid:LoadAnimation(anim)

		-- play the animation
		toolAnimTrack:Play(transitionTime)
		toolAnimName = animName

		currentToolAnimKeyframeHandler = toolAnimTrack.KeyframeReached:connect(toolKeyFrameReachedFunc)
	end
end

function stopToolAnimations()
	local oldAnim = toolAnimName

	if currentToolAnimKeyframeHandler ~= nil then
		currentToolAnimKeyframeHandler:disconnect()
	end

	toolAnimName = ""
	if toolAnimTrack ~= nil then
		toolAnimTrack:Stop()
		toolAnimTrack:Destroy()
		toolAnimTrack = nil
	end

	return oldAnim
end
