Lider tablosunu kodla

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Oyun içinde, oyuncunun görmesi gereken eşyalar gibi görünen önemli istatistikleri olacak.Bu sayılar bir liderlik tablosukullanılarak gösterilecektir. Lider tabloları Roblox'un etkinleştirilmesi ve özelleştirilmesi gereken bir kod gerektiren yerleşik özelliklerdir.

liderlik tablosuayarla

Bir oyuncu deneyime eklenirse, bireysel istatistikleri izlemek için kodla birlikte lider tablosuna eklenmesi gerekir.

  1. Araştırmada, Sunucu Kodu Hizmeti altında yeni bir senaryo oluşturun PlayerSetup adlı yeni bir senaryo oluşturun.Bu senaryoda, merhaba dünya satırını sil ve açıklayıcı bir yorum yaz.

  2. yorumsonra, oyuncuya katılma adlı özel bir işlev oluştur ve oyuncu adında bir parametre ile adlandır.


    -- Oyuncu değişkenlerini gösteren bir lider tablosu oluşturur
    local function onPlayerJoin(player)
    end
  3. In onPlayerJoin , leaderstats adlı bir değişken oluştur ve yeni bir Klasör İstancı oluşturmasını sağla.


    local function onPlayerJoin(player)
    local leaderstats = Instance.new("Folder")
    end
  4. Yeni Dizin örneğine ad verin ve oyuncuya ebeveyn yapın leaderstats .Dizini adlandırmak leaderstats Roblox Studio'nun bir liderlik tablosuoluşturmasını sağlar


    local function onPlayerJoin(player)
    local leaderstats = Instance.new("Folder")
    leaderstats.Name = "leaderstats"
    leaderstats.Parent = player
    end
  5. İşlevin sonundan sonra, OnPlayerJoin ı PlayerAdded etkinliğine bağlayın.Bir oyuncu deneyime katıldığında, her oyuncuya liderlik tablosuverilecektir.


    local Players = game:GetService("Players")
    local function onPlayerJoin(player)
    local leaderstats = Instance.new("Folder")
    leaderstats.Name = "leaderstats"
    leaderstats.Parent = player
    end
    Players.PlayerAdded:Connect(onPlayerJoin)

Oyuncu istatistiklerini izle

Artık bir lider tablosu oluşturuldu, oyuncuya bu sayıları göstermelidir:

  • Altın - Oyuncunun ne kadar para sahip olduğu.
  • Öğeler - Oyuncu dünyadan kaç tane öğe topladı.
  • Boşluklar - Bir oyuncunun aynı anda tutabileceği en fazla öğe.

Bu sayıların her biri bir IntValue olacak, bir sayı için bir yer tutucu nesne.

Kod oyuncusu altın

Altın için bir istatistik kodlamaya başlayın.

  1. In OnPlayerJoin , altında leaderstats.Parent = player , type local gold = Instance.new("IntValue") . Bu, yeni bir IntValue oluşturur ve onu altın değişkenine saklar.


    local function onPlayerJoin(player)
    local leaderstats = Instance.new("Folder")
    leaderstats.Name = "leaderstats"
    leaderstats.Parent = player
    local gold = Instance.new("IntValue")
    end
  2. Sonra, gold.Name = "Gold" yazın. Bu, IntValue'a bir isim verir, böylece diğer senaryolarda kullanabilirsiniz. İsim ayrıca liderlik tablosuoyunculara gösterilecektir.


    local function onPlayerJoin(player)
    local gold = Instance.new("IntValue")
    gold.Name = "Gold"
    end
  3. Yeni bir satırda, gold.Value = 0 yazın. Bu, oyuncular için başlangıç değerini ayarlar.


    local function onPlayerJoin(player)
    local gold = Instance.new("IntValue")
    gold.Name = "Gold"
    gold.Value = 0
    end
  4. Tip gold.Parent = leaderstats . Bu, altın için IntValue'ı liderstatistiklere aktarır. Eğer IntValue liderstatistiklere aktarılmazsa, oyuncular görmeyecektir.


    local function onPlayerJoin(player)
    local gold = Instance.new("IntValue")
    gold.Name = "Gold"
    gold.Value = 0
    gold.Parent = leaderstats
    end
  5. Projenizi oynayın ve sağ üstte bir lider tablosunun göründüğünü fark edin.

Sorun giderme ipuçları

liderlik tablosutablosunu göremiyorsanız, takip edilenadımları deneyin:

  • .Value'nin büyük harfli olduğundan emin olun.
  • IntValue için değişkenin lider tablosuna eşit olduğundan emin olun, örneğin gold.Parent = leaderstats .

Kod öğeleri ve alanları

İstatistik isimlerinin oyun tasarım belgesine dayanan herhangi bir şey olabileceğini unutmayın. Diğer bir deyişle, "Items" yerine "Crystals" olabilir.

  1. Bir sonraki istatistikten ayrılmak için boş bir satır ekleyin, ardından altın için yaptığınız aynı şekilde yeni bir IntValue ayarlayarak öğe istatistiklerini oluşturun.


    local function onPlayerJoin(player)
    gold.Parent = leaderstats
    -- Eşyalar durumunu oluştur
    local items = Instance.new("IntValue")
    items.Name = "Items"
    items.Value = 0
    items.Parent = leaderstats
    end
  2. Oyuncunun çanta alanları için yeni bir istatistik oluştur.Oyuncuların sadece bir kez iki eşya tutabilmesine izin vererek deneyime başlamasını sağlamak için ayarlanır, böylece oyuncular mümkün olduğunca çabuk yeni bir çanta satın almaya teşvik edilir.


    local function onPlayerJoin(player)
    items.Parent = leaderstats
    -- Boşluk statüsünü oluştur
    local spaces = Instance.new("IntValue")
    spaces.Name = "Spaces"
    spaces.Value = 2
    spaces.Parent = leaderstats
    end
  3. Projeyi test et. Oyuncuların Altın, Eşyalar ve Boşlukları gösteren bir lider tablosu olmalıdır.

Lider tablosu görünmüyorsa, aşağıdakileri kontrol etmeyi deneyin.

  • liderlik tablosusayıyı göremiyorsanız, her bir IntValue'in liderstatlara bağlı olduğundan emin olun.
  • Her IntValue'ın aynı şekilde yazıldığından emin olun, gösterildiği gibi
  • Oynatılan olayın senaryonun en altında olduğundan emin olun

Oyun Kurulumu senaryosunu tamamla

Senaryonun bitmiş bir versiyonu aşağıda referans olarak gösterilebilir.


local Players = game:GetService("Players")
-- Oyuncu değişkenlerini gösteren bir lider tablosu oluşturur
local function onPlayerJoin(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 items = Instance.new("IntValue")
items.Name = "Items"
items.Value = 0
items.Parent = leaderstats
local spaces = Instance.new("IntValue")
spaces.Name = "Spaces"
spaces.Value = 2
spaces.Parent = leaderstats
end
-- OyuncuEkleme etkinliği ateşlendiğinde onPlayerJoin'de çalış
Players.PlayerAdded:Connect(onPlayerJoin)