源战役客户端
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

433 行
16 KiB

  1. require("game.proto.331.Require331")
  2. require("game.proto.332.Require332")
  3. require("game.customActivity.CustomActivityConst")
  4. require("game.customActivity.CustomActivityModel")
  5. --定制活动
  6. CustomActivityController = CustomActivityController or BaseClass(BaseController)
  7. function CustomActivityController:__init()
  8. CustomActivityController.Instance = self
  9. self.model = CustomActivityModel:getInstance()
  10. self:EnableCheckoutClear()
  11. self:addAllEvents()
  12. self:registerAllProtocals()
  13. end
  14. function CustomActivityController:addAllEvents()
  15. local function onLevelUp(lv)
  16. local role_lv = RoleManager.Instance.mainRoleInfo.level
  17. end
  18. RoleManager.Instance.mainRoleInfo:Bind(EventName.CHANGE_LEVEL, onLevelUp)
  19. local function onStartGame()
  20. self.model:ResetInfo()
  21. self.model:Fire(CustomActivityModel.PROTO_CCMD_EVENT, 33101)
  22. end
  23. GlobalEventSystem:Bind(EventName.OPEN_DAY_INIT, onStartGame)
  24. -- 在我一直处于登录状态时 跨天的时候 请求一次所有的活动数据
  25. local function onChangeDayUpdate()
  26. -- self.model:Fire(CustomActivityModel.PROTO_CCMD_EVENT, 33101)
  27. end
  28. EventSystem.Bind(GlobalEventSystem,ServerTimeModel.DAY_CHANGE, onChangeDayUpdate)
  29. --获取活动奖励[通用]
  30. local function get_act_reward_func(base_type, sub_type, reward_id)
  31. sub_type = sub_type or self.model:getActMinSubType(base_type)
  32. self.model:Fire(CustomActivityModel.PROTO_CCMD_EVENT, 33105, base_type, sub_type, reward_id)
  33. end
  34. GlobalEventSystem:Bind(EventName.GET_ACT_REWARD, get_act_reward_func)
  35. local function onSendCmdFunc( ... )
  36. local args_list = {...}
  37. if args_list[1] == 33104 or args_list[1] == 33611 or args_list[1] == 33613 then --获取奖励领取状态(通用)
  38. self:SendFmtToGame(args_list[1], "hh", args_list[2], args_list[3])
  39. elseif args_list[1] == 33105 or args_list[1] == 33109 or args_list[1] == 33612 then --领取活动奖励(通用)/抽奖概率配置读取
  40. self:SendFmtToGame(args_list[1], "hhh", args_list[2], args_list[3], args_list[4])
  41. elseif args_list[1] == 33106 then --特殊记录全服领取的奖励总数
  42. self:SendFmtToGame(args_list[1], "hhhh", args_list[2], args_list[3], args_list[4],args_list[5])
  43. elseif args_list[1] == 33107 then --累计消费活动信息
  44. self:SendFmtToGame(args_list[1], "hh", args_list[2], args_list[3])
  45. elseif args_list[1] == 33181 or args_list[1] == 33179 then
  46. self:SendFmtToGame(args_list[1], "h", args_list[2])
  47. elseif args_list[1] == 33183 then
  48. self:SendFmtToGame(args_list[1], "cc", args_list[2], args_list[3])
  49. elseif args_list[1] == 33184 then
  50. local validation_data = self.model:GetPelletEventValidationData()
  51. if validation_data and validation_data.errcode == 1 then -- 获取验证数据
  52. local time = validation_data.time % 1000 -- time只取后三位
  53. local draw_key = validation_data.draw_key
  54. local draw_result = args_list[2]
  55. local sub_type = args_list[3]
  56. local role_id = RoleManager.Instance.mainRoleInfo.role_id
  57. local md5_sign = string.lower(Util.md5(role_id .. draw_key .. sub_type .. draw_result .. time))
  58. self:SendFmtToGame(args_list[1], "cs", draw_result, md5_sign)
  59. end
  60. else
  61. self:SendFmtToGame(args_list[1])
  62. end
  63. end
  64. self.model:Bind(CustomActivityModel.PROTO_CCMD_EVENT, onSendCmdFunc)
  65. local function change_day_func(type)
  66. if type == SettingModel.CHANGE_DAY.HOUR_0 then -- 跨0点
  67. for base_type,v in pairs(self.model.act_com_red_award_info) do
  68. for sub_type,vv in pairs(v) do
  69. CustomActivityModel:getInstance():Fire(CustomActivityModel.PROTO_CCMD_EVENT, 33611, base_type, sub_type)
  70. end
  71. end
  72. end
  73. end
  74. GlobalEventSystem:Bind(EventName.CHANE_DAY, change_day_func)
  75. end
  76. function CustomActivityController:registerAllProtocals()
  77. self:RegisterProtocal(33100, "Handler33100")--错误码展示
  78. self:RegisterProtocal(33101, "Handler33101")--获取活动列表(登陆请求)
  79. self:RegisterProtocal(33102, "Handler33102")--活动开启推送
  80. self:RegisterProtocal(33103, "Handler33103")--活动结束
  81. self:RegisterProtocal(33104, "Handler33104")--获取奖励领取状态(通用活动)
  82. self:RegisterProtocal(33105, "Handler33105")--获取奖励领取状态(通用活动)
  83. self:RegisterProtocal(33106, "Handler33106")--特殊记录全服领取的奖励总数
  84. self:RegisterProtocal(33109, "Handler33109")--抽奖概率配置读取
  85. self:RegisterProtocal(33179, "Handler33179")--弹珠活动抽奖
  86. self:RegisterProtocal(33180, "Handler33180")--弹珠活动状态查询/推送
  87. self:RegisterProtocal(33181, "Handler33181")--弹珠活动领取次数奖励
  88. self:RegisterProtocal(33182, "Handler33182")--部分活动数据变更(通用活动)
  89. self:RegisterProtocal(33183, "Handler33183")--弹珠抽奖日志查询
  90. self:RegisterProtocal(33184, "Handler33184")--弹珠抽奖结果提交
  91. self:RegisterProtocal(33611, "Handler33611")--活动通用红点小奖励信息(通用活动)
  92. self:RegisterProtocal(33612, "Handler33612")--活动通用红点奖励领取
  93. self:RegisterProtocal(33613, "Handler33613")--活动通用奖励一键领取
  94. --旧活动协议暂时屏蔽
  95. -- self:RegisterProtocal(33107, "Handler33107")
  96. -- self:RegisterProtocal(33108, "Handler33108")
  97. -- self:RegisterProtocal(33110, "Handler33110")
  98. -- self:RegisterProtocal(33111, "Handler33111")
  99. -- self:RegisterProtocal(33112, "Handler33112")
  100. -- self:RegisterProtocal(33113, "Handler33113")
  101. -- self:RegisterProtocal(33114, "Handler33114")
  102. -- self:RegisterProtocal(33115, "Handler33115")
  103. -- self:RegisterProtocal(33118, "Handler33118")
  104. -- self:RegisterProtocal(33120, "Handler33120")
  105. -- self:RegisterProtocal(33121, "Handler33121")
  106. -- self:RegisterProtocal(33122, "Handler33122")
  107. -- self:RegisterProtocal(33123, "Handler33123")
  108. -- self:RegisterProtocal(33124, "Handler33124")
  109. -- self:RegisterProtocal(33125, "Handler33125")
  110. -- self:RegisterProtocal(33129, "Handler33129")
  111. -- self:RegisterProtocal(33130, "Handler33130")
  112. -- self:RegisterProtocal(33131, "Handler33131")
  113. -- self:RegisterProtocal(33132, "Handler33132")
  114. -- self:RegisterProtocal(33141, "Handler33141")
  115. -- self:RegisterProtocal(33142, "Handler33142")
  116. -- self:RegisterProtocal(33143, "Handler33143")
  117. -- self:RegisterProtocal(33145, "Handler33145")
  118. -- self:RegisterProtocal(33146, "Handler33146")
  119. -- self:RegisterProtocal(33140, "Handler33140")
  120. -- self:RegisterProtocal(33148, "Handler33148")
  121. -- self:RegisterProtocal(33149, "Handler33149")
  122. -- self:RegisterProtocal(33150, "Handler33150")
  123. -- self:RegisterProtocal(33151, "Handler33151")
  124. -- self:RegisterProtocal(33152, "Handler33152")
  125. -- self:RegisterProtocal(33153, "Handler33153")
  126. -- self:RegisterProtocal(33154, "Handler33154")
  127. -- self:RegisterProtocal(33155, "Handler33155")
  128. -- self:RegisterProtocal(33156, "Handler33156")
  129. -- self:RegisterProtocal(33157, "Handler33157")
  130. -- self:RegisterProtocal(33158, "Handler33158")
  131. -- self:RegisterProtocal(33160, "Handler33160")
  132. -- self:RegisterProtocal(33161, "Handler33161")
  133. -- self:RegisterProtocal(33167, "Handler33167")
  134. -- self:RegisterProtocal(33162, "Handler33162")
  135. -- self:RegisterProtocal(33163, "Handler33163")
  136. -- self:RegisterProtocal(33136, "Handler33136")
  137. -- self:RegisterProtocal(33137, "Handler33137")
  138. -- self:RegisterProtocal(33138, "Handler33138")
  139. -- self:RegisterProtocal(33164, "Handler33164")
  140. -- self:RegisterProtocal(33180, "Handler33180")
  141. -- self:RegisterProtocal(33181, "Handler33181")
  142. -- self:RegisterProtocal(33182, "Handler33182")
  143. -- self:RegisterProtocal(33183, "Handler33183")
  144. -- self:RegisterProtocal(33184, "Handler33184")
  145. -- self:RegisterProtocal(33185, "Handler33185")
  146. -- self:RegisterProtocal(33186, "Handler33186")
  147. -- self:RegisterProtocal(33187, "Handler33187")
  148. -- self:RegisterProtocal(33188, "Handler33188")
  149. -- self:RegisterProtocal(33195, "Handler33195")
  150. -- self:RegisterProtocal(33177, "Handler33177")
  151. -- self:RegisterProtocal(33178, "Handler33178")
  152. -- self:RegisterProtocal(33189, "Handler33189")
  153. -- self:RegisterProtocal(33116, "Handler33116")
  154. -- self:RegisterProtocal(33117, "Handler33117")
  155. -- self:RegisterProtocal(33135, "Handler33135")
  156. -- self:RegisterProtocal(33134, "Handler33134")
  157. -- --周一大放送
  158. -- self:RegisterProtocal(33196, "Handler33196")
  159. -- self:RegisterProtocal(33197, "Handler33197")
  160. -- self:RegisterProtocal(33198, "Handler33198")
  161. -- self:RegisterProtocal(33199, "Handler33199")
  162. -- self:RegisterProtocal(33204, "Handler33204")
  163. -- self:RegisterProtocal(33201, "Handler33201")
  164. -- self:RegisterProtocal(33202, "Handler33202")
  165. -- self:RegisterProtocal(33203, "Handler33203")
  166. -- self:RegisterProtocal(33205, "Handler33205")
  167. -- self:RegisterProtocal(33206, "Handler33206")
  168. -- self:RegisterProtocal(33207, "Handler33207")
  169. -- self:RegisterProtocal(33212, "Handler33212")
  170. -- self:RegisterProtocal(33213, "Handler33213")
  171. -- self:RegisterProtocal(33159, "Handler33159")
  172. -- self:RegisterProtocal(33214, "Handler33214")
  173. -- self:RegisterProtocal(33215, "Handler33215")
  174. -- self:RegisterProtocal(33216, "Handler33216")
  175. -- self:RegisterProtocal(33217, "Handler33217")
  176. -- self:RegisterProtocal(33218, "Handler33218")
  177. -- self:RegisterProtocal(33119, "Handler33119")
  178. end
  179. --错误码展示
  180. function CustomActivityController:Handler33100()
  181. local vo = SCMD33100.New(true)
  182. if vo.error_code ~= 3310001 then
  183. ErrorCodeShow(vo.error_code)
  184. end
  185. --重置翻牌
  186. self.model.lucky_card_is_flopping = false
  187. end
  188. --活动列表[请求]
  189. function CustomActivityController:Handler33101()
  190. local vo = SCMD33101.New(true)
  191. self.model:handleActVo(vo, true)
  192. for k,v in pairs(vo.list) do
  193. print("33101 add activity ", v.base_type, v.sub_type, v.act_type)
  194. end
  195. end
  196. --新活动列表[推送]
  197. function CustomActivityController:Handler33102()
  198. local vo = SCMD33102.New(true)
  199. self.model:handleActVo(vo)
  200. for k,v in pairs(vo.list) do
  201. print("33102 add activity ", v.base_type, v.sub_type, v.etime)
  202. end
  203. end
  204. --删除活动[推送]
  205. function CustomActivityController:Handler33103()
  206. local vo = SCMD33103.New(true)
  207. self.model:clearActInfo(vo)
  208. -- for k,v in pairs(vo.list) do
  209. -- print("close activity ", v.base_type, v.sub_type)
  210. -- end
  211. end
  212. --获取奖励领取状态(通用)
  213. function CustomActivityController:Handler33104()
  214. local vo = SCMD33104.New(true)
  215. -- PrintTable(vo)
  216. self.model:setActRewardList(vo)
  217. end
  218. --领取活动奖励(通用)
  219. function CustomActivityController:Handler33105()
  220. local vo = SCMD33105.New(true)
  221. if vo.errcode == 1 then
  222. self.model:handleSuccessGetReward(vo)
  223. else
  224. if vo.errcode == 1001 then
  225. GlobalEventSystem:Fire(EventName.OPEN_RECHARGE_TIP_VIEW, true)
  226. else
  227. ErrorCodeShow(vo.errcode)
  228. end
  229. end
  230. end
  231. function CustomActivityController:Handler33106()
  232. local vo = SCMD33106.New(true)
  233. if vo.base_type == 4 then
  234. self.model:Fire(CustomActivityModel.UPDATE_COLLECTING_EXCHANGE_NUM,vo)
  235. end
  236. end
  237. --累计消费活动
  238. function CustomActivityController:Handler33107()
  239. local vo = SCMD33107.New(true)
  240. self.model:SetAccConsumeInfo(vo)
  241. end
  242. -- ##############抽奖概率配置读取###############
  243. -- protocol=33109
  244. -- {
  245. -- c2s{
  246. -- module:int16
  247. -- sub_mod:int16
  248. -- sub_act:int16
  249. -- }
  250. -- s2c{
  251. -- module:int16
  252. -- sub_mod:int16
  253. -- sub_act:int16
  254. -- rates:array{
  255. -- awardid:int16
  256. -- name:string
  257. -- goods_name:string
  258. -- radio:int16
  259. -- }
  260. -- }
  261. -- }
  262. function CustomActivityController:Handler33109()
  263. local vo = SCMD33109.New(true)
  264. print("huangcong:CustomActivityController [start:261] vo:", vo)
  265. PrintTable(vo)
  266. print("huangcong:CustomActivityController [end]")
  267. self.model:Fire(EventName.UPDATE_LUCKY_RADIO_VIEW,vo.rates)
  268. end
  269. --弹珠活动抽奖
  270. function CustomActivityController:Handler33179()
  271. local vo = SCMD33179.New(true)
  272. -- 弹珠机增加抽奖验证,这里缓存抽奖验证数据
  273. self.model:SetPelletEventValidationData(vo)
  274. RechargeActivityModel:getInstance():Fire(RechargeActivityModel.UPDATE_PELLET_VALIDATION)
  275. if vo.errcode ~= 1 then
  276. ErrorCodeShow(vo.errcode)
  277. end
  278. end
  279. --弹珠活动状态查询/推送
  280. function CustomActivityController:Handler33180()
  281. local vo = SCMD33180.New(true)
  282. RechargeActivityModel:getInstance():SetPelletBasicInfo(vo)
  283. RechargeActivityModel:getInstance():Fire(RechargeActivityModel.UPDATE_PELLET_INFO,vo)
  284. RechargeActivityModel:getInstance():CheckDailyRechargeAllMainIconRedDot()
  285. end
  286. --弹珠活动领取次数奖励
  287. function CustomActivityController:Handler33181()
  288. local vo = SCMD33181.New(true)
  289. if vo.errcode == 1 then
  290. Message.show("领取成功!")
  291. GlobalEventSystem:Fire(EventName.PLAY_UI_EFFECT_SOUND,LuaSoundManager.SOUND_UI.SUCCESS)
  292. else
  293. ErrorCodeShow(vo.errcode)
  294. end
  295. end
  296. --部分活动数据变更(通用活动)
  297. function CustomActivityController:Handler33182( )
  298. local vo = SCMD33182.New(true)
  299. self.model:RefreshActSomeData(vo)
  300. end
  301. --弹珠抽奖日志查询
  302. function CustomActivityController:Handler33183( )
  303. local vo = SCMD33183.New(true)
  304. RechargeActivityModel:getInstance():SetPelletRecordInfo(vo)
  305. RechargeActivityModel:getInstance():Fire(RechargeActivityModel.ANS_PELLET_RECORD_INFO)
  306. end
  307. function CustomActivityController:Handler33184( )
  308. local vo = SCMD33184.New(true)
  309. if vo.errcode == 1 then
  310. -- 清空弹珠机的验证数据
  311. self.model:SetPelletEventValidationData(nil)
  312. RechargeActivityModel:getInstance():Fire(RechargeActivityModel.PELLET_VALIDATION_SUCCEED)
  313. else
  314. ErrorCodeShow(vo.errcode)
  315. end
  316. end
  317. -- ########### 活动通用红点小奖励信息(通用活动) ##############
  318. -- protocol=33611
  319. -- {
  320. -- c2s{
  321. -- base_type :int16 // 活动主类型
  322. -- sub_type :int16 // 活动子类型
  323. -- }
  324. -- s2c{
  325. -- base_type :int16 // 活动主类型
  326. -- sub_type :int16 // 活动子类型
  327. -- reward_type :int8 // 奖励类型1是每日一次 2是活动期间一次
  328. -- status :int8 // 领取状态 1:可以领取 2:已经领取(red_gift状态)
  329. -- tab_list:array{
  330. -- grade :int16 // 奖励档次
  331. -- status :int8 // 领取状态 1:可以领取 2:已经领取(tab_gift状态)
  332. -- }
  333. -- }
  334. -- }
  335. function CustomActivityController:Handler33611( )
  336. local vo = SCMD33611.New(true)
  337. -- print("huangcong:CustomActivityController [start:368] vo:", vo)
  338. -- PrintTable(vo)
  339. -- print("huangcong:CustomActivityController [end]")
  340. self.model:SetActComAwardInfo(vo)
  341. end
  342. -- ########### 活动通用红点奖励领取 ##############
  343. -- protocol=33612
  344. -- {
  345. -- c2s{
  346. -- base_type :int16 // 活动主类型
  347. -- sub_type :int16 // 活动子类型
  348. -- grade :int16 // 奖励档次(red_gift状态传0)
  349. -- }
  350. -- s2c{
  351. -- base_type :int16 // 活动主类型
  352. -- sub_type :int16 // 活动子类型
  353. -- grade :int16 // 奖励档次(red_gift状态传0)
  354. -- errcode :int32 // 返回码
  355. -- }
  356. -- }
  357. function CustomActivityController:Handler33612( )
  358. local vo = SCMD33612.New(true)
  359. if vo.errcode == 1 then
  360. Message.show("领取成功!","success")
  361. local act_info = self.model:GetActComAwardInfo(vo.base_type,vo.sub_type)
  362. if act_info and act_info.tab_list then
  363. if vo.grade == 0 then
  364. act_info.status = 2
  365. else
  366. for i,v in ipairs(act_info.tab_list) do
  367. if v.grade == vo.grade then
  368. v.status = 2
  369. break
  370. end
  371. end
  372. end
  373. end
  374. self.model:Fire(CustomActivityModel.UPDATE_ACTIVITY_RED_AWARD_INFO,vo.base_type,vo.sub_type)
  375. else
  376. ErrorCodeShow(vo.errcode)
  377. end
  378. end
  379. -- ########### 活动通用红点奖励领取 ##############
  380. -- protocol=33613
  381. -- {
  382. -- c2s{
  383. -- base_type :int16 // 活动主类型
  384. -- sub_type :int16 // 活动子类型
  385. -- }
  386. -- s2c{
  387. -- base_type :int16 // 活动主类型
  388. -- sub_type :int16 // 活动子类型
  389. -- errcode :int32 // 返回码
  390. -- }
  391. -- }
  392. function CustomActivityController:Handler33613( )
  393. local vo = SCMD33613.New(true)
  394. if vo.errcode == 1 then
  395. Message.show("一键领取成功!","success")
  396. else
  397. ErrorCodeShow(vo.errcode)
  398. end
  399. end