Oyuncu verileri

Oyun durumu verilerini (tamamlanan seviyeler, deneyim, oyun içi satın almalar vb.) Yandex sunucusuna kaydedebilir veya bunları sunucunuza aktarabilirsiniz. Ayrıca, ad gibi Yandex kullanıcı profilindeki bazı verileri kullanarak oyunu kişiselleştirebilirsiniz.

Oyuncu Hakkında Bilgi

ysdk.player.get_info(
    callback: function,
    options: {
        scopes: boolean|nil,
        signed: boolean|nil
    }
)

callback: function — çağrılan metodun callback'i. Şu şekilde görünür:

function(self, player: table|nil, signature: string|nil): nil
  • player: table — oyuncu hakkında bilgi. Şu özellikleri içerir:
player = {
    logged_in: boolean,
    unique_id: string,
    name: string,
    photo: {
        small: string,
        medium: string,
        large: string
    }
}

Örnek

function init_player()
  ysdk.player.get_info(function(self, player)
      if player then
        display_player(self, player)
      else
        ysdk.player.open_auth_dialog(function(self, authorized)
          ysdk.player.get_info(display_player, {})
        end)
      end
    end,
    {})
end

function display_player(player)
  if player then
    print(player.name, signature)
  end
end

Kullanıcı Yetkilendirmesi

Eğer oyuncu yetkilendirilmemişse, ysdk.player.open_auth_dialog() metodunu kullanarak yetkilendirme penceresini açabilirsiniz.

ysdk.player.open_auth_dialog(callback: function)

callback: function — callback çağrılan metodun. Şu şekilde görünür:

function(self, authorized: boolean): nil
  • authorized: boolean — oyuncunun oturum açıp açmadığı.v

Oyun içi veriler

Oyun içi kullanıcı verileriyle çalışmak için Player nesnesinin yöntemlerini kullanın:

  • ysdk.player.set_data(data, flush) — kullanıcı verilerini kaydeder. Maksimum veri boyutu 200 KB'ı geçmemelidir.

    • data: table — anahtar-değer çiftlerini içerir.
    • flush: boolean — verilerin gönderim sırasını belirler. true olarak ayarlanırsa veriler hemen sunucuya gönderilir; false (varsayılan değer) ise verilerin gönderilmesi kuyruğa alınır.

Metot bir Promise döndürür ve verilerin başarıyla kaydedilip kaydedilmediğini gösterir.

flush: false parametresi ile döndürülen sonuç yalnızca verilerin geçerliliğini gösterir (gönderim kuyruğa alınır ve daha sonra gerçekleştirilir). Bu durumda, ysdk.player.get_data() metodu, son ysdk.player.set_data() çağrısı ile ayarlanan veriyi döndürür, veriler henüz gönderilmemiş olsa bile.

  • ysdk.player.get_data(callback, keys) — Yandex veritabanında saklanan kullanıcının oyun içi verilerini talep eder.

    • callback: fun(self, data: table<string, any>) — kullanıcının alınan oyun içi verileriyle çalışmak için kullanılan işleyici fonksiyonu.
    • keys: table<number, string> — döndürülmesi gereken anahtarların listesi. keys parametresi verilmezse, metot kullanıcının tüm oyun içi verilerini döndürür.
  • ysdk.player.set_stats(stats) — kullanıcının sayısal verilerini kaydeder. Verilerin maksimum boyutu 10 KB'yi geçmemelidir.

    • stats: table<string, number> — her değeri sayı olan anahtar-değer çiftlerini içerir.

Not

Bu yöntemi, sık sık değişen sayısal değerler (puanlar, deneyim puanları, oyun içi para birimi) için, ysdk.player.set_data() yönteminin yerine kullanın.

  • ysdk.player.increment_stats(increments) — kullanıcının oyun içi verilerini değiştirir. Verilerin maksimum boyutu 10 KB'yi geçmemelidir.
    • increments: table<string, number> — her değerin sayı olması gereken anahtar-değer çiftleri içeren nesne.
  • ysdk.player.get_stats(callback, keys) — kullanıcının Yandex veritabanında kayıtlı sayısal verilerini alır.
  • callback: fun(self, data: table<string, number>|nil) — alınan kullanıcı verileriyle çalışmak için kullanılan işleyici fonksiyonu.
  • keys: string[] — döndürülmesi gereken anahtarların listesi. Eğer keys parametresi yoksa, yöntem kullanıcının tüm oyun içi verilerini döndürür.

Kullanıcı kimlikleri

ysdk.player.get_ids_per_game(callback: function)

callback: function — callback çağrılan metodun dönüş değeridir. Şu şekildedir:

function(self, ids: {appID: number, userID: string}[]): nil
  • ids — geliştiricinin oyunlarında, kullanıcının kişisel verilerinin iletilmesine açıkça izin verdiği tüm oyunlardaki kullanıcı kimlikleri. Şu özellikleri içerir:
    • app_id: string — uygulama kimliği.
    • user_id: string — kullanıcı kimliği.

Örnek

function log_ids()
  ysdk.player.get_ids_per_game(function(self, ids)
    for _, value in ipairs(ids) do
      print(value.app_id, value.user_id)
    end
  end)
end

Depo