Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

Sword from Roblox set not working out of the box?

Asked by 7 years ago

Hello, I'm new to Robox Studio and trying the very first thing didn't work. I took the sword from "ROBLOX Sets", "Weapons" and dropped it on the map. Then hit "Play" and picked up the sword. That worked, but then when I click the mouse button to swing it I hear the sound but he doesn't swing the sword. I must be missing something obvious, what am I doing wrong? Thanks for any help.

0
It's an old script; those tend to break. Pyrondon 2089 — 7y

3 answers

Log in to vote
0
Answered by
JSAcela 25
7 years ago

That's weird. Try browsing through freemodels to find a sword that actually works. What you can also do is:

Click on the sword that you inserted in Roblox studio. Find it on the explorer on the right side of your screen. Then, drag it into StarterPack. Now, you will spawn with it each time and it should work. If it still doesn't work, try looking for another sword.

Ad
Log in to vote
0
Answered by 7 years ago

Just to answer my own question, it turns out this sword doesn't work with the R15 Avatar Type. I had to set the game to only allow R6 avatar type, and now the sword animation works.

Log in to vote
0
Answered by 6 years ago

Here's the working script for this problem, i had the same thing >.>

r = game:service("RunService")

local damage = 5

local slash_damage = 4 local lunge_damage = 12

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) 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)
            wait(1)
            untagHumanoid(humanoid)
        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.Parent = Tool.Parent.Torso
wait(.1)
swordOut()
wait(.1)
force.Parent = nil
wait(.2)
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)

Answer this question