# 赛季及段位系统

# 功能及接口

# 迁移段位数据

把接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

# 段位积分数据上报

客户端结算时将积分上报给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

# 当前段位信息推送

下发玩家当前段位信息,包含赛季、段位、星星、连胜、当前赛季统计信息和所有赛季统计信息等

接口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

# 历史赛季信息推送

下发玩家历史段位数据信息,默认保存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

# 配置说明

段位配置表

ladder-config.png

说明

  • 段位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

赛季配置表

season-config.png

说明

  • 赛季ID:每个赛季必须有唯一id,赛季id从1开始递增

  • 赛季描述信息:例如——S0测试赛季

  • 开始时间:该赛季的开始时间,格式 yyyy:MM:dd

  • 结束时间:该赛季的结束时间,格式 yyyy:MM:dd

  • 额外加星的连胜场次:连胜N场时,可以额外加上赢一场的分数

  • 显示连胜icon需要场次:连胜N场时,可以显示连胜的icon

  • 每日首胜奖励池ID:每日首胜会根据该ID对应的奖励池中的奖品进行奖励