rank_msg.go 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808
  1. package msg
  2. import (
  3. "rocommon"
  4. "rocommon/util"
  5. "roserver/baseserver/model"
  6. rankMode "roserver/rank/model"
  7. "roserver/serverproto"
  8. )
  9. func init() {
  10. ///MapRank
  11. //地图挑战进度变更(大地图显示使用)
  12. serverproto.Handle_RANK_SSMapLevelChangeReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  13. msg := ev.Msg().(*serverproto.SSMapLevelChangeReq)
  14. util.DebugF("receive SSMapLevelChangeReq msg=%v uid=%v", msg, cliId.SessID)
  15. ackMsg := &serverproto.SSMapLevelChangeAck{
  16. Error: int32(serverproto.ErrorCode_ERROR_BATTLE_NOT_IN_RANK),
  17. //Error: int32(serverproto.ErrorCode_ERROR_FAIL),
  18. Notify: false,
  19. }
  20. var selfRank uint32 = 0
  21. var totalRank uint32 = 0
  22. var battleRecordId uint64 = 0
  23. //获取排名
  24. if msg.NewMapLevelId == 0 && msg.PassTime == 0 {
  25. selfRank, totalRank = rankMode.GetMapRank(cliId.SessID)
  26. ackMsg.Notify = true
  27. } else {
  28. //设置排名
  29. selfRank, totalRank, battleRecordId = rankMode.AddMapRank(cliId.SessID, msg.NewMapLevelId, msg.PassTime, msg.RecordInfo)
  30. ackMsg.BattleRecordId = battleRecordId
  31. ackMsg.RecordTimeStamp = msg.RecordInfo.RecordTime
  32. }
  33. if totalRank > 0 {
  34. ackMsg.Error = int32(serverproto.ErrorCode_ERROR_OK)
  35. ackMsg.Rank = selfRank + 1
  36. }
  37. ackMsg.RankPlayers = totalRank
  38. ackMsg.TopPlayerList = append(rankMode.MapRankTopThree)
  39. util.DebugF("SSMapLevelChangeReq ackMsg=%v uid=%v newmaplevel=%v selfRank=%v", ackMsg, cliId.SessID, msg.NewMapLevelId, selfRank)
  40. model.ServiceReplay(ev, ackMsg)
  41. })
  42. //set max fight power rank
  43. serverproto.Handle_RANK_SSMaxFightPowerRankNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  44. msg := ev.Msg().(*serverproto.SSMaxFightPowerRankNtf)
  45. util.DebugF("receive SSMaxFightPowerRankNtf msg:%v [%v]", msg, cliId.SessID)
  46. rankMode.AddMaxFightPowerRank(cliId.SessID, msg.MaxFightPower)
  47. })
  48. ///Arena
  49. //set arena score rank
  50. serverproto.Handle_RANK_SSArenaScoreRankNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  51. msg := ev.Msg().(*serverproto.SSArenaScoreRankNtf)
  52. util.DebugF("receive SSArenaScoreRankNtf msg:%v [%v]", msg, cliId.SessID)
  53. rankMode.SetArenaScoreRank(cliId.SessID, msg.Score, util.GetTimeMilliseconds(),
  54. msg.OldScore, msg.MinTopScore, msg.TopRankNum)
  55. })
  56. //获取英灵殿赛季排行榜 arena
  57. serverproto.Handle_RANK_SSArenaRankListReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  58. msg := ev.Msg().(*serverproto.SSArenaRankListReq)
  59. util.DebugF("receive SSArenaRankListReq msg:%v [%v]", msg, cliId.SessID)
  60. ssAckMsg := &serverproto.SSArenaRankListAck{
  61. Error: int32(serverproto.ErrorCode_ERROR_OK),
  62. RankType: msg.RankType,
  63. StartIdx: msg.StartIdx,
  64. }
  65. selfRank := rankMode.GetArenaRankList(cliId.SessID, msg.RankType, msg.StartIdx, msg.LastSeasonId, ssAckMsg)
  66. if selfRank > 0 {
  67. ssAckMsg.SelfRank = selfRank
  68. }
  69. model.ServiceReplay(ev, ssAckMsg)
  70. })
  71. //获取英灵殿赛季奖励
  72. serverproto.Handle_RANK_SSArenaRankRewardReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  73. msg := ev.Msg().(*serverproto.SSArenaRankRewardReq)
  74. util.DebugF("receive SSArenaRankRewardReq msg:%v [%v]", msg, cliId.SessID)
  75. selfRank, seasonId := rankMode.GetArenaRankReward(msg.Uid, msg.Score, msg.SeasonId)
  76. ssAckMsg := &serverproto.SSArenaRankRewardAck{
  77. SelfRank: selfRank,
  78. RewardSeasonId: seasonId,
  79. }
  80. model.ServiceReplay(ev, ssAckMsg)
  81. })
  82. //更新英灵殿赛季数据(生成赛季排行榜)
  83. serverproto.Handle_RANK_SSArenaRankUpdateReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  84. msg := ev.Msg().(*serverproto.SSArenaRankUpdateReq)
  85. util.DebugF("receive SSArenaRankUpdateReq msg:%v [%v]", msg, cliId.SessID)
  86. ssAckMsg := &serverproto.SSArenaRankUpdateAck{
  87. RewardSeasonId: msg.LastSeasonId,
  88. }
  89. ret := rankMode.UpdateArenaRank(msg.LastSeasonId, &(msg.RewardPlayerList), &(ssAckMsg.RewardPlayerList))
  90. ssAckMsg.Error = int32(ret)
  91. model.ServiceReplay(ev, ssAckMsg)
  92. })
  93. ///Competition
  94. //获取对应赛季信息 from game
  95. serverproto.Handle_RANK_SSGetCompetitionDataReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  96. msg := ev.Msg().(*serverproto.SSGetCompetitionDataReq)
  97. util.DebugF("uid=%v receive SSGetCompetitionDataReq msg=%v", cliId.SessID, msg)
  98. ssAckMsg := &serverproto.SSGetCompetitionDataAck{
  99. Error: int32(serverproto.ErrorCode_ERROR_OK),
  100. CompetitionData: &serverproto.CompetitionInfo{
  101. CompetitionId: msg.CompetitionId,
  102. },
  103. }
  104. rankMode.CompetitionMag.GetCompetitionData(cliId.SessID, msg.CompetitionId, msg.SubIdNum,
  105. msg.IsNowCompetition, (model.CompetitionType)(msg.CompetitionType), ssAckMsg)
  106. model.ServiceReplay(ev, ssAckMsg)
  107. })
  108. //赛季结算奖励 from game
  109. serverproto.Handle_RANK_SSCompetitionRewardReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  110. msg := ev.Msg().(*serverproto.SSCompetitionRewardReq)
  111. util.DebugF(" uid=%v receive SSCompetitionRewardReq msg=%v ", cliId.SessID, msg)
  112. ssAckMsg := &serverproto.SSCompetitionRewardAck{
  113. CompetitionId: msg.CompetitionId,
  114. }
  115. rankMode.CompetitionMag.CompetitionFinish(msg, ssAckMsg)
  116. model.ServiceReplay(ev, ssAckMsg)
  117. })
  118. //更新积分赛季排名 from game
  119. serverproto.Handle_RANK_SSCompetitionUpdateScoreReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  120. msg := ev.Msg().(*serverproto.SSCompetitionUpdateScoreReq)
  121. util.DebugF("uid=%v receive SSCompetitionUpdateScoreReq msg=%v", cliId.SessID, msg)
  122. curVoteTicket := msg.CurVoteScore
  123. totalScore := int32(0)
  124. if msg.CompetitionId == int32(model.CompetitionType_Idol) {
  125. totalScore = rankMode.CompetitionMag.FansVoteChange(msg.Uid, msg.FansUid, msg.CurVoteScore, msg.CompetitionId)
  126. //redis查询出错,就不能继续走下去了
  127. if totalScore == -1 {
  128. return
  129. }
  130. //在rank计算被投票人总票数()
  131. msg.Score = totalScore
  132. }
  133. //老的投票流程 开始
  134. ssAckMsg := &serverproto.SSCompetitionUpdateScoreAck{
  135. CompetitionId: msg.CompetitionId,
  136. }
  137. rankMode.CompetitionMag.UpdateRankByScore(msg.CompetitionId, msg.Uid, msg.Score, ssAckMsg)
  138. model.ServiceReplay(ev, ssAckMsg)
  139. //老的投票流程 结束
  140. if msg.CompetitionId == int32(model.CompetitionType_Idol) {
  141. ntfMsg := &serverproto.SSCompetitionOnVoteNtf{
  142. Uid: msg.Uid,
  143. VoteTarget: &serverproto.FansRankData{
  144. Uid: msg.Uid,
  145. },
  146. TicketCount: curVoteTicket,
  147. }
  148. rankMode.CompetitionMag.GetVoteDetail(msg.CompetitionId, ntfMsg)
  149. model.ServiceReplay(ev, ntfMsg)
  150. }
  151. })
  152. //上线时一次性获取历史赛季奖励 from game
  153. serverproto.Handle_RANK_SSCompetitionRewardHistoryReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  154. msg := ev.Msg().(*serverproto.SSCompetitionRewardHistoryReq)
  155. util.DebugF("uid=%v receive SSCompetitionRewardHistoryReq msg=%v", cliId.SessID, msg)
  156. ssAckMsg := &serverproto.SSCompetitionRewardHistoryAck{
  157. ECompetitionId: msg.ECompetitionId,
  158. ECompetitionSubId: msg.ECompetitionSubId,
  159. }
  160. rankMode.CompetitionMag.GetHistoryCompetitionReward(cliId.SessID,
  161. msg.SCompetitionId, msg.SCompetitionSubId, msg.ECompetitionId, msg.ECompetitionSubId, ssAckMsg)
  162. if len(ssAckMsg.RewardUidList) > 0 {
  163. model.ServiceReplay(ev, ssAckMsg)
  164. }
  165. })
  166. //更新通关战力//查看是否更新全服排名
  167. serverproto.Handle_RANK_SSTowerPassFightPowerNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  168. msg := ev.Msg().(*serverproto.SSTowerPassFightPowerNtf)
  169. util.DebugF("uid=%v receive SSTowerPassFightPowerNtf msg=%v", cliId.SessID, msg)
  170. //处理是否更新最新排名
  171. bRet := false
  172. if msg.IsGm == false {
  173. bRet = rankMode.TowerMag.AddMinFightList(msg.TowerBfInfo)
  174. } else {
  175. bRet = rankMode.TowerMag.AddMinFightListGM(msg.TowerBfInfo)
  176. }
  177. if bRet == true { //如果当前战斗有突破,则通知这个玩家最小战力通关榜
  178. ackMsg := &serverproto.SSTowerMinFightPowerAck{
  179. BattleRecordId: msg.TowerBfInfo.CommonInfo.BattleRecordId,
  180. RecordTimeStamp: msg.RecordTimeStamp,
  181. Notify: true,
  182. }
  183. rankMode.TowerMag.GetMinFightList(msg.TowerBfInfo.CommonInfo.TowerLevel, ackMsg)
  184. model.ServiceReplay(ev, ackMsg)
  185. }
  186. //处理更新全服排名
  187. rankMode.TowerMag.AddTowerLevelRank(msg.TowerBfInfo.CommonInfo)
  188. })
  189. //请求通关最小战力
  190. serverproto.Handle_RANK_SSTowerMinFightPowerReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  191. msg := ev.Msg().(*serverproto.SSTowerMinFightPowerReq)
  192. util.DebugF("uid=%v receive SSTowerMinFightPowerReq msg=%v", cliId.SessID, msg)
  193. //请求最小通关榜
  194. ackMsg := &serverproto.SSTowerMinFightPowerAck{}
  195. rankMode.TowerMag.GetMinFightList(msg.TowerLevel, ackMsg)
  196. model.ServiceReplay(ev, ackMsg)
  197. })
  198. //请求关卡排名
  199. serverproto.Handle_RANK_SSPassTowerLevelRankReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  200. msg := ev.Msg().(*serverproto.SSPassTowerLevelRankReq)
  201. util.DebugF("uid=%v receive SSPassTowerLevelRankReq msg=%v", cliId.SessID, msg)
  202. ackMsg := &serverproto.SSPassTowerLevelRankAck{}
  203. rankMode.TowerMag.GetTopTowerRank(msg.Uid, ackMsg)
  204. model.ServiceReplay(ev, ackMsg)
  205. })
  206. serverproto.Handle_RANK_CSPlayerBattleRecordReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  207. msg := ev.Msg().(*serverproto.CSPlayerBattleRecordReq)
  208. util.DebugF("uid=%v receive CSPlayerBattleRecordReq msg=%v", cliId.SessID, msg)
  209. ackMsg := &serverproto.SCPlayerBattleRecordAck{
  210. Error: int32(serverproto.ErrorCode_ERROR_OK),
  211. }
  212. recordType := msg.RecordType / 100
  213. //subRecordType := msg.RecordType % 100
  214. if recordType == int32(serverproto.BattleRecordType_BattleRecordType_Normal) {
  215. rankMode.GetBattleRecordMap(ackMsg, msg.ParamList)
  216. }
  217. model.ServiceReplay(ev, ackMsg)
  218. })
  219. serverproto.Handle_RANK_SSCardCollectionChangeNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  220. msg := ev.Msg().(*serverproto.SSCardCollectionChangeNtf)
  221. util.DebugF("uid=%v receive SSCardCollectionChangeNtf msg=%v", cliId.SessID, msg)
  222. rankMode.CardCollectMag.OnCardCollectChange(msg.Uid, msg.CardId, msg.CardLevel)
  223. })
  224. serverproto.Handle_RANK_CSCardCollectionRankReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  225. msg := ev.Msg().(*serverproto.CSCardCollectionRankReq)
  226. util.DebugF("uid=%v receive CSCardCollectionRankReq msg=%v", cliId.SessID, msg)
  227. rankMode.CardCollectMag.CardRankInfo(msg, ev)
  228. })
  229. ///百人道场
  230. //获取玩家自身占位信息
  231. serverproto.Handle_RANK_CSDaoChang100PlayerInfoReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  232. msg := ev.Msg().(*serverproto.CSDaoChang100PlayerInfoReq)
  233. util.DebugF("uid=%v receive CSDaoChang100PlayerInfoReq msg=%v", cliId.SessID, msg)
  234. ackMsg := &serverproto.SCDaoChang100PlayerInfoAck{}
  235. rankMode.DaoChang100Mag.GetPosInfoByUid(msg.PlayerUid, ackMsg)
  236. model.ServiceReplay(ev, ackMsg)
  237. })
  238. //获取占位信息
  239. serverproto.Handle_RANK_SSDaoChang100PosInfoListReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  240. msg := ev.Msg().(*serverproto.SSDaoChang100PosInfoListReq)
  241. //util.DebugF("uid=%v receive SSDaoChang100PosInfoListReq msg=%v", cliId.SessID, msg)
  242. ackMsg := &serverproto.SSDaoChang100PosInfoListAck{}
  243. rankMode.DaoChang100Mag.GetPosInfoList(msg.PosIdxList, ackMsg)
  244. model.ServiceReplay(ev, ackMsg)
  245. })
  246. //发起占位挑战
  247. serverproto.Handle_RANK_SSDaoChang100ChallengeReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  248. msg := ev.Msg().(*serverproto.SSDaoChang100ChallengeReq)
  249. util.DebugF("uid=%v receive SSDaoChang100ChallengeReq msg=%v", cliId.SessID, msg)
  250. ackMsg := &serverproto.SSDaoChang100ChallengeAck{}
  251. rankMode.DaoChang100Mag.ChallengePre(msg.PosIdx, msg.HasChallengeCount, msg.OwnerBrief, ackMsg, ev)
  252. model.ServiceReplay(ev, ackMsg)
  253. })
  254. //挑战成功/失败通知
  255. serverproto.Handle_RANK_SSDaoChang100ChallengeResultReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  256. msg := ev.Msg().(*serverproto.SSDaoChang100ChallengeResultReq)
  257. util.DebugF("uid=%v receive SSDaoChang100ChallengeResultReq msg=%v", cliId.SessID, msg)
  258. ackMsg := &serverproto.SSDaoChang100ChallengeResultAck{}
  259. rankMode.DaoChang100Mag.ChallengeResult(msg.PosIdx, msg.PosUid, msg.OwnerBrief, msg.BattleResult, ackMsg, ev)
  260. model.ServiceReplay(ev, ackMsg)
  261. })
  262. //获取收益奖励
  263. serverproto.Handle_RANK_SSDaoChang100TimeRewardReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  264. msg := ev.Msg().(*serverproto.SSDaoChang100TimeRewardReq)
  265. util.DebugF("uid=%v receive SSDaoChang100TimeRewardReq msg=%v", cliId.SessID, msg)
  266. ackMsg := &serverproto.SSDaoChang100TimeRewardAck{}
  267. rankMode.DaoChang100Mag.TimeReward(msg.Uid, msg.BaseRewardTime, msg.RewardIntervalTime, msg.NowTime, ackMsg)
  268. model.ServiceReplay(ev, ackMsg)
  269. })
  270. //占领日志信息
  271. serverproto.Handle_RANK_SSDaoChang100LogReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  272. msg := ev.Msg().(*serverproto.SSDaoChang100LogReq)
  273. util.DebugF("uid=%v receive SSDaoChang100LogReq msg=%v", cliId.SessID, msg)
  274. ackMsg := &serverproto.SSDaoChang100LogAck{}
  275. rankMode.DaoChang100Mag.GetPosIdxLog(cliId.SessID, msg.BeginTime, ackMsg)
  276. model.ServiceReplay(ev, ackMsg)
  277. })
  278. //请求冲榜赛季数据
  279. serverproto.Handle_RANK_SSOnlineGetRushInfoReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  280. msg := ev.Msg().(*serverproto.SSOnlineGetRushInfoReq)
  281. util.DebugF("uid=%v receive SSOnlineGetRushInfoReq msg=%v", cliId.SessID, msg)
  282. ackMsg := &serverproto.SSOnlineGetRushInfoAck{
  283. Uid: msg.Uid,
  284. }
  285. //打包爬塔冲榜数据
  286. towerRushData := &serverproto.RushActivityData{
  287. RushType: model.Rush_Type_Tower,
  288. }
  289. rankMode.TowerMag.GetCurRushInfo(towerRushData)
  290. ackMsg.RushData = append(ackMsg.RushData, towerRushData)
  291. //打包英灵殿冲榜数据
  292. arenaRushData := &serverproto.RushActivityData{
  293. RushType: model.Rush_Type_Arena,
  294. }
  295. rankMode.ArenaMag.GetCurRushInfo(arenaRushData)
  296. ackMsg.RushData = append(ackMsg.RushData, arenaRushData)
  297. //打包推图冲榜数据
  298. mapRushData := &serverproto.RushActivityData{
  299. RushType: model.Rush_Type_Map,
  300. }
  301. rankMode.MapScoreMag.GetCurRushInfo(mapRushData)
  302. ackMsg.RushData = append(ackMsg.RushData, mapRushData)
  303. //打包宠物冲榜数据
  304. petRushData := &serverproto.RushActivityData{
  305. RushType: model.Rush_Type_Pet,
  306. }
  307. rankMode.PetRankMag.GetCurRushInfo(petRushData)
  308. ackMsg.RushData = append(ackMsg.RushData, petRushData)
  309. //打包技能冲榜数据
  310. skillRushData := &serverproto.RushActivityData{
  311. RushType: model.Rush_Type_Skill,
  312. }
  313. rankMode.SkillRankMag.GetCurRushInfo(skillRushData)
  314. ackMsg.RushData = append(ackMsg.RushData, skillRushData)
  315. model.ServiceReplay(ev, ackMsg)
  316. })
  317. //获取冲榜详细信息
  318. serverproto.Handle_RANK_SSGetRushDataReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  319. msg := ev.Msg().(*serverproto.SSGetRushDataReq)
  320. util.DebugF("uid=%v receive SSGetRushDataReq msg=%v", cliId.SessID, msg)
  321. ackMsg := &serverproto.SSGetRushDataAck{
  322. Uid: msg.Uid,
  323. RushType: msg.RushType,
  324. }
  325. if msg.RushType == model.Rush_Type_Tower {
  326. rankMode.TowerMag.GetSelfRushData(ackMsg)
  327. } else if msg.RushType == model.Rush_Type_Arena {
  328. rankMode.ArenaMag.GetSelfRushData(ackMsg)
  329. } else if msg.RushType == model.Rush_Type_Map {
  330. rankMode.MapScoreMag.GetSelfRushData(ackMsg)
  331. } else if msg.RushType == model.Rush_Type_Pet {
  332. rankMode.PetRankMag.GetSelfRushData(ackMsg)
  333. } else if msg.RushType == model.Rush_Type_Skill {
  334. rankMode.SkillRankMag.GetSelfRushData(ackMsg)
  335. }
  336. model.ServiceReplay(ev, ackMsg)
  337. })
  338. serverproto.Handle_RANK_SSRushDataChangeReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  339. msg := ev.Msg().(*serverproto.SSRushDataChangeReq)
  340. util.DebugF("uid=%v receive SSRushDataChangeReq msg=%v", cliId.SessID, msg)
  341. ackMsg := &serverproto.SSRushDataChangeAck{
  342. Uid: msg.Uid,
  343. RushType: msg.RushType,
  344. Score: msg.Score,
  345. Score2: msg.Score2,
  346. Score3: msg.Score3,
  347. }
  348. if msg.RushType == model.Rush_Type_Tower {
  349. rankMode.TowerMag.CheckRushTowerAddScore(ackMsg)
  350. } else if msg.RushType == model.Rush_Type_Arena {
  351. rankMode.ArenaMag.CheckRushArenaAddScore(ackMsg)
  352. } else if msg.RushType == model.Rush_Type_Map {
  353. rankMode.MapScoreMag.CheckRushMapAddScore(ackMsg)
  354. } else if msg.RushType == model.Rush_Type_Pet {
  355. rankMode.PetRankMag.CheckRushPetAddScore(ackMsg)
  356. } else if msg.RushType == model.Rush_Type_Skill {
  357. rankMode.SkillRankMag.CheckRushSkillAddScore(ackMsg)
  358. }
  359. model.ServiceReplay(ev, ackMsg)
  360. })
  361. //主动领取排名奖励请求
  362. serverproto.Handle_RANK_SSGetRushRewardReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  363. msg := ev.Msg().(*serverproto.SSGetRushRewardReq)
  364. util.DebugF("uid=%v receive SSGetRushRewardReq msg=%v", cliId.SessID, msg)
  365. ackMsg := &serverproto.SSGetRushRewardAck{
  366. Uid: msg.Uid,
  367. RewardType: msg.RewardType,
  368. RushType: msg.RushType,
  369. }
  370. if msg.RushType == model.Rush_Type_Tower {
  371. rankMode.TowerMag.GetRushTowerReward(ackMsg, msg.RewardType)
  372. } else if msg.RushType == model.Rush_Type_Arena {
  373. rankMode.ArenaMag.GetRushArenaReward(ackMsg, msg.RewardType)
  374. } else if msg.RushType == model.Rush_Type_Map {
  375. rankMode.MapScoreMag.GetRushMapReward(ackMsg, msg.RewardType)
  376. } else if msg.RushType == model.Rush_Type_Pet {
  377. rankMode.PetRankMag.GetRushPetReward(ackMsg, msg.RewardType)
  378. } else if msg.RushType == model.Rush_Type_Skill {
  379. rankMode.SkillRankMag.GetRushSkillReward(ackMsg, msg.RewardType)
  380. }
  381. model.ServiceReplay(ev, ackMsg)
  382. })
  383. //主动领取保底奖励请求
  384. serverproto.Handle_RANK_SSGetRushBaseRewardReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  385. msg := ev.Msg().(*serverproto.SSGetRushBaseRewardReq)
  386. util.DebugF("uid=%v receive SSGetRushBaseRewardReq msg=%v", cliId.SessID, msg)
  387. ackMsg := &serverproto.SSGetRushBaseRewardAck{
  388. Uid: msg.Uid,
  389. RushType: msg.RushType,
  390. }
  391. if msg.RushType == model.Rush_Type_Tower {
  392. rankMode.TowerMag.GetRushBaseReward(msg.Uid, msg.RushRound, ackMsg)
  393. } else if msg.RushType == model.Rush_Type_Arena {
  394. rankMode.ArenaMag.GetRushBaseReward(msg.Uid, msg.RushRound, ackMsg)
  395. } else if msg.RushType == model.Rush_Type_Map {
  396. rankMode.MapScoreMag.GetRushBaseReward(msg.Uid, msg.RushRound, ackMsg)
  397. } else if msg.RushType == model.Rush_Type_Pet {
  398. rankMode.PetRankMag.GetRushBaseReward(msg.Uid, msg.RushRound, ackMsg)
  399. } else if msg.RushType == model.Rush_Type_Skill {
  400. rankMode.SkillRankMag.GetRushBaseReward(msg.Uid, msg.RushRound, ackMsg)
  401. }
  402. model.ServiceReplay(ev, ackMsg)
  403. })
  404. //冲榜商店信息请求
  405. serverproto.Handle_RANK_SSGetRushShopInfoReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  406. msg := ev.Msg().(*serverproto.SSGetRushShopInfoReq)
  407. util.DebugF("uid=%v receive SSGetRushShopInfoReq msg=%v", cliId.SessID, msg)
  408. ackMsg := &serverproto.SSGetRushShopInfoAck{
  409. Uid: msg.Uid,
  410. RushType: msg.RushType,
  411. ShopType: msg.ShopType,
  412. SubShopId: msg.SubShopId,
  413. }
  414. if msg.RushType == model.Rush_Type_Tower {
  415. rushStage, rushId := rankMode.TowerMag.GetRushInfo()
  416. ackMsg.RushStage = rushStage
  417. ackMsg.RushRound = rushId
  418. } else if msg.RushType == model.Rush_Type_Arena {
  419. rushStage, rushId := rankMode.ArenaMag.GetRushInfo()
  420. ackMsg.RushStage = rushStage
  421. ackMsg.RushRound = rushId
  422. } else if msg.RushType == model.Rush_Type_Map {
  423. rushStage, rushId := rankMode.MapScoreMag.GetRushInfo()
  424. ackMsg.RushStage = rushStage
  425. ackMsg.RushRound = rushId
  426. } else if msg.RushType == model.Rush_Type_Pet {
  427. rushStage, rushId := rankMode.PetRankMag.GetRushInfo()
  428. ackMsg.RushStage = rushStage
  429. ackMsg.RushRound = rushId
  430. } else if msg.RushType == model.Rush_Type_Skill {
  431. rushStage, rushId := rankMode.SkillRankMag.GetRushInfo()
  432. ackMsg.RushStage = rushStage
  433. ackMsg.RushRound = rushId
  434. }
  435. model.ServiceReplay(ev, ackMsg)
  436. })
  437. //冲榜商店购买请求
  438. serverproto.Handle_RANK_SSGetRushShopBuyReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  439. msg := ev.Msg().(*serverproto.SSGetRushShopBuyReq)
  440. util.DebugF("uid=%v receive SSGetRushShopBuyReq msg=%v", cliId.SessID, msg)
  441. ackMsg := &serverproto.SSGetRushShopBuyAck{
  442. Uid: msg.Uid,
  443. ShopType: msg.ShopType,
  444. GoodsId: msg.GoodsId,
  445. GoodsNum: msg.GoodsNum,
  446. }
  447. if msg.RushType == model.Rush_Type_Tower {
  448. rushStage, rushId := rankMode.TowerMag.GetRushInfo()
  449. ackMsg.RushStage = rushStage
  450. ackMsg.RushRound = rushId
  451. } else if msg.RushType == model.Rush_Type_Arena {
  452. rushStage, rushId := rankMode.ArenaMag.GetRushInfo()
  453. ackMsg.RushStage = rushStage
  454. ackMsg.RushRound = rushId
  455. } else if msg.RushType == model.Rush_Type_Map {
  456. rushStage, rushId := rankMode.MapScoreMag.GetRushInfo()
  457. ackMsg.RushStage = rushStage
  458. ackMsg.RushRound = rushId
  459. } else if msg.RushType == model.Rush_Type_Pet {
  460. rushStage, rushId := rankMode.PetRankMag.GetRushInfo()
  461. ackMsg.RushStage = rushStage
  462. ackMsg.RushRound = rushId
  463. } else if msg.RushType == model.Rush_Type_Skill {
  464. rushStage, rushId := rankMode.SkillRankMag.GetRushInfo()
  465. ackMsg.RushStage = rushStage
  466. ackMsg.RushRound = rushId
  467. }
  468. model.ServiceReplay(ev, ackMsg)
  469. })
  470. serverproto.Handle_RANK_SSGetRushRankRewardReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  471. msg := ev.Msg().(*serverproto.SSGetRushRankRewardReq)
  472. util.DebugF("uid=%v receive SSGetRushRankRewardReq msg=%v", cliId.SessID, msg)
  473. ackMsg := &serverproto.SSGetRushRankRewardAck{
  474. Uid: msg.Uid,
  475. }
  476. for _, data := range msg.RushData {
  477. reward := &serverproto.RankRewardList{
  478. RushType:data.Key,
  479. }
  480. if data.Key == model.Rush_Type_Tower {
  481. rankMode.TowerMag.GetRushReward(msg.Uid, data.Value, reward)
  482. } else if data.Key == model.Rush_Type_Arena {
  483. rankMode.ArenaMag.GetRushReward(msg.Uid, data.Value, reward)
  484. } else if data.Key == model.Rush_Type_Map {
  485. rankMode.MapScoreMag.GetRushReward(msg.Uid, data.Value, reward)
  486. } else if data.Key == model.Rush_Type_Pet {
  487. rankMode.PetRankMag.GetRushReward(msg.Uid, data.Value, reward)
  488. } else if data.Key == model.Rush_Type_Skill {
  489. rankMode.SkillRankMag.GetRushReward(msg.Uid, data.Value, reward)
  490. }
  491. ackMsg.RewardList = append(ackMsg.RewardList, reward)
  492. }
  493. model.ServiceReplay(ev, ackMsg)
  494. })
  495. //主动领取排名奖励请求
  496. /*
  497. serverproto.Handle_RANK_SSGetRushRankReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  498. msg := ev.Msg().(*serverproto.SSGetRushRankReq)
  499. util.DebugF("uid=%v receive SSGetRushRankReq msg=%v", cliId.SessID, msg)
  500. ackMsg := &serverproto.SSGetRushRankAck{
  501. Uid: msg.Uid,
  502. RushType: msg.RushType,
  503. }
  504. if msg.RushType == model.Rush_Type_Tower {
  505. rankMode.TowerMag.GetRushReward(msg.Uid, msg.RushRound, ackMsg)
  506. } else if msg.RushType == model.Rush_Type_Arena {
  507. rankMode.ArenaMag.GetRushReward(msg.Uid, msg.RushRound, ackMsg)
  508. } else if msg.RushType == model.Rush_Type_Map {
  509. rankMode.MapScoreMag.GetRushReward(msg.Uid, msg.RushRound, ackMsg)
  510. } else if msg.RushType == model.Rush_Type_Pet {
  511. rankMode.PetRankMag.GetRushReward(msg.Uid, msg.RushRound, ackMsg)
  512. } else if msg.RushType == model.Rush_Type_Skill {
  513. rankMode.SkillRankMag.GetRushReward(msg.Uid, msg.RushRound, ackMsg)
  514. }
  515. model.ServiceReplay(ev, ackMsg)
  516. })
  517. */
  518. //主动领取排名奖励请求
  519. serverproto.Handle_RANK_SSTestRushRankRewardNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  520. msg := ev.Msg().(*serverproto.SSTestRushRankRewardNtf)
  521. util.DebugF("uid=%v receive SSTestRushRankRewardNtf msg=%v", cliId.SessID, msg)
  522. if msg.RushType == model.Rush_Type_Tower {
  523. rankMode.TowerMag.SendRushTowerReward()
  524. } else if msg.RushType == model.Rush_Type_Arena {
  525. rankMode.ArenaMag.SendRushArenaReward()
  526. } else if msg.RushType == model.Rush_Type_Map{
  527. rankMode.MapScoreMag.SendRushMapReward()
  528. } else if msg.RushType == model.Rush_Type_Pet {
  529. rankMode.PetRankMag.SendRushPetReward()
  530. }
  531. })
  532. serverproto.Handle_RANK_SSRushMapScoreNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  533. msg := ev.Msg().(*serverproto.SSRushMapScoreNtf)
  534. util.DebugF("uid=%v receive SSRushMapScoreNtf msg=%v", cliId.SessID, msg)
  535. rankMode.MapScoreMag.AddMapScoreRank(msg.Uid, msg.Score)
  536. })
  537. serverproto.Handle_RANK_SSUpdateKeepSakeRankNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  538. msg := ev.Msg().(*serverproto.SSUpdateKeepSakeRankNtf)
  539. util.DebugF("uid=%v receive SSUpdateKeepSakeRankNtf msg=%v", cliId.SessID, msg)
  540. rankMode.KeepSakeMag.OnKeepSakeCollectChange(msg.Uid, msg.KeepSakeId)
  541. })
  542. serverproto.Handle_RANK_CSKeepSakeRankReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  543. msg := ev.Msg().(*serverproto.CSKeepSakeRankReq)
  544. util.DebugF("uid=%v receive CSKeepSakeRankReq msg=%v", cliId.SessID, msg)
  545. rankMode.KeepSakeMag.KeepSakeRankInfo(msg, ev)
  546. })
  547. //精彩活动获取全局数据
  548. serverproto.Handle_RANK_SSActivitiesCollectionServerDataReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  549. msg := ev.Msg().(*serverproto.SSActivitiesCollectionServerDataReq)
  550. util.DebugF("uid=%v SSActivitiesCollectionServerDataReq msg=%v", cliId.SessID, msg)
  551. ssAckMsg := &serverproto.SSActivitiesCollectionServerDataAck{
  552. ActivityId: msg.ActivityId,
  553. RewardIdx: msg.RewardIdx,
  554. PetData: msg.PetData,
  555. }
  556. //清空全局数据方式不用通知
  557. if rankMode.GetActivitiesCollectionData(msg.ActivityId, msg.RewardIdx, msg.ServerLimitNum, ssAckMsg) {
  558. model.ServiceReplay(ev, ssAckMsg)
  559. }
  560. })
  561. //勇士积分排行榜
  562. //积分更新
  563. serverproto.Handle_RANK_SSExpeditionUpdateScoreRankNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  564. msg := ev.Msg().(*serverproto.SSExpeditionUpdateScoreRankNtf)
  565. util.DebugF("uid=%v receive SSExpeditionUpdateScoreRankNtf msg=%v", cliId.SessID, msg)
  566. rankMode.UpdateExpeditionScoreRank(msg.CurScore, cliId.SessID)
  567. })
  568. //获取排行榜
  569. serverproto.Handle_RANK_SSExpeditionScoreRankListReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  570. msg := ev.Msg().(*serverproto.SSExpeditionScoreRankListReq)
  571. util.DebugF("uid=%v receive SSExpeditionScoreRankListReq msg=%v", cliId.SessID, msg)
  572. ssAckMsg := &serverproto.SSExpeditionScoreRankListAck{
  573. Error: int32(serverproto.ErrorCode_ERROR_OK),
  574. StartIdx: msg.StartIdx,
  575. }
  576. rankMode.ExpeditionScoreRank(msg.StartIdx, ssAckMsg, cliId.SessID)
  577. model.ServiceReplay(ev, ssAckMsg)
  578. })
  579. //更新宠物战力排行榜,更新上阵宠物
  580. serverproto.Handle_RANK_SSRushPetInfoChangeNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  581. msg := ev.Msg().(*serverproto.SSRushPetInfoChangeNtf)
  582. util.DebugF("uid=%v receive SSRushPetInfoChangeNtf msg=%v", cliId.SessID, msg)
  583. rankMode.PetRankMag.RefreshRushPetData(msg)
  584. })
  585. //请求宠物冲榜后续数据
  586. serverproto.Handle_RANK_CSPetActivityRankReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  587. msg := ev.Msg().(*serverproto.CSPetActivityRankReq)
  588. util.DebugF("uid=%v receive CSPetActivityRankReq msg=%v", cliId.SessID, msg)
  589. ackMsg := &serverproto.SCPetActivityRankAck {
  590. Error: int32(serverproto.ErrorCode_ERROR_FAIL),
  591. Page: msg.Page,
  592. }
  593. ackMsg.Error = int32(rankMode.PetRankMag.GetRushPetRankInfo(msg.Page, ackMsg))
  594. model.ServiceReplay(ev, ackMsg)
  595. })
  596. //更新技能排行
  597. serverproto.Handle_RANK_SSRushSkillInfoChangeNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  598. msg := ev.Msg().(*serverproto.SSRushSkillInfoChangeNtf)
  599. util.DebugF("uid=%v receive SSRushSkillInfoChangeNtf msg=%v", cliId.SessID, msg)
  600. rankMode.SkillRankMag.RefreshRushSkillData(msg)
  601. })
  602. //请求技能冲榜后续数据
  603. serverproto.Handle_RANK_CSRushSkillActivityRankReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  604. msg := ev.Msg().(*serverproto.CSRushSkillActivityRankReq)
  605. util.DebugF("uid=%v receive CSRushSkillActivityRankReq msg=%v", cliId.SessID, msg)
  606. ackMsg := &serverproto.SCRushSkillActivityRankAck {
  607. Error: int32(serverproto.ErrorCode_ERROR_FAIL),
  608. Page: msg.Page,
  609. }
  610. ackMsg.Error = int32(rankMode.SkillRankMag.GetRushSkillRankInfo(msg.Page, ackMsg))
  611. model.ServiceReplay(ev, ackMsg)
  612. })
  613. //偶像季,请求自己的粉丝列表
  614. serverproto.Handle_RANK_SSCompetitionSelfFansInfoReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  615. msg := ev.Msg().(*serverproto.SSCompetitionSelfFansInfoReq)
  616. util.DebugF("uid=%v receive SSCompetitionSelfFansInfoReq msg=%v", cliId.SessID, msg)
  617. ackMsg := &serverproto.SSCompetitionSelfFansInfoAck {
  618. Error: int32(serverproto.ErrorCode_ERROR_FAIL),
  619. Uid: msg.Uid,
  620. }
  621. ackMsg.Error = int32(rankMode.CompetitionMag.GetSelfFansInfo(msg.Uid, msg.CompetitionId, ackMsg))
  622. model.ServiceReplay(ev, ackMsg)
  623. })
  624. //请求技能冲榜后续数据
  625. serverproto.Handle_RANK_SSCompetitionVoteRankReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  626. msg := ev.Msg().(*serverproto.SSCompetitionVoteRankReq)
  627. util.DebugF("uid=%v receive SSCompetitionVoteRankReq msg=%v", cliId.SessID, msg)
  628. ackMsg := &serverproto.SSCompetitionVoteRankAck{
  629. Error: int32(serverproto.ErrorCode_ERROR_FAIL),
  630. Page: msg.Page,
  631. Uid: msg.Uid,
  632. IsEnd: false,
  633. }
  634. ackMsg.Error = int32(rankMode.CompetitionMag.GetVoteRank(msg.Page, msg.CompetitionId, ackMsg))
  635. model.ServiceReplay(ev, ackMsg)
  636. })
  637. //偶像季请求偶像馈赠排名
  638. serverproto.Handle_RANK_SSCompetitionFansRewardRankReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  639. msg := ev.Msg().(*serverproto.SSCompetitionFansRewardRankReq)
  640. util.DebugF("uid=%v receive SSCompetitionFansRewardRankReq msg=%v", cliId.SessID, msg)
  641. ackMsg := &serverproto.SSCompetitionFansRewardRankAck{
  642. Error: int32(serverproto.ErrorCode_ERROR_FAIL),
  643. Page: msg.Page,
  644. IsEnd: false,
  645. }
  646. ackMsg.Error = int32(rankMode.CompetitionMag.GetFansRewardRankInfo(msg.Page, msg.CompetitionId, ackMsg))
  647. model.ServiceReplay(ev, ackMsg)
  648. })
  649. //偶像季,粉丝请求领取偶像馈赠宝箱
  650. serverproto.Handle_RANK_SSCompetitionFansGetRewardReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  651. msg := ev.Msg().(*serverproto.SSCompetitionFansGetRewardReq)
  652. util.DebugF("uid=%v receive SSCompetitionFansGetRewardReq msg=%v", cliId.SessID, msg)
  653. ackMsg := &serverproto.SSCompetitionFansGetRewardAck{
  654. Error: int32(serverproto.ErrorCode_ERROR_FAIL),
  655. Uid: msg.Uid,
  656. RewardLevel: msg.RewardLevel,
  657. IdolUid: msg.IdolUid,
  658. }
  659. bRet, score := rankMode.CompetitionMag.GetSingleFansRewardData(msg.IdolUid, msg.CompetitionId)
  660. ackMsg.Error = int32(bRet)
  661. ackMsg.IdolBoxCount = score
  662. model.ServiceReplay(ev, ackMsg)
  663. })
  664. //偶像季,购买宝箱更新馈赠排名
  665. serverproto.Handle_RANK_SSCompetitionAddIdolBoxScoreNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  666. msg := ev.Msg().(*serverproto.SSCompetitionAddIdolBoxScoreNtf)
  667. util.DebugF("uid=%v receive SSCompetitionAddIdolBoxScoreNtf msg=%v", cliId.SessID, msg)
  668. rankMode.CompetitionMag.AddIdolBoxScore(msg.Uid, msg.Score, msg.CompetitionId)
  669. })
  670. //偶像季,赛季结束,给玩家发送奖励
  671. serverproto.Handle_RANK_SSCompetitionFansGetAllRewardReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  672. msg := ev.Msg().(*serverproto.SSCompetitionFansGetAllRewardReq)
  673. util.DebugF("uid=%v receive SSCompetitionFansGetAllRewardReq msg=%v", cliId.SessID, msg)
  674. ackMsg := &serverproto.SSCompetitionFansGetAllRewardAck{
  675. CompetitionId: msg.CompetitionId,
  676. CompetitionSubId: msg.CompetitionSubId,
  677. }
  678. rankMode.CompetitionMag.GetAllFansReward(msg, ackMsg)
  679. model.ServiceReplay(ev, ackMsg)
  680. })
  681. serverproto.Handle_RANK_SSCompetitionGetPlayerVoteRankReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  682. msg := ev.Msg().(*serverproto.SSCompetitionGetPlayerVoteRankReq)
  683. util.DebugF("uid=%v receive SSCompetitionGetPlayerVoteRankReq msg=%v", cliId.SessID, msg)
  684. ackMsg := &serverproto.SSCompetitionGetPlayerVoteRankAck{
  685. Error: int32(serverproto.ErrorCode_ERROR_FAIL),
  686. ReqUid: msg.ReqUid,
  687. }
  688. bRet := rankMode.CompetitionMag.GetIdolRankData(msg.Uid, msg.CompetitionId, ackMsg)
  689. ackMsg.Error = int32(bRet)
  690. model.ServiceReplay(ev, ackMsg)
  691. })
  692. }