排行榜
您可以在游戏页面上显示个性化的排行榜,展示顶级玩家的成绩以及登录用户的排名。
要让以下请求生效,请确保:
注意
如果开发者仪表板中的技术排行榜名称字段中没有该名称的排行榜,请求将返回 404 错误。
排行榜描述
要通过名称获取排行榜的描述,请使用 ysdk.leaderboards.get_description()
:
ysdk.leaderboards.get_description(
leaderboard_name: string,
callback: function
)
callback: function
— 被调用方法的处理程序。格式如下:
function(self, description: table|nil): nil
description: table
— 排行榜的描述。包含以下属性:
description: {
app_id: string,
default: boolean,
invert_sort_order: boolean,
decimal_offset: integer,
type: string,
name: string,
title: {
en: string,
ru: string
}
}
示例
function display_leaderboard()
ysdk.leaderboards.get_description("highscores",
function (self, description)
if description then
print(
description.name,
description.title.en
)
end
end)
end
最新得分
注意
请求仅适用于已授权用户。如有需要,请使用授权。
要为玩家设置最新得分,请使用 ysdk.leaderboards.set_score()
:
ysdk.leaderboards.set_score(
leaderboard_name: string,
score: integer,
extraData: string|nil
)
备注
请求的发送频率不能超过每秒一次。否则,请求会被拒绝并引发错误。
获取排名
注意
请求仅供授权用户使用。必要时,请使用授权。
要获取用户排名,请使用 ysdk.leaderboards.get_player_entry()
:
ysdk.leaderboards.get_player_entry(
leaderboard_name: string,
callback: function
)
callback: function
— 被调用方法的处理程序。格式如下:
function(self, player_entry: table|nil): nil
player_entry: table
— 用户排名。包含以下属性:
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
}
示例
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
排行榜条目
要显示用户排名,请使用 ysdk.leaderboards.get_entries()
:
ysdk.leaderboards.get_entries(
leaderboardName: string,
callback: function,
options: {
include_user: boolean|nil,
quantity_around: number|nil,
quantity_top: number|nil
}
)
callback: function
— 被调用方法的处理程序。格式如下:
function(self, entries: table|nil): nil
entries: table
— 用户排行榜。包含以下属性:
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
},
...
]
}
已复制