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

Kho lưu trữ