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:

ysdk.leaderboards.get_description(
    leaderboard_name: string,
    callback: function
)

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:
description: {
  app_id: string,
  default: boolean,
  invert_sort_order: boolean,
  decimal_offset: integer,
  type: string,
  name: string,
  title: {
    en: string,
    ru: string
  }
}

Örnek

function display_leaderboard()
  ysdk.leaderboards.get_description("highscores",
    function (self, description)
      if description then
        print(
          description.name,
          description.title.en
        )
    end
  end)
end

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:

ysdk.leaderboards.set_score(
    leaderboard_name: string,
    score: integer,
    extraData: string|nil
)

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:

ysdk.leaderboards.get_player_entry(
    leaderboard_name: string,
    callback: function
)

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:
player_entry: {
  score: integer,
  extraData: string,
  rank: integer,
  avatar_src: {
    small: string,
    medium: string,
    large: string,
  },
  avatar_srcset: {
    small: string,
    medium: string,
    large: string,
  },
  lang: string,
  public_name: string,
  unique_id: string,
  formatted_score: string
}

Örnek

function display_high_score()
  ysdk.leaderboards.get_player_entry("highscores",
    function (self, player_entry)
      if player_entry then
        print("highscore: " .. player_entry.score)
      end
    end)
end

Skor tablosu kayıtları

Kullanıcı sıralamasını çıkarmak için ysdk.leaderboards.get_entries() yöntemini kullanın:

ysdk.leaderboards.get_entries(
    leaderboardName: string,
    callback: function,
    options: {
        include_user: boolean|nil,
        quantity_around: number|nil,
        quantity_top: number|nil
    }
)

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:

entries: {
  leaderboard: {
    ...
  },
  ranges: [
    {
      start: integer,
      size: integer
    }
  ],
  userRank: integer,
  entries: [
    {
      score: integer,
      extraData: string,
      rank: integer,
      avatar_src: {
        small: string,
        medium: string,
        large: string,
      },
      avatar_srcset: {
        small: string,
        medium: string,
        large: string,
      },
      lang: string,
      public_name: string,
      unique_id: string,
      formatted_score: string
    },
    ...
  ]
}

Depo