rank_msg.go 35 KB

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