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

Why Classic Sword works in Studio but not Online Mode?

Asked by 6 years ago

I use the ROBLOX sets classic sword from Roblox Studio in my game and it works when I test it inside the Studio but not when I play in Online mode.

Here's more info: Basically there's a button in my game that clones the classic sword from the ServerStorage and places it into the user's inventory, here's that script if you need it:

function onClicked(click)
    local Inventory = click.Backpack
    local sword = game.ServerStorage.Sword
    local newsword = sword:Clone()
    newsword.Parent = Inventory
end

script.Parent.ClickDetector.MouseClick:connect(onClicked)

At first the sword did not work (It only slashed once and wouldn't anymore when I clicked) and someone help me fix the sword script by changing line 127 to:

force.Parent = Tool.Parent.HumanoidRootPart

Which made it work normally in studio but not in online mode. I also changed the script from local to a normal script because the sword was in ServerStorage and someone said local scripts in ServerStorage may work only in Solo but not online. The sword still does not work though, but I've kept it a normal script because I see no difference.

By "not work" I mean the sword doesn't slash at all when I click, it just is held by the character. If someone could please help me or just give me a model to a working sword, I've literally tried so many classic sword models it's ridiculous I can't find one that works. If you need anymore info about my scripts or the sword please say so and I'll post it.

0
What character are you using it on? R6, R15, Anthro? thextreme851 0 — 6y
0
It only works when you use R6 phxtn 154 — 6y
0
Does it work in online and studio mode if you are using R6? Cowation 50 — 6y

1 answer

Log in to vote
0
Answered by 6 years ago

WAIT!! WRONG SCRIPT!!! this is the right one xD

-------- OMG HAX

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)

Ad

Answer this question