Skor tabloları

Oyun sayfasında en iyi oyuncuların sonuçlarını ve giriş yapmış kullanıcının sıralamadaki konumunu içeren kişiselleştirilmiş skor tabloları gösterebilirsiniz.

Aşağıda açıklanan sorguların çalışabilmesi için koşulların karşılanıp karşılanmadığını kontrol edin:

Dikkat

Konsol Skor tablosu teknik adı alanında uygun ada sahip bir skor tablosu yoksa, sorgular 404 hatası verir.

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 yetkilendirme işleminden faydalanı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

Bir sorgu saniyede en fazla bir kez gönderilebilir. Aksi takdirde, bir hata ile reddedilir.

Puan alınması

Dikkat

Sorgu yalnızca yetkilendirilmiş kullanıcılar için kullanılabilir. Gerekirse yetkilendirme işleminden faydalanı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