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.trueolarak 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.keysparametresi 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.keysparametresi 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