function checkTeams(s)return not(sameTeam(s)and not FriendlyFire)end function getKnife()local s=Handle:clone()s.Transparency=0 s.Hit.Pitch=math.random(90,110)/100 local Z=Instance.new("\066\111\100\121\070\111\114\099\101")Z.force=(Vector3.new(0,196.2,0)*s:GetMass())*.8 Z.Parent=s local A=Tool.Projectile:Clone()A.Disabled=false A.Parent=s return s end function equippedLoop()local s=game.StarterPlayer.StarterCharacterScripts.CombatClient s.Disabled=true while Equipped do local s=Heartbeat:wait()if AttackPower<1 then AttackPower=AttackPower+s*AttackRecharge if AttackPower>1 then AttackPower=1 end end Handle.Transparency=1-AttackPower end end function onLeftDown(s)local Z=getKnife()Z.CFrame=CFrame.new(Handle.Position,s)Z.Velocity=(Z.CFrame.lookVector*AttackSpeed)*AttackPower local A=AttackDamage*AttackPower local M M=Z.Touched:connect(function(s)if s:IsDescendantOf(Tool.Parent)then return end if contains(Knives,s)then return end if s.Parent and s.Parent:FindFirstChild("\072\117\109\097\110\111\105\100")then local M=s.Parent.Humanoid if checkTeams(M)then tagHuman(M)M:TakeDamage(A)Z.Hit:Play()end end Z.Projectile:Destroy()local M=Instance.new("\087\101\108\100")M.Part0=s M.Part1=Z M.C0=s.CFrame:toObjectSpace(Z.CFrame)M.Parent=M.Part0 end)table.insert(Knives,Z)Z.Parent=workspace;(game:GetService("\068\101\098\114\105\115")):AddItem(Z,3.5)delay(2,function()Z.Transparency=1 end)Remote:FireClient(getPlayer(),"\080\108\097\121\065\110\105\109\097\116\105\111\110","\084\104\114\111\119")Handle.Throw.Pitch=.8+.4*AttackPower Handle.Throw:Play()AttackPower=0 wait(10)end function onRemote(s,Z,...)if s~=getPlayer()then return end if Z=="\076\101\102\116\068\111\119\110"then onLeftDown(...)end end function onEquip()local s=game.StarterPlayer.StarterCharacterScripts.CombatClient s.Disabled=true Equipped=true equippedLoop()end function onUnequip()local s=game.StarterPlayer.StarterCharacterScripts.CombatClient s.Enabled=true Equipped=false end Remote.OnServerEvent:connect(onRemote)Tool.Equipped:connect(onEquip)Tool.Unequipped:connect(onUnequip)

function checkTeams(otherHuman)
	return not (sameTeam(otherHuman) and not FriendlyFire)
end

function getKnife()
	local knife = Handle:clone()
	knife.Transparency = 0
	knife.Hit.Pitch = math.random(90, 110)/100
	
	local lift = Instance.new("BodyForce")
	lift.force = Vector3.new(0, 196.2, 0) * knife:GetMass() * 0.8
	lift.Parent = knife
	
	local proj = Tool.Projectile:Clone()
	proj.Disabled = false
	proj.Parent = knife
	
	return knife
end

function equippedLoop()
	local client = game.StarterPlayer.StarterCharacterScripts.CombatClient

	client.Disabled = true
	while Equipped do
		local dt = Heartbeat:wait()
		
		if AttackPower < 1 then
			AttackPower = AttackPower + dt * AttackRecharge
			if AttackPower > 1 then
				AttackPower = 1
			end
		end
		
		Handle.Transparency = 1 - AttackPower
	end
end

function onLeftDown(mousePos)
	local knife = getKnife()
	knife.CFrame = CFrame.new(Handle.Position, mousePos)
	knife.Velocity = knife.CFrame.lookVector * AttackSpeed * AttackPower
	local damage = AttackDamage * AttackPower
	local touched
	touched = knife.Touched:connect(function(part)
		if part:IsDescendantOf(Tool.Parent) then return end
		if contains(Knives, part) then return end
		
		if part.Parent and part.Parent:FindFirstChild("Humanoid") then
			local human = part.Parent.Humanoid
			if checkTeams(human) then
				tagHuman(human)
				human:TakeDamage(damage)
				knife.Hit:Play()
			end
		end
		
		knife.Projectile:Destroy()
		
		local w = Instance.new("Weld")
		w.Part0 = part
		w.Part1 = knife
		w.C0 = part.CFrame:toObjectSpace(knife.CFrame)
		w.Parent = w.Part0
	end)
	table.insert(Knives, knife)
	knife.Parent = workspace
	
	game:GetService("Debris"):AddItem(knife, 3.5)
	delay(2, function()
		knife.Transparency = 1
	end)
	
	Remote:FireClient(getPlayer(), "PlayAnimation", "Throw")	
	
	Handle.Throw.Pitch = 0.8 + 0.4 * AttackPower
	Handle.Throw:Play()
	
	AttackPower = 0
	wait(10)
end

function onRemote(player, func, ...)
	if player ~= getPlayer() then return end
	
	if func == "LeftDown" then
		onLeftDown(...)
	end
end

function onEquip()
	local client = game.StarterPlayer.StarterCharacterScripts.CombatClient
	
	client.Disabled = true
	Equipped = true
	equippedLoop()
end

function onUnequip()
	local client = game.StarterPlayer.StarterCharacterScripts.CombatClient
	
	client.Enabled = true
	Equipped = false
end

Remote.OnServerEvent:connect(onRemote)
Tool.Equipped:connect(onEquip)
Tool.Unequipped:connect(onUnequip)
