r=game:service("\082\117\110\083\101\114\118\105\099\101")local J=10 local p=18 local A=36 sword=script.Parent.Handle Tool=script.Parent local G=Instance.new("\083\111\117\110\100")G.SoundId="\114\098\120\097\115\115\101\116\058\047\047\115\111\117\110\100\115\092\115\119\111\114\100\115\108\097\115\104\046\119\097\118"G.Parent=sword G.Volume=.7 local W=Instance.new("\083\111\117\110\100")W.SoundId="\114\098\120\097\115\115\101\116\058\047\047\115\111\117\110\100\115\092\115\119\111\114\100\108\117\110\103\101\046\119\097\118"W.Parent=sword W.Volume=.6 local Q=Instance.new("\083\111\117\110\100")Q.SoundId="\114\098\120\097\115\115\101\116\058\047\047\115\111\117\110\100\115\092\117\110\115\104\101\097\116\104\046\119\097\118"Q.Parent=sword Q.Volume=1 function windforce(J,p)if p.Parent:FindFirstChild("\070\111\114\099\101\070\105\101\108\100")~=nil then return end if p:FindFirstChild("\087\105\110\100\069\102\102\101\099\116")==nil then local A=Instance.new("\066\111\100\121\086\101\108\111\099\105\116\121")A.Name="\087\105\110\100\069\102\102\101\099\116"A.maxForce=Vector3.new(10000000.0,10000000.0,10000000.0)A.P=125 A.velocity=J*150+Vector3.new(0,30,0)A.Parent=p game.Debris:AddItem(A,.25)end end function blow(p)local A=p.Parent:findFirstChild("\072\117\109\097\110\111\105\100")local G=Tool.Parent local W=game.Players:playerFromCharacter(G)local Q=G:findFirstChild("\072\117\109\097\110\111\105\100")if A~=nil and(A~=Q and Q~=nil)then local Q=G:FindFirstChild("\082\105\103\104\116 \065\114\109")if Q~=nil then local H=Q:FindFirstChild("\082\105\103\104\116\071\114\105\112")if H~=nil and(H.Part0==sword or H.Part1==sword)then tagHumanoid(A,W)A:TakeDamage(J)local Q=G.Torso.CFrame.lookVector windforce(Vector3.new(Q.x,Q.y,Q.z),p.Parent.Torso)end end end end function tagHumanoid(J,p)local A=Instance.new("\079\098\106\101\099\116\086\097\108\117\101")A.Value=p A.Name="\099\114\101\097\116\111\114"A.Parent=J game.Debris:AddItem(A,1)end function untagHumanoid(J)if J~=nil then local p=J:findFirstChild("\099\114\101\097\116\111\114")if p~=nil then p.Parent=nil end end end function attack()J=p G:play()local A=Instance.new("\083\116\114\105\110\103\086\097\108\117\101")A.Name="\116\111\111\108\097\110\105\109"A.Value="\083\108\097\115\104"A.Parent=Tool end function lunge()J=A W:play()local G=Instance.new("\083\116\114\105\110\103\086\097\108\117\101")G.Name="\116\111\111\108\097\110\105\109"G.Value="\076\117\110\103\101"G.Parent=Tool force=Instance.new("\066\111\100\121\086\101\108\111\099\105\116\121")force.velocity=Vector3.new(0,10,0)force.maxForce=Vector3.new(0,4000,0)force.Parent=Tool.Parent.Torso wait(.25)swordOut()wait(.25)force.Parent=nil wait(.5)swordUp()J=p 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 function swordAcross() end Tool.Enabled=true local H=0 function onActivated()if not Tool.Enabled then return end Tool.Enabled=false local J=Tool.Parent local p=J.Humanoid if p==nil then print("\072\117\109\097\110\111\105\100 \110\111\116 \102\111\117\110\100")return end t=r.Stepped:wait()if t-H<.2 then lunge()else attack()end H=t Tool.Enabled=true end function onEquipped()Q:play()end script.Parent.Activated:connect(onActivated)script.Parent.Equipped:connect(onEquipped)connection=sword.Touched:connect(blow)


r = game:service("RunService")


local damage = 10


local slash_damage = 18
local lunge_damage = 36

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


local SlashSound = Instance.new("Sound")
SlashSound.SoundId = "rbxasset://sounds\\swordslash.wav"
SlashSound.Parent = sword
SlashSound.Volume = .7

local LungeSound = Instance.new("Sound")
LungeSound.SoundId = "rbxasset://sounds\\swordlunge.wav"
LungeSound.Parent = sword
LungeSound.Volume = .6

local UnsheathSound = Instance.new("Sound")
UnsheathSound.SoundId = "rbxasset://sounds\\unsheath.wav"
UnsheathSound.Parent = sword
UnsheathSound.Volume = 1


function windforce(dir, victimTorso)
	if (victimTorso.Parent:FindFirstChild("ForceField") ~= nil) then return end
	if victimTorso:FindFirstChild("WindEffect") == nil then
		local force = Instance.new("BodyVelocity")
		force.Name = "WindEffect"
		force.maxForce = Vector3.new(1e7, 1e7, 1e7)
		force.P = 125
		force.velocity =  (dir * 150) + Vector3.new(0, 30,0)
		force.Parent = victimTorso


		game.Debris:AddItem(force, .25)

	
	end
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
				tagHumanoid(humanoid, vPlayer)
				humanoid:TakeDamage(damage)
				local d = vCharacter.Torso.CFrame.lookVector
				windforce(Vector3.new(d.x, d.y, d.z), hit.Parent.Torso)
			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
	game.Debris:AddItem(creator_tag, 1)
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 lunge()
	damage = lunge_damage

	LungeSound:play()

	local anim = Instance.new("StringValue")
	anim.Name = "toolanim"
	anim.Value = "Lunge"
	anim.Parent = Tool
	
	
	force = Instance.new("BodyVelocity")
force.velocity = Vector3.new(0,10,0) 
force.maxForce = Vector3.new(0,4000,0)
force.Parent = Tool.Parent.Torso
	wait(.25)
	swordOut()
	wait(.25)
	force.Parent = nil
	wait(.5)
	swordUp()

	damage = slash_damage
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

function swordAcross()
	-- parry
end


Tool.Enabled = true
local last_attack = 0
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

	t = r.Stepped:wait()

	if (t - last_attack < .2) then
		lunge()
	else
		attack()
	end

	last_attack = t

	--wait(.5)

	Tool.Enabled = true
end


function onEquipped()
	UnsheathSound:play()
end


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


connection = sword.Touched:connect(blow)


