# 排行榜系统
# 一、介绍
该系统是世界排行榜,展示玩家排行的功能,具体配置参考排行榜配置
# 二、使用
代码中使用方式
// 导入模块
import { rankSystem } from "@timi/mogs-sdk";
...
// 获取指定排行榜类型的实例,rankType来自于配置文件中的type
this.leaderboard = await rankSystem.getLeaderboard(rankType);
...
// 获取该类型排行榜的玩家数据
const list = this.leaderboard.playerRankInfos;
...
// 加载更多玩家数据
this.leaderboard.loadMore({
amount: this.pageSize,
});
...
// 刷新该类型排行榜的玩家数据
this.leaderboard.refresh({
amount: this.pageSize,
});
...
// 监听该类型排行榜的新增事件
this.leaderboard.onLoadMore((res) => {
// TODO
});
// 监听该类型排行榜的新刷新事件
this.leaderboard.onRefresh((res) => {
// TODO
});
...
// 获取玩家自身的信息
const mySelfInfo = await this.leaderboard.getSelfRankInfo();
...
// 上报玩家分数,注意,这里可以在extraInfo带上玩家自身的信息用于展示
this.leaderboard.uploadRankValue({
type: this.rankType,
rankValue: parseInt(score, 10),
extraInfo: extraInfo,
success: () => {
mogs.showToast({
icon: "none",
title: `分数上报成功`,
})
},
fail: () => {
mogs.showToast({
icon: "none",
title: `分数上报失败`,
});
},
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
TIP
更多排行榜模块的api请参考排行榜模块
# 三、上报到游戏平台
上报到平台需要在配置文件 mogs.json
中加入配置信息,同时需要在各个平台后台配置与排行榜有关的部分,当调用 API uploadRankValue
时即会自动上报到游戏平台。
- 微信平台:见指南 排行榜 (opens new window)
- QQ 平台:见指南 排行榜配置指引 (opens new window)
举个例子,有如下需求:
- 在有乐环境,MOGS 后台排行榜类型为 1 的榜,对应有乐的排行榜
- 在微信环境,MOGS 后台排行榜类型为 2 的榜,对应微信后台配置 key 为 "rankA" 的排行榜
- 在 QQ 环境,MOGS 后台排行榜类型为 3 的榜,对应 QQ 后台配置 key 为 "rankB" 的排行榜
则可配置如下:
{
// ...(其他配置)
// 上报到游戏平台排行榜相关配置
"platformRankingList": {
// 有乐环境,值对应于后台配置到排行榜类型 ID
"cymini": 1,
// 微信环境,接受类型 Record<string, string[]>,我们记字典中左边为 key,右边为 value
// key 是在 MOGS 后台配置的排行榜类型 ID
// value 是在 微信 后台配置的排行榜 key 值,可以包括一系列在后台配置的 key 值,构成一个数组
// 微信排行榜配置参见指南 https://developers.weixin.qq.com/minigame/dev/guide/open-ability/ranklist.html
"wx": [{
"2": ["rankA"]
}],
// QQ 环境,与微信环境配置类似
"qq": {
"3": ["rankB"]
},
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20