Skor tabloları
Oyun sayfasında, en iyi oyuncuların sonuçlarını ve yetkili kullanıcının sıralamadaki yerini gösteren kişiselleştirilmiş lider tabloları gösterebilirsiniz.
Aşağıda açıklanan isteklerin çalışması için aşağıdaki koşulların sağlandığını doğrulayın:
- SDK'yı etkinleştirdiniz ve yapılandırdınız ve nesnesi
ysdkdeğişkeni üzerinden erişilebilir durumda; - Geliştirici konsolunda skor tablosu oluşturulmuştur.
Dikkat
Konsolda Technical leaderboard name alanında karşılık gelen ada sahip bir lider tablosu yoksa, istekler 404 hatası döndürür.
Skor tablosu açıklaması
Skor tablosu açıklamasını adına göre almak için ysdk.leaderboards.get_description() yöntemini kullanın:
1ysdk.leaderboards.get_description(
2 leaderboard_name: string,
3 callback: function
4)
callback: function — çağrılan yöntemin işleyicisi. Şu şekilde olur:
function(self, description: table|nil): nil
description: table— lider tablosunun açıklaması. Şu özellikleri içerir:
1description: {
2 app_id: string,
3 default: boolean,
4 invert_sort_order: boolean,
5 decimal_offset: integer,
6 type: string,
7 name: string,
8 title: {
9 en: string,
10 ru: string
11 }
12}
Örnek
1function display_leaderboard()
2 ysdk.leaderboards.get_description("highscores",
3 function (self, description)
4 if description then
5 print(
6 description.name,
7 description.title.en
8 )
9 end
10 end)
11end
Yeni sonuç
Dikkat
Sadece yetkilendirilmiş kullanıcılar için bu istek geçerlidir. Gerekirse yetkilendirmeyi kullanın.
Oyuncunun yeni skorunu ayarlamak için ysdk.leaderboards.set_score() yöntemini kullanın:
1ysdk.leaderboards.set_score(
2 leaderboard_name: string,
3 score: integer,
4 extraData: string|nil
5)
Not
İstek 1 saniyede en fazla 1 kez gönderilebilir; aksi takdirde hata ile reddedilir.
Puan alınması
Dikkat
Sorgu yalnızca yetkilendirilmiş kullanıcılar için kullanılabilir. Gerekirse yetkilendirmeyi kullanın.
Kullanıcı puanını almak için ysdk.leaderboards.get_player_entry() yöntemini kullanın:
1ysdk.leaderboards.get_player_entry(
2 leaderboard_name: string,
3 callback: function
4)
callback: function — çağrılan metodun işleyicisi. Şu şekildedir:
function(self, player_entry: table|nil): nil
player_entry: table— kullanıcının sıralaması. Şu özellikleri içerir:
1player_entry: {
2 score: integer,
3 extraData: string,
4 rank: integer,
5 avatar_src: {
6 small: string,
7 medium: string,
8 large: string
9 },
10 avatar_srcset: {
11 small: string,
12 medium: string,
13 large: string
14 },
15 lang: string,
16 public_name: string,
17 unique_id: string,
18 formatted_score: string
19}
Örnek
1function display_high_score()
2 ysdk.leaderboards.get_player_entry("highscores",
3 function (self, player_entry)
4 if player_entry then
5 print("highscore: " .. player_entry.score)
6 end
7 end)
8end
Skor tablosu kayıtları
Kullanıcı sıralamasını çıkarmak için ysdk.leaderboards.get_entries() yöntemini kullanın:
1ysdk.leaderboards.get_entries(
2 leaderboardName: string,
3 callback: function,
4 options: {
5 include_user: boolean|nil,
6 quantity_around: number|nil,
7 quantity_top: number|nil
8 }
9)
callback: function — çağrılan metodun işleyicisi. Şu şekilde görünür:
function(self, entries: table|nil): nil
entries: table — kullanıcı sıralaması. Şu özellikleri içerir:
1entries: {
2 leaderboard: {
3 ...
4 },
5 ranges: [
6 {
7 start: integer,
8 size: integer
9 }
10 ],
11 userRank: integer,
12 entries: [
13 {
14 score: integer,
15 extraData: string,
16 rank: integer,
17 avatar_src: {
18 small: string,
19 medium: string,
20 large: string
21 },
22 avatar_srcset: {
23 small: string,
24 medium: string,
25 large: string
26 },
27 lang: string,
28 public_name: string,
29 unique_id: string,
30 formatted_score: string
31 },
32 ...
33 ]
34}