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

Leaderboard script needs editing, can anyone help?

Asked by 6 years ago
function onPlayerEntered(newPlayer)
  local stats = Instance.new("IntValue")
  stats.Name = "leaderstats"
  local kills = Instance.new("IntValue")
  kills.Name = "KOs"e
  kills.Value = 0
  local deaths = Instance.new("IntValue")
  deaths.Name = "Wipeouts"
  deaths.Value = 0
  kills.Parent = stats
  deaths.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 )
  newPlayer.Changed:connect(function(property) onPlayerRespawn(property, newPlayer) end )
  stats.Parent = newPlayer
end
function Send_DB_Event_Died(victim, killer)
  local killername = "no one"
  if killer ~= nil then killername = killer.Name end
  if shared["deaths"] ~= nil then
    shared["deaths"](victim, killer)
  end
end
function Send_DB_Event_Kill(killer, victim)
  if shared["kills"] ~= nil then
    shared["kills"](killer, victim)
  end
end
function onHumanoidDied(humanoid, player)
  local stats = player:findFirstChild("leaderstats")
  if stats ~= nil then
    local deaths = stats:findFirstChild("Wipeouts")
    deaths.Value = deaths.Value + 1
    local killer = getKillerOfHumanoidIfStillInGame(humanoid)
    Send_DB_Event_Died(player, killer)
    handleKillCount(humanoid, player)
  end
end
function onPlayerRespawn(property, player)
  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)
  local tag = humanoid:findFirstChild("creator")
  if tag ~= nil then
    local killer = tag.Value
    if killer.Parent ~= nil then
      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("KOs")
      if killer ~= player then
        kills.Value = kills.Value + 1
      else
        kills.Value = kills.Value - 1
      end
      Send_DB_Event_Kill(killer, player)
    end
  end
end
game.Players.ChildAdded:connect(onPlayerEntered)

That is the part of the script that gets the Ko's and Wo's

game.Players.PlayerAdded:connect(function(P)
repeat wait() until P:findFirstChild("leaderstats")
  local Rank = Instance.new("StringValue", P.leaderstats)
  Rank.Name = "Rank"
  Rank.Value = P:GetRoleInGroup(2728504)
  end)

This part gets the Rank from the group, due to the group system people not inside the group will appear as "Guest", I need to know if it's possible to change this and if so how. On top of that, I'm trying to add a new section to the leaderboard called "Regiment". It would need to display "7th Regiment" if inside a main group but not sub one and if in the sub one also it would display "1st Regiment". If you don't understand what I mean please comment.

1 answer

Log in to vote
0
Answered by
Sir_Melio 221 Moderation Voter
6 years ago
Edited 6 years ago
game.Players.PlayerAdded:Connect(function(P)
    local Rank, Reg = Instance.new("StringValue"), Instance.new("StringValue")
    Rank.Name = "Rank"
    local Role = P:GetRoleInGroup(2728504)
    Rank.Value = Role == "Guest" and "GuestNameReplacement" or Role -- Change "GuestNameReplacement" only.
    Rank.Parent = P:WaitForChild("leaderstats")

    Reg.Name = "Regiment"
    Reg.Value = P:IsInGroup(subGroupId) and "1st Regiment" or "7th Regiment" -- Change subGroupId (to a GroupId/number) only.
    Reg.Parent = P.leaderstats
end)

Notes:

It is recommended to edit the properties before you set the Parent, it is more efficient. Ternary operators were used in this script. (They're not needed.) WaitForChild is more efficient than the method you provided.

Ad

Answer this question