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:

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}

Depo