排行榜

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

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

注意

如果开发者仪表板中的技术排行榜名称字段中没有该名称的排行榜,请求将返回 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}

存储库
上一篇