Oyuncu verileri

Şunları yapabilirsiniz:

  • Oyun verilerini (tamamlanan seviyeler, deneyim, uygulama içi satın alımlar vb.) SDK yöntemlerini kullanarak Yandex sunucusunda kaydetmek veya kendi sunucunuza aktarmak. Bulut kayıtları, kullanıcıların farklı cihazlarda oynamaya devam etmesini sağlar.
  • Oyunu, Yandex'teki kullanıcı profilindeki verileri (örneğin ad) kullanarak kişiselleştirmek.

Oyuncu hakkında bilgi

1ysdk.player.get_info(
2    callback: function,
3    options: {
4        scopes: boolean|nil,
5        signed: boolean|nil
6    }
7)

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:
 1player = {
 2    logged_in: boolean,
 3    unique_id: string,
 4    name: string,
 5    photo: {
 6        small: string,
 7        medium: string,
 8        large: string
 9    }
10}

Örnek

 1function init_player()
 2    ysdk.player.get_info(function(self, player)
 3        if player then
 4            display_player(self, player)
 5        else
 6            ysdk.player.open_auth_dialog(function(self, authorized)
 7                ysdk.player.get_info(display_player, {})
 8            end)
 9        end
10    end,
11    {})
12end
13
14function display_player(player)
15    if player then
16        print(player.name, signature)
17    end
18end

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 — çağrılan metodun callback'i. Şu şekilde görünür:

function(self, authorized: boolean): nil
  • authorized: boolean — oyuncunun yetkilendirilip yetkilendirilmediği.

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'yi aşmamalıdır.
    • 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. Maksimum veri boyutu 10 KB'yi aşmamalıdır.

    • 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. Maksimum veri boyutu 10 KB'yi aşmamalıdır.
    • 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) — kullanıcının alınan sayısal verileriyle çalışmak için işleyici işlevi.
    • keys: string[] — döndürülmesi gereken anahtarların listesi. keys parametresi yoksa, metot 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 — çağrılan metodun callback'idir. Ş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

1function log_ids()
2    ysdk.player.get_ids_per_game(function(self, ids)
3        for _, value in ipairs(ids) do
4            print(value.app_id, value.user_id)
5        end
6    end)
7end

Depo