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

Can someone help me with the classic SwordScript?

So I'm making a game like Hello Neighbor and I made the Hammer to break the boards already but the problem is, I used the delete tool and it has the SwordScript for the swing animation. The problem is, I can't find where it plays the Animation and I wanna change it to something else. Could someone please help me fix this? Thanks so much!

Here's the Script:

-------- OMG HAX

r = game:service("RunService")


local damage = 3


local slash_damage = 6


sword = script.Parent.Handle
Tool = script.Parent


local SlashSound = Instance.new("Sound")
SlashSound.SoundId = "http://www.roblox.com/Asset/?ID=12135982"
SlashSound.Parent = sword
SlashSound.Volume = .7

function isTurbo(character)
	return character:FindFirstChild("PaperHat") ~= nil
end


function blow(hit)
	local humanoid = hit.Parent:findFirstChild("Humanoid")
	local vCharacter = Tool.Parent
	local vPlayer = game.Players:playerFromCharacter(vCharacter)
	local hum = vCharacter:findFirstChild("Humanoid") -- non-nil if tool held by a character
	if humanoid~=nil and humanoid ~= hum and hum ~= nil then
		-- final check, make sure sword is in-hand

		local right_arm = vCharacter:FindFirstChild("Right Arm")
		if (right_arm ~= nil) then
			local joint = right_arm:FindFirstChild("RightGrip")
			if (joint ~= nil and (joint.Part0 == sword or joint.Part1 == sword)) then
				local d = damage
				if (isTurbo(vCharacter) == true) then d = d * 2.5 end
				tagHumanoid(humanoid, vPlayer)
				humanoid:TakeDamage(d)
				wait(1)
				untagHumanoid(humanoid)
			end
		end


	end
end


function tagHumanoid(humanoid, player)
	local creator_tag = Instance.new("ObjectValue")
	creator_tag.Value = player
	creator_tag.Name = "creator"
	creator_tag.Parent = humanoid
end

function untagHumanoid(humanoid)
	if humanoid ~= nil then
		local tag = humanoid:findFirstChild("creator")
		if tag ~= nil then
			tag.Parent = nil
		end
	end
end


function attack()
	damage = slash_damage
	SlashSound:play()
	local anim = Instance.new("StringValue")
	anim.Name = "toolanim"
	anim.Value = "Slash"
	anim.Parent = Tool
end


function swordUp()
	Tool.GripForward = Vector3.new(-1,0,0)
	Tool.GripRight = Vector3.new(0,1,0)
	Tool.GripUp = Vector3.new(0,0,1)
end

function swordOut()
	Tool.GripForward = Vector3.new(0,0,1)
	Tool.GripRight = Vector3.new(0,-1,0)
	Tool.GripUp = Vector3.new(-1,0,0)
end



Tool.Enabled = true

function onActivated()

	if not Tool.Enabled then
		return
	end

	Tool.Enabled = false

	local character = Tool.Parent;
	local humanoid = character.Humanoid
	if humanoid == nil then
		print("Humanoid not found")
		return 
	end

	

	attack()

	wait(.4)

	Tool.Enabled = true
end


function onEquipped()
	SlashSound:play()
end


script.Parent.Activated:connect(onActivated)
script.Parent.Equipped:connect(onEquipped)


connection = sword.Touched:connect(blow)



1 answer

Delete the sword script. Insert Animation into the tool. Then insert a local script into the tool. Insert a bool value in the tool and name it Swinging.and put this in the local script:

player = game.Players.LocalPlayer
repeat wait(0.001) until player.Character
character = player.Character
CanSwing = true
local swinging = script.Parent.Swinging
swinging.Value = false

animation = character.Humanoid:LoadAnimation(script.Parent.SwordSwing)

script.Parent.Activated:connect(function()
	if CanSwing == true then
		CanSwing = false
		swinging.Value = true
		animation:Play()
		wait(1.7)
		CanSwing = true
		swinging.Value = false
	end
end)

Insert a normal script into handle and put:

wait(2)
CanDamage = true


script.Parent.Touched:connect(function(part)
	local hum = part.Parent:FindFirstChild("Humanoid")
	if hum then
		if hum.Parent.Name ~= script.Parent.Parent.Parent.Name and CanDamage == true and script.Parent.Parent.Swinging.Value == true then
			CanDamage = false			
			hum:TakeDamage(25) --Change 25 to how much damage you want.
			wait(1.7)
			CanDamage = true
		end
	end
end)

1 comment

0

If you wanna add your own animation then you will have to do this because the Sword Script you were look through doesn't have an Asset id to change for the animation. It creates the animation inside the script.

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