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

Can You Guys Help Me Check If I Made Some Error Mistakes?

Asked by
ImfaoXD 158
8 years ago

Can you guys help me? I try to get rid of the Wipe Outs from the leader board and everything works just fine. But I just need you guys to check if I did it correctly or not. Thank you for your time!

print("Give KOs & Points For Free!")



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:findFirstChild("leaderstats")
        if stats ~= nil then
            local kills = stats:findFirstChild("KO's")
            local earn = stats:findFirstChild("Points")
            if killer ~= player then
                kills.Value = kills.Value + 1
                earn.Value = earn.Value + 100

            else
                kills.Value = kills.Value - 1
                earn.Value = earn.Value - 0

            end
        end
    end
end


-----------------------------------------------


function Entered(player)

      if player:findFirstChild("leaderstats") ~= nil then
            player.leaderstats:remove()
      end

      stats = Instance.new("IntValue")
      stats.Parent = player
      stats.Name = "leaderstats"

        local kills = Instance.new("IntValue")
        kills.Name = "KO's"
        kills.Value = 0

        kills.Parent = stats

      money = Instance.new("IntValue")
      money.Parent = stats
      money.Name = "Points"
      money.Value = 0 --How much you start out with change it to how much you want

        -- VERY UGLY HACK
        -- Will this leak threads?
        -- Is the problem even what I think it is (player arrived before character)?
        while true do
            if player.Character ~= nil then break end
            wait(5)
        end

        local humanoid = player.Character.Humanoid

        humanoid.Died:connect(function() onHumanoidDied(humanoid, player) end )

        -- start to listen for new humanoid
        player.Changed:connect(function(property) onPlayerRespawn(property, player) end )


        stats.Parent = player

end


game.Players.PlayerAdded:connect(Entered)

c = game.Players:GetChildren()
for i=1, #c do
        Entered(c[i])
end

0
Well if you've found this script and it works fine, why are you posting this? PredNova 130 — 8y
0
@ImfaoXD Why can't you use the output like the average user on this site?!? UserOnly20Characters 890 — 8y

Answer this question