daochang100_msg.go 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344
  1. package msg
  2. import (
  3. "rocommon"
  4. "rocommon/util"
  5. "roserver/baseserver/model"
  6. model2 "roserver/game/model"
  7. "roserver/serverproto"
  8. )
  9. func init() {
  10. //////百人道场
  11. //获取玩家自身占位信息
  12. serverproto.Handle_GAME_CSDaoChang100PlayerInfoReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  13. msg := ev.Msg().(*serverproto.CSDaoChang100PlayerInfoReq)
  14. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  15. if role == nil {
  16. return
  17. }
  18. util.DebugF("uid=%v receive CSDaoChang100PlayerInfoReq ms=%v", role.GetUUid(), msg)
  19. role.(model2.RoleLogicOuter).GetDaoChang100SelfPosInfo(msg)
  20. })
  21. //from rank
  22. serverproto.Handle_GAME_SCDaoChang100PlayerInfoAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  23. msg := ev.Msg().(*serverproto.SCDaoChang100PlayerInfoAck)
  24. role := model2.RoleMag.GetRole(cliId)
  25. if role == nil {
  26. return
  27. }
  28. util.DebugF("uid=%v receive SCDaoChang100PlayerInfoAck ms=%v", role.GetUUid(), msg)
  29. if role.(*model2.Role).GetRoleDaoChang100() != nil {
  30. role.(*model2.Role).GetRoleDaoChang100().OnSelfPosIdxData(msg)
  31. }
  32. })
  33. //获取百人道场占位数据
  34. //列表上限20
  35. serverproto.Handle_GAME_CSDaoChang100Req = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  36. msg := ev.Msg().(*serverproto.CSDaoChang100Req)
  37. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  38. if role == nil {
  39. return
  40. }
  41. //util.DebugF("uid=%v receive CSDaoChang100Req ms=%v", role.GetUUid(), msg)
  42. role.(model2.RoleLogicOuter).GetDaoChang100PosInfo(msg.PosIdxList)
  43. })
  44. //from rank
  45. serverproto.Handle_GAME_SSDaoChang100PosInfoListAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  46. msg := ev.Msg().(*serverproto.SSDaoChang100PosInfoListAck)
  47. role := model2.RoleMag.GetRole(cliId)
  48. if role == nil {
  49. return
  50. }
  51. //util.DebugF("uid=%v receive SSDaoChang100PosInfoListAck ms=%v", role.GetUUid(), msg)
  52. ackMsg := &serverproto.SCDaoChang100Ack{
  53. Error: msg.Error,
  54. PosDataList: msg.PosDataList,
  55. }
  56. role.ReplayGate(ackMsg, true)
  57. })
  58. //获取占领记录
  59. serverproto.Handle_GAME_CSDaoChang100LogReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  60. msg := ev.Msg().(*serverproto.CSDaoChang100LogReq)
  61. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  62. if role == nil {
  63. return
  64. }
  65. util.DebugF("uid=%v receive CSDaoChang100LogReq ms=%v", role.GetUUid(), msg)
  66. role.(model2.RoleLogicOuter).GetDaoChang100Log(msg.BeginTime)
  67. })
  68. //from rank
  69. serverproto.Handle_GAME_SSDaoChang100LogAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  70. msg := ev.Msg().(*serverproto.SSDaoChang100LogAck)
  71. role := model2.RoleMag.GetRole(cliId)
  72. if role == nil {
  73. return
  74. }
  75. util.InfoF("uid=%v receive SSDaoChang100LogAck ms=%v", role.GetUUid(), msg)
  76. if role.(*model2.Role).GetRoleDaoChang100() != nil {
  77. role.(*model2.Role).GetRoleDaoChang100().OnGetDaoChang100Log(msg.LogList, msg.IsEnd)
  78. }
  79. })
  80. //挑战占位(挑战成功后发送通知消息SCDaoChang100DataChangNtf)
  81. serverproto.Handle_GAME_CSDaoChang100ChallengeReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  82. msg := ev.Msg().(*serverproto.CSDaoChang100ChallengeReq)
  83. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  84. if role == nil {
  85. return
  86. }
  87. util.DebugF("uid=%v receive CSDaoChang100ChallengeReq ms=%v", role.GetUUid(), msg)
  88. role.(model2.RoleLogicOuter).DaoChang100ChallengeReq(msg.PosIdx)
  89. })
  90. //from rank
  91. serverproto.Handle_GAME_SSDaoChang100ChallengeAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  92. msg := ev.Msg().(*serverproto.SSDaoChang100ChallengeAck)
  93. role := model2.RoleMag.GetRole(cliId)
  94. if role == nil {
  95. return
  96. }
  97. util.InfoF("uid=%v receive SSDaoChang100ChallengeAck ms=%v", role.GetUUid(), msg)
  98. if role.(*model2.Role).GetRoleDaoChang100() != nil {
  99. role.(*model2.Role).GetRoleDaoChang100().OnDaoChang100Challenge(msg)
  100. }
  101. })
  102. serverproto.Handle_GAME_CSDaoChang100ChallengeResultReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  103. msg := ev.Msg().(*serverproto.CSDaoChang100ChallengeResultReq)
  104. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  105. if role == nil {
  106. return
  107. }
  108. util.InfoF("uid=%v receive CSDaoChang100ChallengeResultReq ms=%v", role.GetUUid(), msg)
  109. role.(model2.RoleLogicOuter).DaoChang100ChallengeResultReq(msg)
  110. })
  111. //from rank
  112. serverproto.Handle_GAME_SSDaoChang100ChallengeResultAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  113. msg := ev.Msg().(*serverproto.SSDaoChang100ChallengeResultAck)
  114. role := model2.RoleMag.GetRole(cliId)
  115. if role == nil {
  116. return
  117. }
  118. util.InfoF("uid=%v receive SSDaoChang100ChallengeResultAck ms=%v", role.GetUUid(), msg)
  119. // 1,占位成功消耗次数
  120. // 2,占位成功/失败 日志变化通知
  121. if role.(*model2.Role).GetRoleDaoChang100() != nil {
  122. role.(*model2.Role).GetRoleDaoChang100().OnChallengeResult(msg)
  123. }
  124. })
  125. //from rank|rank -> game -> social -> other game
  126. //来自rank或者来自其他game服务器的消息通知
  127. serverproto.Handle_GAME_SSDaoChang100ChallengeResultNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  128. msg := ev.Msg().(*serverproto.SSDaoChang100ChallengeResultNtf)
  129. if !msg.FromOtherGame {
  130. //直接来自rank
  131. role := model2.RoleMag.GetRole(cliId)
  132. if role == nil {
  133. return
  134. }
  135. util.InfoF("uid=%v receive SSDaoChang100ChallengeResultNtf ms=%v", role.GetUUid(), msg)
  136. ntfRole := model2.RoleMag.GetRoleFromUUid(msg.NtfUid)
  137. if ntfRole == nil {
  138. ntfRole = model2.RoleMag.GetRoleFromOffline(msg.NtfUid)
  139. if ntfRole == nil {
  140. //通过social发送给其他服务器
  141. msg.FromOtherGame = true
  142. role.(*model2.Role).SendSocial(msg)
  143. return
  144. }
  145. }
  146. if ntfRole.(*model2.Role).GetRoleDaoChang100() != nil {
  147. ntfRole.(*model2.Role).GetRoleDaoChang100().OnChallengeResultNtf(msg)
  148. }
  149. } else {
  150. util.InfoF("receive SSDaoChang100ChallengeResultNtf ms=%v", msg)
  151. //来自其他服务器
  152. ntfRole := model2.RoleMag.GetRoleFromUUid(msg.NtfUid)
  153. if ntfRole == nil {
  154. ntfRole = model2.RoleMag.GetRoleFromOffline(msg.NtfUid)
  155. if ntfRole == nil {
  156. return
  157. }
  158. }
  159. if ntfRole.(*model2.Role).GetRoleDaoChang100() != nil {
  160. ntfRole.(*model2.Role).GetRoleDaoChang100().OnChallengeResultNtf(msg)
  161. }
  162. }
  163. })
  164. //获取收益奖励
  165. serverproto.Handle_GAME_CSDaoChang100TimeRewardReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  166. msg := ev.Msg().(*serverproto.CSDaoChang100TimeRewardReq)
  167. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  168. if role == nil {
  169. return
  170. }
  171. util.InfoF("uid=%v receive CSDaoChang100TimeRewardReq ms=%v", role.GetUUid(), msg)
  172. role.(model2.RoleLogicOuter).DaoChang100TimeRewardReq()
  173. })
  174. //from rank
  175. serverproto.Handle_GAME_SSDaoChang100TimeRewardAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  176. msg := ev.Msg().(*serverproto.SSDaoChang100TimeRewardAck)
  177. role := model2.RoleMag.GetRole(cliId)
  178. if role == nil {
  179. return
  180. }
  181. util.InfoF("uid=%v receive SSDaoChang100TimeRewardAck ms=%v", role.GetUUid(), msg)
  182. if role.(*model2.Role).GetRoleDaoChang100() != nil {
  183. role.(*model2.Role).GetRoleDaoChang100().OnTimeReward(msg)
  184. }
  185. })
  186. //购买挑战次数
  187. serverproto.Handle_GAME_CSDaoChang100BuyChallengeCountReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  188. msg := ev.Msg().(*serverproto.CSDaoChang100BuyChallengeCountReq)
  189. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  190. if role == nil {
  191. return
  192. }
  193. util.DebugF("uid=%v receive CSDaoChang100BuyChallengeCountReq ms=%v", role.GetUUid(), msg)
  194. role.(model2.RoleLogicOuter).DaoChang100BuyChallengeCount()
  195. })
  196. //道场口号设置
  197. serverproto.Handle_GAME_CSDaoChang100SetTipsReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  198. msg := ev.Msg().(*serverproto.CSDaoChang100SetTipsReq)
  199. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  200. if role == nil {
  201. return
  202. }
  203. util.DebugF("uid=%v receive CSDaoChang100SetTipsReq ms=%v", role.GetUUid(), msg)
  204. role.(model2.RoleLogicOuter).DaoChang100SetTips(msg.TipDesc)
  205. })
  206. //////百人道场 转盘(根据第三赛季开启)
  207. //打开界面是获取信息(第三赛季未到时无数据,后续打开生成奖励物品)
  208. serverproto.Handle_GAME_CSDaoChang100WheelReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  209. msg := ev.Msg().(*serverproto.CSDaoChang100WheelReq)
  210. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  211. if role == nil {
  212. return
  213. }
  214. util.DebugF("uid=%v receive CSDaoChang100WheelReq ms=%v", role.GetUUid(), msg)
  215. if role.(*model2.Role).GetRoleDaoChang100() != nil {
  216. retCode := role.(*model2.Role).GetRoleDaoChang100().DaoChang100Wheel()
  217. ackMsg := &serverproto.SCDaoChang100WheelAck{
  218. Error: int32(retCode),
  219. }
  220. role.ReplayGate(ackMsg, true)
  221. }
  222. })
  223. //刷新转盘道具(未开启本轮时操作)
  224. serverproto.Handle_GAME_CSDaoChang100WheelRefreshReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  225. msg := ev.Msg().(*serverproto.CSDaoChang100WheelRefreshReq)
  226. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  227. if role == nil {
  228. return
  229. }
  230. util.DebugF("uid=%v receive CSDaoChang100WheelRefreshReq ms=%v", role.GetUUid(), msg)
  231. if role.(*model2.Role).GetRoleDaoChang100() != nil {
  232. retCode := role.(*model2.Role).GetRoleDaoChang100().DaoChang100WheelRefresh()
  233. ackMsg := &serverproto.SCDaoChang100WheelRefreshAck{
  234. Error: int32(retCode),
  235. }
  236. role.ReplayGate(ackMsg, true)
  237. }
  238. })
  239. //开启本轮转盘(开始获取奖励)
  240. serverproto.Handle_GAME_CSDaoChang100WheelOpenRewardReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  241. msg := ev.Msg().(*serverproto.CSDaoChang100WheelOpenRewardReq)
  242. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  243. if role == nil {
  244. return
  245. }
  246. util.DebugF("uid=%v receive CSDaoChang100WheelOpenRewardReq ms=%v", role.GetUUid(), msg)
  247. if role.(*model2.Role).GetRoleDaoChang100() != nil {
  248. retCode := role.(*model2.Role).GetRoleDaoChang100().DaoChang100WheelOpen()
  249. ackMsg := &serverproto.SCDaoChang100WheelOpenRewardAck{
  250. Error: int32(retCode),
  251. }
  252. role.ReplayGate(ackMsg, true)
  253. }
  254. })
  255. //转一次/转本轮(获取所有奖励)
  256. serverproto.Handle_GAME_CSDaoChang100WheelRewardReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  257. msg := ev.Msg().(*serverproto.CSDaoChang100WheelRewardReq)
  258. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  259. if role == nil {
  260. return
  261. }
  262. util.DebugF("uid=%v receive CSDaoChang100WheelRewardReq ms=%v", role.GetUUid(), msg)
  263. if role.(*model2.Role).GetRoleDaoChang100() != nil {
  264. retCode := role.(*model2.Role).GetRoleDaoChang100().DaoChang100WheelReward(msg.RewardAll)
  265. if retCode != serverproto.ErrorCode_ERROR_OK {
  266. ackMsg := &serverproto.SCDaoChang100WheelRewardAck{
  267. Error: int32(retCode),
  268. RewardAll: msg.RewardAll,
  269. }
  270. role.ReplayGate(ackMsg, true)
  271. }
  272. }
  273. })
  274. //关闭本轮转盘
  275. serverproto.Handle_GAME_CSDaoChang100WheelCloseRewardReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  276. msg := ev.Msg().(*serverproto.CSDaoChang100WheelCloseRewardReq)
  277. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  278. if role == nil {
  279. return
  280. }
  281. util.DebugF("uid=%v receive CSDaoChang100WheelCloseRewardReq ms=%v", role.GetUUid(), msg)
  282. if role.(*model2.Role).GetRoleDaoChang100() != nil {
  283. retCode := role.(*model2.Role).GetRoleDaoChang100().DaoChang100WheelClose()
  284. ackMsg := &serverproto.SCDaoChang100WheelCloseRewardAck{
  285. Error: int32(retCode),
  286. }
  287. role.ReplayGate(ackMsg, true)
  288. }
  289. })
  290. //获取转盘日志
  291. serverproto.Handle_GAME_CSDaoChang100WheelLogReq = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  292. msg := ev.Msg().(*serverproto.CSDaoChang100WheelLogReq)
  293. role := model2.RoleMag.GetRoleOrKick(cliId, ev)
  294. if role == nil {
  295. return
  296. }
  297. util.DebugF("uid=%v receive CSDaoChang100WheelLogReq ms=%v", role.GetUUid(), msg)
  298. if role.(*model2.Role).GetRoleDaoChang100() != nil {
  299. retCode := role.(*model2.Role).GetRoleDaoChang100().DaoChang100WheelLogList()
  300. if retCode != serverproto.ErrorCode_ERROR_OK {
  301. ackMsg := &serverproto.SCDaoChang100WheelLogAck{}
  302. role.ReplayGate(ackMsg, true)
  303. }
  304. }
  305. })
  306. //from db
  307. serverproto.Handle_GAME_SCDaoChang100WheelLogAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  308. msg := ev.Msg().(*serverproto.SCDaoChang100WheelLogAck)
  309. role := model2.RoleMag.GetRole(cliId)
  310. if role == nil {
  311. return
  312. }
  313. util.DebugF("uid=%v receive SCDaoChang100WheelLogAck ms=%v", role.GetUUid(), msg)
  314. role.ReplayGate(msg, true)
  315. })
  316. //from other game
  317. serverproto.Handle_GAME_SCDaoChang100WheelLogNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  318. msg := ev.Msg().(*serverproto.SCDaoChang100WheelLogNtf)
  319. role := model2.RoleMag.GetRole(cliId)
  320. if role == nil {
  321. return
  322. }
  323. util.DebugF("uid=%v receive SCDaoChang100WheelLogNtf ms=%v", role.GetUUid(), msg)
  324. model2.RoleMag.SendMsg2OnlinePlayer(msg, 0)
  325. })
  326. }