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?
