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

Leaderboard trouble. Help?

Asked by 9 years ago

(Disclaimer) The Value points, is the child of player, not leaderstats.

function onHumanoidDied(humanoid, player)
local stats = player
if stats ~= nil then
    local deaths = stats:findFirstChild("Points")
    if deaths then
        deaths.Value = deaths.Value - 10
    end
    -- do short dance to try and find the killer

    local killer = getKillerOfHumanoidIfStillInGame(humanoid)

    handleKillCount(humanoid, player)
end
end

function onPlayerRespawn(property, player)
-- need to connect to new humanoid

if property == "Character" and player.Character ~= nil then
    local humanoid = player.Character.Humanoid
        local p = player
        local h = humanoid
        humanoid.Died:connect(function() onHumanoidDied(h, p) end )
end
end

function getKillerOfHumanoidIfStillInGame(humanoid)
-- returns the player object that killed this humanoid
-- returns nil if the killer is no longer in the game

-- check for kill tag on humanoid - may be more than one - todo: deal with this
local tag = humanoid:findFirstChild("creator")

-- find player with name on tag
if tag ~= nil then

    local killer = tag.Value
    if killer.Parent ~= nil then -- killer still in game
        return killer
    end
end

return nil
end

function handleKillCount(humanoid, player)
local killer = getKillerOfHumanoidIfStillInGame(humanoid)
if killer ~= nil then
    local stats = killer
    if stats ~= nil then
        local kills = stats:findFirstChild("Points")
        if kills then
            if killer ~= player then
                kills.Value = kills.Value + 10  
            else
                kills.Value = kills.Value - 10
            end
        else
            return
        end
    end
end
end

nothing appears in script analysis or output

1
But what is wrong with the script? xuefei123 214 — 9y

Answer this question