排行榜

您可以在游戏页面上显示个性化的排行榜,展示顶级玩家的成绩以及登录用户的排名。

要让以下请求生效,请确保:

注意

如果开发者仪表板中的技术排行榜名称字段中没有该名称的排行榜,请求将返回 404 错误。

排行榜描述

要通过名称获取排行榜的描述,请使用 ysdk.leaderboards.get_description():

1ysdk.leaderboards.get_description(
2    leaderboard_name: string,
3    callback: function
4)

callback: function —— 被调用方法的处理程序。格式如下:

function(self, description: table|nil): nil
  • description: table —— 排行榜的描述。包含以下属性:
 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}

示例

 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

最新得分

注意

请求仅适用于已授权用户。如有需要,请使用授权

要为玩家设置最新得分,请使用 ysdk.leaderboards.set_score():

1ysdk.leaderboards.set_score(
2    leaderboard_name: string,
3    score: integer,
4    extraData: string|nil
5)

备注

请求的发送频率不能超过每秒一次。否则,请求会被拒绝并引发错误。

获取排名

注意

请求仅供授权用户使用。必要时,请使用授权

要获取用户排名,请使用 ysdk.leaderboards.get_player_entry():

1ysdk.leaderboards.get_player_entry(
2    leaderboard_name: string,
3    callback: function
4)

callback: function —— 被调用方法的处理程序。格式如下:

function(self, player_entry: table|nil): nil
  • player_entry: table —— 用户排名。包含以下属性:
 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}

示例

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

排行榜条目

要显示用户排名,请使用 ysdk.leaderboards.get_entries():

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— 被调用方法的处理程序。格式如下:

function(self, entries: table|nil): nil

entries: table —— 用户排行榜。包含以下属性:

 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}

存储库
上一篇