Bảng xếp hạng

Điểm số được xếp hạng, tự động đặt lại, lưu trữ các kỳ trước và chống gian lận phía máy chủ.

Chú thích trong mã và tên API được giữ nguyên tiếng Anh để khớp với SDK.

Trên trang này

Tạo bảng xếp hạng#

Tạo bảng xếp hạng trên trang Bảng xếp hạng của dự án và dùng slug trong mã.

Cài đặtTùy chọn
SlugĐịnh danh viết thường dùng trong mã, ví dụ coins.
Thứ tự sắp xếpDESC (cao nhất trước) hoặc ASC (thấp nhất trước, ví dụ thời gian đua).
Chế độ điểmBEST giữ điểm tốt nhất của mỗi người chơi; LATEST luôn thay bằng điểm mới.
Đặt lạiNONE, DAILY, WEEKLY hoặc MONTHLY.
Điểm tối thiểu / tối đaĐiểm tối thiểu và tối đa được chấp nhận (tùy chọn).
Thời gian chờ giữa các lần gửiSố giây tối thiểu giữa hai lần gửi của một người chơi (tùy chọn).

Gửi điểm#

Tên người chơi được lấy từ tài khoản, nên client không thể gửi điểm thay cho người khác.

C#
var submit = await Majacloud.Leaderboards.SubmitScoreAsync("coins", 340);
if (submit.Ok && submit.Value.Accepted)
    Debug.Log("New rank #" + submit.Value.Entry.Rank);

Đọc thứ hạng#

Các mục đứng đầu không cần đăng nhập; thứ hạng của chính người chơi và các mục xung quanh cần người chơi đã đăng nhập.

C#
var top = await Majacloud.Leaderboards.GetTopAsync("coins", limit: 10);
var me = await Majacloud.Leaderboards.GetMyRankAsync("coins");
var around = await Majacloud.Leaderboards.GetAroundMeAsync("coins", radius: 3);

if (me.Ok && me.Value.Entry != null) Debug.Log("You are #" + me.Value.Entry.Rank + " of " + me.Value.Total);

Đặt lại và các kỳ trước#

Bảng xếp hạng ngày, tuần (thứ Hai) và tháng được đặt lại lúc 00:00 UTC. Kỳ đã kết thúc được lưu trữ; hãy đọc lại bằng kỳ previous:

C#
var yesterday = await Majacloud.Leaderboards.GetTopAsync("coins", 10, 0, MajacloudLeaderboardPeriod.Previous);
Số kỳ trước được giữ lại và số mục mà một bảng xếp hạng trả về phụ thuộc vào gói (xem Giới hạn).

Chống gian lận#

  • Điểm nằm ngoài mức tối thiểu hoặc tối đa bị từ chối với validation.
  • Gửi nhanh hơn thời gian chờ sẽ trả về rate_limited.
  • Client chỉ có thể gửi điểm cho người chơi đã đăng nhập.
  • Với game có tính cạnh tranh, hãy để máy chủ của bạn quyết định điểm và gửi bằng khóa bí mật.

Gửi điểm từ máy chủ#

Với khóa bí mật, hãy gửi player_id và điểm số. Người chơi phải tồn tại.

JavaScript
// Node.js with secretKey: submit after your server validated the match
await admin.server.submitScore('coins', 'player_3f9c…', 980);

Tìm theo tiêu đề trang, đề mục và nội dung.

↑↓ để di chuyển ↵ để mở Esc để đóng