源战役客户端
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

198 Zeilen
6.5 KiB

  1. require("game.proto.176.Require176")
  2. require("game.sevenDayTarget.SevenDayTargetModel")
  3. require("game.sevenDayTarget.SevenDayTargetMainView")--主界面
  4. require("game.sevenDayTarget.SevenDayTargetTaskItem")--右边的item
  5. require("game.sevenDayTarget.SevenDayTargetScoreItem")--左下角奖励
  6. require("game.sevenDayTarget.SevenDayTargetDayItem")--天数tab
  7. SevenDayTargetController = SevenDayTargetController or BaseClass(BaseController)
  8. local SevenDayTargetController = SevenDayTargetController
  9. function SevenDayTargetController:__init()
  10. SevenDayTargetController.Instance = self
  11. self.model = SevenDayTargetModel:getInstance()
  12. self:RegisterAllProtocals()
  13. self:AddAllEvents()
  14. end
  15. function SevenDayTargetController:RegisterAllProtocals( )
  16. self:RegisterProtocal(17600, "Handler17600") --任务信息
  17. self:RegisterProtocal(17601, "Handler17601") --领取任务奖励
  18. self:RegisterProtocal(17602, "Handler17602") --领取积分和技能奖励
  19. self:RegisterProtocal(17603, "Handler17603") --更新一个任务进度
  20. end
  21. function SevenDayTargetController:AddAllEvents()
  22. local function request_func(level)
  23. local delay = function()
  24. if level then
  25. if level == Config.Moduleid[176].open_lv then
  26. self.model:Fire(SevenDayTargetModel.REQUEST_SEVEN_DAY_TARGET_SCMD, 17600)
  27. end
  28. else
  29. if GetModuleIsOpen(176) then
  30. self.model:Fire(SevenDayTargetModel.REQUEST_SEVEN_DAY_TARGET_SCMD, 17600)
  31. end
  32. SevenDayTargetModel:getInstance():Fire(SevenDayTargetModel.UPDATE_SEVEN_DAY_TARGET_BTN)
  33. end
  34. end
  35. setTimeout(delay,2)
  36. end
  37. GlobalEventSystem:Bind(EventName.GAME_START, request_func)
  38. RoleManager.Instance.mainRoleInfo:Bind(EventName.CHANGE_LEVEL, request_func)
  39. local function onRequestHandler(...)
  40. local args = {...}
  41. if args[1] == 17601 then
  42. self:SendFmtToGame(args[1], "chh", args[2], args[3], args[4])
  43. elseif args[1] == 17602 then
  44. self:SendFmtToGame(args[1], "ch", args[2], args[3])
  45. else
  46. self:SendFmtToGame(args[1])
  47. end
  48. end
  49. self.model:Bind(SevenDayTargetModel.REQUEST_SEVEN_DAY_TARGET_SCMD, onRequestHandler)
  50. local function on_open_seven_day_target_main_view()
  51. if not self.model:IsSevenDayTargetOpen() then
  52. Message.show("活动已结束")
  53. return
  54. end
  55. if self.seven_day_target_main_view == nil then
  56. self.seven_day_target_main_view = SevenDayTargetMainView.New()
  57. end
  58. self.seven_day_target_main_view:Open()
  59. end
  60. self.model:Bind(SevenDayTargetModel.OPEN_SEVEN_DAY_TARGET_MAIN_VIEW, on_open_seven_day_target_main_view)
  61. end
  62. -- ########### 任务信息 ##############
  63. -- protocol=17600
  64. -- {
  65. -- c2s{
  66. -- }
  67. -- s2c{
  68. -- login_days:int8 // 当前登录天数
  69. -- score:int16 // 积分
  70. -- task_state:array{ // 任务列表
  71. -- days:int8 // 天数
  72. -- mod_id:int16 // 模块Id
  73. -- sub_id:int16 // 子id
  74. -- progress:int16 // 任务进度
  75. -- is_receive:int8 // 奖励是否领取 1是|0否
  76. -- }
  77. -- score_state:array{ // 已领取的积分奖励列表
  78. -- score_id:int16 // 积分
  79. -- }
  80. -- skill_state:array{ // 已领取的技能奖励列表
  81. -- days:int8 // 天数
  82. -- }
  83. -- }
  84. -- }
  85. function SevenDayTargetController:Handler17600( )
  86. local vo = SCMD17600.New(true)
  87. --print('=======Msh:SevenDayTargetController.lua[97] ===TABLE====')
  88. --PrintTable(vo)
  89. self.model:SetSevenDayTargetInfo(vo)
  90. -- if self.model:IsSevenDayTargetOpen() then
  91. -- -- ActivityIconManager:getInstance():addIcon(176, -1)
  92. -- else
  93. -- -- ActivityIconManager:getInstance():deleteIcon(176)
  94. -- end
  95. local rest_time = vo.real_time - TimeUtil:getServerTime( )
  96. if rest_time <= 86400 then
  97. local function delay_method( )
  98. -- ActivityIconManager:getInstance():deleteIcon(176)
  99. SevenDayTargetModel:getInstance():Fire(SevenDayTargetModel.UPDATE_SEVEN_DAY_TARGET_BTN)
  100. end
  101. self.delay_close_id = setTimeout(delay_method, rest_time)
  102. else--可能有人会换号 做个处理吧
  103. if self.delay_close_id then
  104. TimerQuest.CancelQuest(GlobalTimerQuest,self.delay_close_id)
  105. self.delay_close_id = nil
  106. end
  107. end
  108. SevenDayTargetModel:getInstance():Fire(SevenDayTargetModel.UPDATE_SEVEN_DAY_TARGET_BTN)
  109. end
  110. -- ########### 领取任务奖励 ##############
  111. -- protocol=17601
  112. -- {
  113. -- c2s{
  114. -- login_days:int8 // 当前登录天数
  115. -- mod_id:int16 // 模块Id
  116. -- sub_id:int16 // 子id
  117. -- }
  118. -- s2c{
  119. -- errcode:int32 // 错误码
  120. -- login_days:int8 // 当前登录天数
  121. -- mod_id:int16 // 模块Id
  122. -- sub_id:int16
  123. -- }
  124. -- }
  125. function SevenDayTargetController:Handler17601( )
  126. local vo = SCMD17601.New(true)
  127. if vo.errcode == 1 then
  128. Message.show("领取任务奖励成功")
  129. local data = {
  130. days = vo.login_days,
  131. mod_id = vo.mod_id,
  132. sub_id = vo.sub_id,
  133. diff = vo.diff,
  134. }
  135. -- print("HWR:SevenDayTargetController [start:127] data:", data)
  136. -- PrintTable(data)
  137. -- print("HWR:SevenDayTargetController [end]")
  138. self.model:SetSevenDayTargetOneInfo(data, true)
  139. else
  140. ErrorCodeShow(vo.errcode)
  141. end
  142. end
  143. -- ########### 领取积分和技能奖励 ##############
  144. -- protocol=17602
  145. -- {
  146. -- c2s{
  147. -- type:int8 // 1积分奖励|2技能奖励
  148. -- reward_id:int16 // 积分或者天数
  149. -- }
  150. -- s2c{
  151. -- errcode:int32 // 错误码
  152. -- type:int8 // 1积分奖励|2技能奖励
  153. -- reward_id:int16 // 积分或者天数
  154. -- }
  155. -- }
  156. function SevenDayTargetController:Handler17602( )
  157. local vo = SCMD17602.New(true)
  158. if vo.errcode == 1 then
  159. self.model:SetSevenDayTargetRewardInfo(vo)
  160. else
  161. ErrorCodeShow(vo.errcode)
  162. end
  163. end
  164. -- ########### 更新一个任务进度 ##############
  165. -- protocol=17603
  166. -- {
  167. -- c2s{
  168. -- }
  169. -- s2c{
  170. -- score:int16 // 积分
  171. -- days:int8 // 天数
  172. -- mod_id:int16 // 模块Id
  173. -- sub_id:int16 // 子id
  174. -- progress:int16 // 任务进度
  175. -- }
  176. -- }
  177. function SevenDayTargetController:Handler17603( )
  178. local vo = SCMD17603.New(true)
  179. -- print("HWR:SevenDayTargetController [start:172] vo:", vo)
  180. -- PrintTable(vo)
  181. -- print("HWR:SevenDayTargetController [end]")
  182. self.model:SetSevenDayTargetOneInfo(vo)
  183. end