I have been trying all kinds of different code to get the leaderboard to compare the infamy from the killer to the guy that died.
but nothing I have tried is working.
right now I have 3 tabs.
kills, deaths, and infamy
when someone kills someone the program should compare the killers infamy with the one whom died and compare it to his own.
if the infamy.value is 0 it will add 100
if the infiny.value is less than the one who died it should take the infamy value from the one who died and times it by .5 and add that figure to the killers infamy.
but nothing is working. I cant figure out how to get the if statement to looking the other persons stats.
can someone help me please. this is the code that I am playing around with.
print("LinkedLeaderboard script version 5.00 loaded")
stands = {}
CTF_mode = false
function onHumanoidDied(humanoid, player)
local stats = player:findFirstChild("leaderstats")
if stats ~= nil then
local deaths = stats:findFirstChild("Deaths")
deaths.Value = deaths.Value + 1
-- 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:findFirstChild("leaderstats")
if stats ~= nil then
local kills = stats:findFirstChild("Kills")
local infamy = stats:findFirstChild ("Infamy")
if killer ~= player then
kills.Value = kills.Value + 1
local upgrade = player:findFirstChild("leaderstats")
local increase = upgrade.stats:findFirstChild ("Infamy")
if infamy.Value < increase or infamy.Value == 0 then
infamy.Value = infamy.Value + 100
else
infamy.Value = ((increase* .5)+ infamy.Value)
end
else
kills.Value = kills.Value - 1
end
end
end
end
-----------------------------------------------
function findAllFlagStands(root)
local c = root:children()
for i=1,#c do
if (c[i].className == "Model" or c[i].className == "Part") then
findAllFlagStands(c[i])
end
if (c[i].className == "FlagStand") then
table.insert(stands, c[i])
end
end
end
function hookUpListeners()
for i=1,#stands do
stands[i].FlagCaptured:connect(onCaptureScored)
end
end
function onPlayerEntered(newPlayer)
if CTF_mode == true then
local stats = Instance.new("IntValue")
stats.Name = "leaderstats"
local captures = Instance.new("IntValue")
captures.Name = "Captures"
captures.Value = 0
captures.Parent = stats
while true do
if newPlayer.Character ~= nil then break end
wait(5)
end
stats.Parent = newPlayer
else
local stats = Instance.new("IntValue")
stats.Name = "leaderstats"
local kills = Instance.new("IntValue")
kills.Name = "Kills"
kills.Value = 0
local deaths = Instance.new("IntValue")
deaths.Name = "Deaths"
deaths.Value = 0
local infamy = Instance.new("IntValue")
infamy.Name = "Infamy"
infamy.Value = 0
kills.Parent = stats
deaths.Parent = stats
infamy.Parent = stats
while true do
if newPlayer.Character ~= nil then break end
wait(5)
end
local humanoid = newPlayer.Character.Humanoid
humanoid.Died:connect(function() onHumanoidDied(humanoid, newPlayer) end )
-- start to listen for new humanoid
newPlayer.Changed:connect(function(property) onPlayerRespawn(property, newPlayer) end )
stats.Parent = newPlayer
end
end
function onCaptureScored(player)
local ls = player:findFirstChild("leaderstats")
if ls == nil then return end
local caps = ls:findFirstChild("Captures")
if caps == nil then return end
caps.Value = caps.Value + 1
end
findAllFlagStands(game.Workspace)
hookUpListeners()
if (#stands > 0) then CTF_mode = true end
game.Players.ChildAdded:connect(onPlayerEntered)

1 comment
at the same time , i just added a few more tabs, Experience, class, gold, and silver, but only 4 of them show up. How can i get all of them to show and move them around the way i want? I have been looking on the intenet all day with no results.