Roblox에는 사용자 정보를 표시하는 내장 순위표 시스템 이 있으며, 이를 통해 점수, 통화 또는 레이스에서 가장 빠른 시간과 같은 사용자 정보를 표시할 수 있습니다.
순위표 설정
순위표를 설정하고 플레이어가 경험에 들어갈 때 추가하려면:
새로운 Script 를 ServerScriptService 내에서 생성하고 이름을 Leaderboard 로 지정합니다.
스크립트에서 함수를 PlayerAdded 이벤트에 연결합니다.
local Players = game:GetService("Players")local function leaderboardSetup(player)end-- leaderboardSetup() 함수를 "PlayerAdded" 이벤트에 연결하십시오Players.PlayerAdded:Connect(leaderboardSetup)연결된 함수 내에서 새로운 Folder 인스턴스를 생성하고, 이름을 leaderstats로 지정하고 플레이어에게 부모로 지정합니다.
local Players = game:GetService("Players")local function leaderboardSetup(player)local leaderstats = Instance.new("Folder")leaderstats.Name = "leaderstats"leaderstats.Parent = playerend-- leaderboardSetup() 함수를 "PlayerAdded" 이벤트에 연결하십시오Players.PlayerAdded:Connect(leaderboardSetup)
통계 추가
순위 표에는 값 유형 개체 를 사용하여 플레이어 통계를 저장하고 표시합니다. 이 스크립트는 정수를 사용하는 IntValue 를 사용하여 플레이어의 골드를 표시합니다.
In the leaderboardSetup() function, add lines 8 through 11:
local Players = game:GetService("Players")
local function leaderboardSetup(player)
local leaderstats = Instance.new("Folder")
leaderstats.Name = "leaderstats"
leaderstats.Parent = player
local gold = Instance.new("IntValue")
gold.Name = "Gold"
gold.Value = 0
gold.Parent = leaderstats
end
-- leaderboardSetup() 함수를 "PlayerAdded" 이벤트에 연결하십시오
Players.PlayerAdded:Connect(leaderboardSetup)
이 줄은 팔로잉수행합니다.
Class.IntValue 인스턴스가 생성됩니다.
인스턴스의 Name 는 "Gold"로 설정됩니다. 이것은 통계가 리더보드표시되는 방법입니다.
통계의 초기 값 Value는 0로 설정됩니다. 이 값은 지정한 값을 포함하여 데이터 스토어에 저장된 모든 값에 설정될 수 있습니다. 지속적인 순위표를 구현하는 경우 데이터 스토어에 저장된 값을 포함한 모든 값을 설정할 수 있습니다.
인스턴스는 리더보드에 추가하는 leaderstats 폴더에 부모로 지정됩니다. 플레이어가 경험에 들어갈 때, 그들의 이름이 보드에 표시됩니다.
통계 업데이트
플레이어의 순위표 통계를 업데이트하려면 해당 통계의 Value 속성을 그들의 leaderstats 폴더 내에서 변경하십시오. 예를 들어, 다음 Script 를 모든 픽업 개체에 부착하여 플레이어가 수집하는 2>황금2> 통계를 증
local Players = game:GetService("Players")
local goldChunk = script.Parent
local function onPartTouch(otherPart)
local partParent = otherPart.Parent
local player = Players:GetPlayerFromCharacter(partParent)
local leaderstats = player and player:FindFirstChild("leaderstats")
local goldStat = leaderstats and leaderstats:FindFirstChild("Gold")
if goldStat then
-- 픽업 파괴
goldChunk:Destroy()
-- 플레이어의 순위표 통계를 업데이트
goldStat.Value += 10
end
end
goldChunk.Touched:Connect(onPartTouch)
통계 주문
리더보드통계 순서를 제어하는 세 가지 방법이 있습니다.
- 원하는 순서로 통계를 추가합니다.
- 자식 BoolValue 이름의 아이를 스텟에 추가하고 값을 IsPrimary로 설정하여 리더보드첫 번째로 스텟을 배치하십시오.
- 자식 NumberValue 이라는 이름의 Priority 스탯에 추가하고 값을 정수로 설정합니다. 더 높은 우선 순위 값은 리더보드맨 앞에 나타납니다. 우선 순위가 없는 스탯은 기본 우선 순위 0을 가집니다.
이 코드 샘플은 stat에 IsPrimary 값을 추가하는 방법을 보여줍니다.
local Players = game:GetService("Players")
local function leaderboardSetup(player)
local leaderstats = Instance.new("Folder")
leaderstats.Name = "leaderstats"
leaderstats.Parent = player
local gold = Instance.new("IntValue")
gold.Name = "Gold"
gold.Value = 0
gold.Parent = leaderstats
local isPrimary = Instance.new("BoolValue")
isPrimary.Name = "IsPrimary"
isPrimary.Value = true
isPrimary.Parent = gold
end
Players.PlayerAdded:Connect(leaderboardSetup)
순위 표시 숨기기
메뉴 화면이나 절단 시네마에 있는 리더보드를 숨기려면 LocalScript 를 StarterGui 또는 StarterPlayerScripts 안에 배치하십시오. 1> Class.StarterGui:SetCoreGuiEnabled()|StarterGui1> 에 대한 호출이 있습니다.
local StarterGui = game:GetService("StarterGui")StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)