Problem: It's not doing the slash animation like the basic roblox sword is sapose to do.
r = game:service("RunService")
ching = false
sword = script.Parent.Handle
Tool = script.Parent
lowdamage = Tool.WeaponSettings.MinDamage.Value
maxdamage = Tool.WeaponSettings.MaxDamage.Value
reload = Tool.WeaponSettings.ReloadTime.Value
TotalDur =script.Parent:WaitForChild("TotalDurability")
Dur = script.Parent:WaitForChild("CurrentDurability")
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 ching == true then return end
local humanoid = hit.Parent.Stone:findFirstChild("Resistance"
)
print(tostring(humanoid))
print("1")
local vCharacter = Tool.Parent
print("2")
local vPlayer = game.Players:playerFromCharacter(vCharacter)
print("3")
local hum = vCharacter:findFirstChild("Humanoid")
print("4")
if humanoid.Value >= 1 then
print("PICK HIT")
Dur.Value = Dur.Value - 1
local damage = math.random(lowdamage,maxdamage)
print(""..damage)
humanoid.Value = humanoid.Value - damage
print("Took Damage!!")
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
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
else
attack()
end
last_attack = t
wait(reload)
Tool.Enabled = true
end
function onEquipped()
UnsheathSound:play()
end
while true do
wait(.1)
if Dur.Value <=1 then
script.Parent:Destroy()
end
end
script.Parent.Activated:connect(onActivated)
script.Parent.Equipped:connect(onEquipped)
connection = sword.Touched:connect(blow)
But It WORKS FINE FOR THIS SCRIPT
r = game:service("RunService")
ching = false
sword = script.Parent.Handle
Tool = script.Parent
lowdamage = Tool.WeaponSettings.MinDamage.Value
maxdamage = Tool.WeaponSettings.MaxDamage.Value
reload = Tool.WeaponSettings.ReloadTime.Value
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 ching == true then return end
local humanoid = hit.Parent:findFirstChild("Ore")
local vCharacter = Tool.Parent
local vPlayer = game.Players:playerFromCharacter(vCharacter)
local hum = vCharacter:findFirstChild("Humanoid")
if humanoid~=nil then
print("SWORD HIT")
tagHumanoid(humanoid, vPlayer)
local damage = math.random(lowdamage,maxdamage)
humanoid:TakeDamage(damage)
local part = Instance.new("Part")
if (damage == 0) then
part.BrickColor = BrickColor.new("Bright blue")
else
part.BrickColor = BrickColor.new("Bright red")
end
part.formFactor = "Plate"
part.Shape = "Ball"
part.TopSurface = "0"
part.BottomSurface = "0"
part.Size = Vector3.new(1, 1, 1)
part.Position = hit.Parent.Head.Position + Vector3.new(math.random(-1.6,1.6),2,math.random(-1.6,1.6))
part.Anchored = true
local m = Instance.new("Model")
part.Parent = m
m.Parent = hit.Parent
m.Name = ""..damage..""
part.Name = "Head"
local h = Instance.new("Humanoid")
h.Parent = m
local body = Instance.new("BodyPosition")
body.position = Vector3.new(0,7.85,0)
body.Parent = part
part.CanCollide = false
part.Reflectance = 0.1
part.Transparency = .99
h.MaxHealth = 0
h.Health = 0
ching = true
wait(1)
ching = false
m:remove()
wait(.1)
untagHumanoid(humanoid)
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.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(reload)
Tool.Enabled = true
end
function onEquipped()
UnsheathSound:play()
end
script.Parent.Activated:connect(onActivated)
script.Parent.Equipped:connect(onEquipped)
connection = sword.Touched:connect(blow)
