Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
✓ ANSWER ACCEPTED

Random animation selector?

So i have this script where it takes slash1 and uses it and i was wondering how i would make it so it randomly selects slash1 slash2 or slash3

local TOOL = script.Parent
local BLADE = TOOL.Blade
local ANIMS = {}
for index, CHILD in pairs(script:GetChildren()) do
	if CHILD.Name == "Slash1" then
		table.insert(ANIMS,CHILD)
	end
end
local FIGHT = false
local FRIENDLYFIRE = TOOL.FriendlyFire
local IDLEANIM = nil
local TRAIL = BLADE.Trail

function Slash()
	if FIGHT == false then
		local HUM = TOOL.Parent:FindFirstChildOfClass("Humanoid")
		if HUM then
			TOOL.Slashing.Value = true
			BLADE.Swing.Pitch = math.random(8,12)/10
			BLADE.Swing:Play()
			TRAIL.Enabled = true
			local SHOUT = script.Grunt:Clone()
			SHOUT.Parent = HUM.Torso
			SHOUT:Play()
			SHOUT.Pitch = math.random(8,12)/10
			game:GetService("Debris"):AddItem(SHOUT,2)
			local BOD = Instance.new("BodyPosition",HUM.Torso)
			BOD.Position = HUM.Torso.CFrame * CFrame.new(0,0,-6).p
			BOD.P = 750
			BOD.D = 35
			BOD.MaxForce = BOD.MaxForce*25
			local ANIM = HUM:LoadAnimation(ANIMS[math.random(1,#ANIMS)])
			ANIM:Play()
			FIGHT = true
			local HIT = BLADE.Touched:Connect(function(TOUCHED)
				if TOUCHED.Parent:FindFirstChildOfClass("Humanoid") then
					local HUM = TOUCHED.Parent:FindFirstChildOfClass("Humanoid")
					local PASS = true
					if game.Players:FindFirstChild(HUM.Parent.Name) and FRIENDLYFIRE.Value == false and TOUCHED.Parent:FindFirstChildOfClass("ForceField") == nil then
						PASS = false
					end
					if PASS == true then
						HUM:TakeDamage(TOOL.Damage.Value)
					end
				end
			end)
			ANIM.Stopped:Connect(function()
				TOOL.Slashing.Value = false
				BOD:Remove()
				TRAIL.Enabled = false
				HIT:Disconnect()
				wait()
				FIGHT = false
			end)
		end
	end
end

TOOL.Activated:Connect(function()
	Slash()
end)

TOOL.Equipped:Connect(function()
	local HUM = TOOL.Parent:FindFirstChildOfClass("Humanoid")
	if HUM and script:FindFirstChild("Idle") then
		IDLEANIM = HUM:LoadAnimation(script.Idle)
		IDLEANIM:Play()
	end
end)
TOOL.Unequipped:Connect(function()
	if IDLEANIM then
		IDLEANIM:Stop()
	end
end)

1 answer

✓ Accepted answer

local ANIMS = {Slash1here.AnimationID, Slash2here.AnimationID, Slash3here.AnimationID}

Put this where every it loops to pick a new random

local animationid = ANIMS[math.random(1,3)]

1 comment

0

epic

This discussion is preserved as it was. New answers, comments, and votes are closed.