# 赛季及段位系统
# 功能及接口
# 迁移段位数据
把接mogs段位之前的旧的战绩数据迁移到mogs系统。默认转移时不切换赛季
接口cmd MC_CG_TRANSFER_LADDER_RECORD_REQ = 1089; // 战绩数据迁移请求 MC_CG_TRANSFER_LADDER_RECORD_RES = 1090; // 战绩数据迁移回复
接口字段
message TransferLadderRecordReq {
optional int32 ladder_star = 1; // 当前段位星星数
optional int32 victory_num = 2; // 胜场数
optional int32 participate_num = 3; // 参与总场次
option (illusion.cfg_message) = true;
option (illusion.svr_list) = "logicsvr";
option (illusion.cmd_enum) = "MC_CG_TRANSFER_LADDER_RECORD_REQ";
}
message TransferLadderRecordRes {
option (illusion.cfg_message) = true;
option (illusion.svr_list) = "logicsvr";
option (illusion.cmd_enum) = "MC_CG_TRANSFER_LADDER_RECORD_RES";
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 段位积分数据上报
客户端结算时将积分上报给mogs系统,mogs后台计算段位信息后发段位ntf信息给客户端。
接口cmd MC_CG_RECORD_REPORT_REQ = 1072; // 报战绩 MC_CG_RECORD_REPORT_RES = 1073; // 报战绩
接口字段
message RecordReportReq {
optional int32 is_win = 1;//1为胜,0为负,为1时才会记胜场次数
optional uint64 battle_start_timestamp = 2;
optional uint32 rank = 3; //优先按名次来,如果有上报名次字段(1-10名),则按名次处理,如果名次字段为0,则按is_win字段来
option (illusion.cfg_message) = true;
option (illusion.svr_list) = "logicsvr";
option (illusion.cmd_enum) = "MC_CG_RECORD_REPORT_REQ";
}
message RecordReportRes {
optional int32 ladder_id = 1; // 当前段位ID
optional int32 ladder_star = 2; // 当前段位星星数
option (illusion.cfg_message) = true;
option (illusion.svr_list) = "logicsvr";
option (illusion.cmd_enum) = "MC_CG_RECORD_REPORT_RES";
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 当前段位信息推送
下发玩家当前段位信息,包含赛季、段位、星星、连胜、当前赛季统计信息和所有赛季统计信息等
接口cmd MC_CG_LADDER_NTF = 1070; // 段位数据下发
接口字段
// 赛季战绩统计信息
message SeasonStatInfo {
optional int32 max_ladder_id = 1; // 最高段位ID
optional int32 max_ladder_star = 2; // 最高段位星星数
optional int32 victory_num = 3; // 胜场
optional int32 participate_num = 4; // 参与总场次
optional int32 max_continue_victory_num = 5; // 最高连胜
}
// 段位信息推送
message LadderInfoNtf {
optional int32 season_id = 1; // 当前赛季ID
optional int32 ladder_id = 2; // 当前段位ID
optional int32 ladder_star = 3; // 当前段位星星数,胜利时加,失败时减,减到当前段位底分以下掉段位
optional SeasonStatInfo cur_season_info = 4; // 当前赛季战绩统计信息
optional SeasonStatInfo all_season_info = 5; // 所有赛季战绩统计信息
optional int32 continue_victory_num = 6; // 当前连胜
option (illusion.cfg_message) = true;
option (illusion.svr_list) = "client";
option (illusion.cmd_enum) = "MC_CG_LADDER_NTF";
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 历史赛季信息推送
下发玩家历史段位数据信息,默认保存5个赛季
接口cmd MC_CG_HISTORY_LADDER_NTF = 1071; // 历史赛季信息推送
接口字段
// 历史段位信息
message HistoryLadder {
optional int32 season_id = 1; // 赛季ID,和ladder_id同时更新
optional int32 ladder_id = 2; // 段位ID,和season_id同时更新
optional int32 ladder_star = 3; // 段位星星数,胜利时加,失败时减,减到当前段位底分以下掉段位
optional SeasonStatInfo cur_season_info = 4; // 当前赛季战绩统计信息
}
// 历史赛季信息推送
message HistoryLadderInfoNtf {
repeated HistoryLadder history_laddder = 1; // 历史段位数据信息,默认保存5个赛季
option (illusion.cfg_message) = true;
option (illusion.svr_list) = "client";
option (illusion.cmd_enum) = "MC_CG_HISTORY_LADDER_NTF";
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 配置说明
段位配置表
说明
- 段位ID: 每个段位必须有唯一id,段位id从1开始递增
- 段位类型: 该段位所属的段位类型(名称),即大段位,如青铜/白银,同种段位类型可对应多个段位
- 0: 空
- 1: 青铜
- 2: 白银
- 3: 黄金
- 4: 铂金
- 5: 钻石
- 6: 王者
- 段位子类型: 段位类型下的子类型,即小段位
- 0: 空
- 1: 一
- 2: 二
- 3: 三
- 升下个段位所需积分:
- 该分数为累计分数
- 青铜三填写的该分数,实际是下个段位——青铜二所需的分数,往下依次类推
- 起始段位(如: 青铜三)从0分起算
- 胜利一场加分: 该段位下,胜利一场加的分数
- 失败一场扣分: 该段位下,失败一场加的分数
- 下赛季段位: 该段位对应的下赛季起始段位
- 赛季结算奖励池ID: 赛季结算时会根据该ID对应的奖励池中的奖品进行奖励
- 段位描述:
string
段位描述 - 名次得分1-10:该段位下,玩家不同名次增加的分数,如果要扣分,填负数。
- MC_CG_RECORD_REPORT_REQ请求中,优先处理rank,如果有上报名次字段(1-10名),则按名次处理,如果名次字段为0,则按is_win字段来
- 按名次处理时默认不增加胜场数,如果需要增加,则需要同时将is_win设置为1
赛季配置表
说明
赛季ID:每个赛季必须有唯一id,赛季id从1开始递增
赛季描述信息:例如——S0测试赛季
开始时间:该赛季的开始时间,格式 yyyy:MM:dd
结束时间:该赛季的结束时间,格式 yyyy:MM:dd
额外加星的连胜场次:连胜N场时,可以额外加上赢一场的分数
显示连胜icon需要场次:连胜N场时,可以显示连胜的icon
每日首胜奖励池ID:每日首胜会根据该ID对应的奖励池中的奖品进行奖励