Okay so, I am trying to script the swords where if your on a certain area, itll only kill the boss. here it is.

r = game:service("RunService")
gw=game.Workspace

z1=gw.zone1
z2=gw.zone2
z3=gw.zone3

function check2(z, t)
	local tp=t.Position
	local ap=z.Position
	local as=z.Size
	local ax=(as.x+1)/2
	local ay=(as.z+1)/2
	local ax1=ap.x-ax
	local ax2=ap.x+ax
	local ay1=ap.z-ay
	local ay2=ap.z+ay
	if tp.x>ax1 and tp.x<ax2 and tp.z>ay1 and tp.z<ay2 then
		return true
	else
		return false
	end
end

function check(t)
	if check2(z1, t) then
		return true
elseif check2(z2, t) then
		return true
elseif check2(z3, t) then
        return true
	else
		return false
	end
end

local damage = 5


local slash_damage = 10
local lunge_damage = 35

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 blow(hit)
	if (hit.Parent == nil) then return end

	local humanoid = hit.Parent:findFirstChild("bHumanoid")
	local vCharacter = Tool.Parent
	local vPlayer = game.Players:playerFromCharacter(vCharacter)
	local hum = vCharacter:findFirstChild("Humanoid")
	if humanoid~=nil and humanoid ~= hum and hum ~= nil then
	local player=game.Players:playerFromCharacter(humanoid.Parent)
		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)
				local t = hit.Parent.Torso
				if check(t) then
				for i=1,damage do
					if hum.Health<=0 then break end
					humanoid:TakeDamage(1)
				end
				wait(1)
				untagHumanoid(humanoid)
			end
			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 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) --Tool.Parent.Torso.CFrame.lookVector * 80
	force.maxForce = Vector3.new(0,4000,0)
	force.Parent = Tool.Parent.Torso
	wait(.2)
	swordOut()
	wait(.25)
	force.Parent = nil
	wait(1)
	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)



any help?