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

Why doesn't my point script work for custom sword?

Asked by 7 years ago

I'm making a sword that once you kill someone with it you receive points. For some reason it only works with linked swords and not my custom sword. Please help, thank you!

Sword code, Located in the blade of the sword: Local script

wait(0.01)
local CanDamage = true
local plr = game.Players.LocalPlayer

local function tagHumanoid(humanoid, player)
    local creator_tag = Instance.new("ObjectValue")
    creator_tag.Value = player
    creator_tag.Name = "creator"
    creator_tag.Parent = humanoid
end

local function untagHumanoid(humanoid)
    if humanoid ~= nil then
        local tag = humanoid:FindFirstChild("creator")
        if tag ~= nil then
            tag.Parent = nil
        end
    end
end

while true do
    wait(0.01)
    script.Parent.Touched:connect(function(hum) 
        if hum and hum.Parent:FindFirstChild("Humanoid") then 
            if CanDamage == true then
                tagHumanoid(hum, plr)
                CanDamage = false
                hum.Parent.Humanoid:TakeDamage(10) 
                plr.swordlvl.Value = plr.swordlvl.Value + 2
                wait(0.8)
                untagHumanoid(hum)
                CanDamage = true
            end
        end
    end)
end

Point giver script, Located in workspace: Script:

game.Players.PlayerAdded:connect(function(p)
     p.CharacterAdded:connect(function(c) 
        c.Humanoid.Died:connect(function() 
            local cv = c.Humanoid:findFirstChild("creator") 
            if cv then local k = cv.Value 
                if k and  k ~= p then 
                    k.leaderstats.Bounty.Value = k.leaderstats.Bounty.Value+150
                end 
            end
        end)
    end)
 end)

Leaderboard script, Located in ServerScriptService (just in case this is needed): Script:

function playerAdded(plr)

    local stats = Instance.new("IntValue", plr)
    stats.Name = "leaderstats"

    local bounty = Instance.new("IntValue", stats)
    bounty.Name = "Bounty"
    bounty.Value = 0

    local level = Instance.new("IntValue", stats)
    level.Name = "Level"
    level.Value = 1

    local exp = Instance.new("IntValue", plr)
    exp.Name = "exp"
    exp.Value = 0


    local money = Instance.new("IntValue", stats)
    money.Name = "Gold"
    money.Value = 0


    local max = Instance.new("IntValue", plr)
    max.Name = "maxexp"
    max.Value = 5

    local swordlvl = Instance.new("IntValue", plr)
    swordlvl.Name = "swordlvl"
    swordlvl.Value = 0

    local swordlvlmain = Instance.new("IntValue", plr)
    swordlvlmain.Name = "swordlvlmain"
    swordlvlmain.Value = 0

    local swordlvlmax = Instance.new("IntValue", plr)
    swordlvlmax.Name = "swordlvlmax"
    swordlvlmax.Value = 5

end

game.Players.PlayerAdded:connect(playerAdded)

Soooo sorry for the long post :(

Answer this question