Roblox, kullanıcıların puanları, para birimi veya bir yarışta en hızlı zaman gibi bilgileri göstermenizi sağ eden lider tablosu sistemi ile geliyor.
Lider Listesi Oluşturuluyor
Lider tablosunu ayarlamak ve oyuncuları deneyime girdiğinde eklemek için:
Yeni bir Script oluşturun ServerScriptService içinde ve ismini Leaderboard yapın.
İskilde, bir işlevi PlayerAdded etkinliğine bağlayın.
local Players = game:GetService("Players")local function leaderboardSetup(player)end-- LeaderboardSetup() işlevini "PlayerAdded" etkinliğine bağlaPlayers.PlayerAdded:Connect(leaderboardSetup)Bağlantılı işlevin içinde, yeni bir Folder durumoluştur, ismini leaderstats ve ebeveynini oyuncuya at.
local Players = game:GetService("Players")local function leaderboardSetup(player)local leaderstats = Instance.new("Folder")leaderstats.Name = "leaderstats"leaderstats.Parent = playerend-- LeaderboardSetup() işlevini "PlayerAdded" etkinliğine bağlaPlayers.PlayerAdded:Connect(leaderboardSetup)
İstatistikler Ekleme
Lider tabloları, oyuncu istatistiklerini depolmak ve göstermek için değer tipi objeleri kullanır. Bu kript bir sayının altınını gösterir, bir sayının bir değiştirici olarak kullanılabilir.
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() işlevini "PlayerAdded" etkinliğine bağla
Players.PlayerAdded:Connect(leaderboardSetup)
Bu satırlar takip edilenyapar:
Bir IntValue instansı oluşturulur.
İн스턴스'ın Name ı "Gold" olarak ayarlandı. Bu, istatistiklerin liderlik tablosunasıl görüneceğini gösteren aynı şekilde ayarlanır.
İstatistik'in ilk Value``0 olarak ayarlandı. Bu, istediğiniz herhangi bir değeri, hatta bir veri depolarında depolanmış bir değeri içerebilir.
Instan스, leaderstats klasmanına eklenen leaderstats liderlik tablosubağlıdır. Bir oyuncu deneyime girdiğinde, ismi tahtada görünür.
İstatistikleri Güncelliyor
Bir oyuncunun lider tablosu istatistikini güncelleme için, o istatistik içindeki Value özelliğini leaderstats dizinindeki Script ile bir takıp nesneye bağlayabilirsiniz. Örneğin, oyuncunun topladığı 2>Altın2> değerini artırmak için 5>Class.Script5>
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
-- Toplama'yı yok et
goldChunk:Destroy()
-- oyunculider tablosu stat'ını güncelle
goldStat.Value += 10
end
end
goldChunk.Touched:Connect(onPartTouch)
İstatistikleri Sıralama
Bir liderlik tablosuistatistiklerin sırasını kontrol etmenin üç yolu vardır:
- Görünmesini istediğiniz sırayla istatistikleri ekleyin.
- Bir çocuk BoolValue adında IsPrimary stat'ı ekleyin ve değerini true olarak ayarlayın, böylece stat'ı liderlik tablosuilk sıraya yerleştirin.
- Bir çocuk ekleyin Class.NumberValue``Priority İstatistik'e isimlendirilmiş Değer İstatistik'e bir sayı olarak ayarlanır. İstatistiklerin bir önceliği yoksa, önceliksiz sayıların varsayılan önceliği 0'dır.
Bu kod örneği, bir istatistikte bir IsPrimary değeri nasıl ekleyeceğinizi gösterir:
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)
Lider Listesini Gizleme
liderlik tablosugizlemek, menü ekranında veya bir cutscene sırasında gibi, LocalScript ile içine yerleştir. StarterGui veya StarterPlayerScripts ile, 2> Class.StarterGui:SetCoreGuiEnabled()|StarterGui2> içinde bir çağrı yer alan.
local StarterGui = game:GetService("StarterGui")StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)