排行榜
您可以在游戏页面上显示个性化的排行榜,展示顶级玩家的成绩以及登录用户的排名。
要让以下请求生效,请确保:
注意
如果开发者仪表板中的技术排行榜名称字段中没有该名称的排行榜,请求将返回 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}