玩家详情
您可以:
- 使用 SDK 方法将游戏数据(已通过的关卡、经验、应用内购买等)保存在 Yandex 服务器上,或将其传输到您自己的服务器。 云存档允许用户在不同设备上继续游戏。
- 使用 Yandex 用户个人资料中的数据(例如姓名)来个性化游戏。
玩家信息
1ysdk.player.get_info(
2 callback: function,
3 options: {
4 scopes: boolean|nil,
5 signed: boolean|nil
6 }
7)
callback: function —— 被调用方法的回调。格式如下:
function(self, player: table|nil, signature: string|nil): nil
player: table—— 玩家信息。包含以下属性:
1player = {
2 logged_in: boolean,
3 unique_id: string,
4 name: string,
5 photo: {
6 small: string,
7 medium: string,
8 large: string
9 }
10}
示例
1function init_player()
2 ysdk.player.get_info(function(self, player)
3 if player then
4 display_player(self, player)
5 else
6 ysdk.player.open_auth_dialog(function(self, authorized)
7 ysdk.player.get_info(display_player, {})
8 end)
9 end
10 end,
11 {})
12end
13
14function display_player(player)
15 if player then
16 print(player.name, signature)
17 end
18end
用户登录
如果玩家未授权,您可以使用方法 ysdk.player.open_auth_dialog() 来弹出授权窗口。
ysdk.player.open_auth_dialog(callback: function)
callback: function —— 被调用方法的回调。其格式如下:
function(self, authorized: boolean): nil
authorized: boolean—— 玩家是否已授权。
游戏内数据
要处理用户的游戏内数据,请使用 Player 对象方法:
ysdk.player.set_data(data, flush)—— 保存用户数据。数据最大大小不应超过 200 KB。data: table—— 包含键-值对。flush: boolean—— 确定数据发送的顺序。当值为true时,数据将立即发送到服务器;false(默认值)—— 数据发送请求将被加入队列。
该方法返回一个 Promise,用于指示数据是否保存成功。
当参数 flush: false 的值设置时,返回的结果仅显示数据的有效性(实际发送已加入队列,稍后执行)。此时,方法 ysdk.player.get_data() 将返回最后一次调用 ysdk.player.set_data() 所设置的数据,即使这些数据尚未发送。
-
ysdk.player.get_data(callback, keys)—— 请求获取存储于 Yandex 数据库中的玩家游戏内数据。callback: fun(self, data: table<string, any>)—— 用于处理获取到的玩家游戏内数据的回调函数。keys: table<number, string>—— 需要返回的键列表。如果缺少keys参数,该方法将返回用户的所有游戏内数据。
-
ysdk.player.set_stats(stats)—— 保存用户的数值数据。数据最大大小不应超过 10 KB。stats: table<string, number>—— 包含键-值对,其中每个值必须为数字。
备注
请使用此方法来处理经常变化的数值类型(如积分、经验值、游戏内货币),而不是使用 ysdk.player.set_data()。
ysdk.player.increment_stats(increments)—— 修改用户的游戏内数据。数据最大大小不应超过 10 KB。increments: table<string, number>—— 包含键值对的对象,每个值必须是数字。
ysdk.player.get_stats(callback, keys)—— 获取存储在 Yandex 数据库中的用户数值数据。callback: fun(self, data: table<string, number>|nil)—— 用于处理获取到的用户数值数据的回调函数。keys: string[]—— 需要返回的键列表。如果缺少keys参数,该方法将返回用户的所有游戏内数据。
用户标识符
ysdk.player.get_ids_per_game(callback: function)
callback: function —— 被调用方法的回调。格式如下:
function(self, ids: {appID: number, userID: string}[]): nil
ids—— 用户在开发者所有游戏中的标识符,前提是用户已明确同意传输个人数据。包含以下属性:app_id: string—— 应用程序的标识符。user_id: string—— 用户的标识符。
示例
1function log_ids()
2 ysdk.player.get_ids_per_game(function(self, ids)
3 for _, value in ipairs(ids) do
4 print(value.app_id, value.user_id)
5 end
6 end)
7end