Dữ liệu người chơi
Bạn có thể lưu dữ liệu trạng thái trò chơi của người chơi (chẳng hạn như cấp độ đã hoàn thành, kinh nghiệm hoặc mua hàng trong trò chơi) trên máy chủ Yandex hoặc gửi dữ liệu này đến máy chủ của bạn. Bạn cũng có thể tạo ra trải nghiệm tùy chỉnh theo cá nhân hơn thông qua dữ liệu từ hồ sơ Yandex của người dùng, ví dụ: tên của người dùng.
Thông tin về người chơi
ysdk.player.get_info(
callback: function,
options: {
scopes: boolean|nil,
signed: boolean|nil
}
)
callback: function
— callback của phương thức được gọi. Có dạng:
function(self, player: table|nil, signature: string|nil): nil
player: table
— thông tin về người chơi. Chứa các thuộc tính:
player = {
logged_in: boolean,
unique_id: string,
name: string,
photo: {
small: string,
medium: string,
large: string
}
}
Ví dụ
function init_player()
ysdk.player.get_info(function(self, player)
if player then
display_player(self, player)
else
ysdk.player.open_auth_dialog(function(self, authorized)
ysdk.player.get_info(display_player, {})
end)
end
end,
{})
end
function display_player(player)
if player then
print(player.name, signature)
end
end
Đăng nhập người dùng
Nếu người chơi chưa đăng nhập, bạn có thể sử dụng phương thức ysdk.player.open_auth_dialog()
để hiển thị cửa sổ đăng nhập.
ysdk.player.open_auth_dialog(callback: function)
callback: function
— callback của phương thức được gọi. Có dạng:
function(self, authorized: boolean): nil
authorized: boolean
— người chơi đã đăng nhập hay chưa.
Dữ liệu trong trò chơi
Để làm việc với dữ liệu trong trò chơi của người dùng, hãy sử dụng các phương thức của đối tượng Player
:
-
ysdk.player.set_data(data, flush)
— lưu dữ liệu người dùng. Kích thước dữ liệu tối đa không được vượt quá 200 KB.data: table
— chứa các cặp khóa-giá trị.flush: boolean
— xác định thứ tự gửi dữ liệu. Nếu giá trị làtrue
, dữ liệu sẽ được gửi lên máy chủ ngay lập tức;false
(giá trị mặc định) — yêu cầu gửi dữ liệu sẽ được xếp vào hàng đợi.
Phương thức trả về một Promise
cho biết dữ liệu đã được lưu thành công hay chưa.
Nếu tham số flush
có giá trị là false
, kết quả trả về chỉ kiểm tra tính hợp lệ của dữ liệu (việc gửi thực tế sẽ được xếp hàng đợi và thực hiện sau). Trong trường hợp này, phương thức ysdk.player.get_data()
sẽ trả về dữ liệu vừa mới được thiết lập bởi lần gọi gần nhất của ysdk.player.set_data()
, ngay cả khi chúng chưa được gửi đến máy chủ.
-
ysdk.player.get_data(callback, keys)
— yêu cầu lấy dữ liệu trong game của người dùng đã được lưu trong cơ sở dữ liệu Yandex.callback: fun(self, data: table<string, any>)
— hàm callback để xử lý dữ liệu trong game nhận được của người dùng.keys: table<number, string>
— danh sách các khóa cần trả về. Nếu không truyền tham sốkeys
, phương thức sẽ trả về tất cả dữ liệu trong game của người dùng.
-
ysdk.player.set_stats(stats)
— lưu dữ liệu số của người dùng. Kích thước dữ liệu tối đa không được vượt quá 10 KB.stats: table<string, number>
— chứa các cặp khóa-giá trị, trong đó mỗi giá trị là một số.
Ghi chú
Sử dụng phương thức này cho các giá trị số thường xuyên thay đổi (điểm số, điểm kinh nghiệm, tiền tệ trong game) thay vì ysdk.player.set_data().
ysdk.player.increment_stats(increments)
— thay đổi dữ liệu trong game của người dùng. Kích thước tối đa của dữ liệu không được vượt quá 10 KB.increments: table<string, number>
— đối tượng chứa các cặp key-value, trong đó mỗi giá trị phải là số.
ysdk.player.get_stats(callback, keys)
— lấy dữ liệu dạng số của người dùng được lưu trong cơ sở dữ liệu của Yandex.callback: fun(self, data: table<string, number>|nil)
— hàm xử lý dùng để làm việc với dữ liệu dạng số nhận được của người dùng.keys: string[]
— danh sách các key cần trả về. Nếu tham số keys không có, phương thức sẽ trả về tất cả dữ liệu trong game của người dùng.
Định danh người dùng
ysdk.player.get_ids_per_game(callback: function)
callback: function
— callback của phương thức đã được gọi. Có dạng:
function(self, ids: {appID: number, userID: string}[]): nil
ids
— danh sách các mã định danh của người dùng trong tất cả các trò chơi của nhà phát triển, trong đó người dùng đã đồng ý rõ ràng về việc truyền dữ liệu cá nhân. Bao gồm các thuộc tính:app_id: string
— mã định danh của ứng dụng.user_id: string
— mã định danh của người dùng.
Ví dụ
function log_ids()
ysdk.player.get_ids_per_game(function(self, ids)
for _, value in ipairs(ids) do
print(value.app_id, value.user_id)
end
end)
end