require("game.proto.176.Require176") require("game.sevenDayTarget.SevenDayTargetModel") require("game.sevenDayTarget.SevenDayTargetMainView")--主界面 require("game.sevenDayTarget.SevenDayTargetTaskItem")--右边的item require("game.sevenDayTarget.SevenDayTargetScoreItem")--左下角奖励 require("game.sevenDayTarget.SevenDayTargetDayItem")--天数tab SevenDayTargetController = SevenDayTargetController or BaseClass(BaseController) local SevenDayTargetController = SevenDayTargetController function SevenDayTargetController:__init() SevenDayTargetController.Instance = self self.model = SevenDayTargetModel:getInstance() self:RegisterAllProtocals() self:AddAllEvents() end function SevenDayTargetController:RegisterAllProtocals( ) self:RegisterProtocal(17600, "Handler17600") --任务信息 self:RegisterProtocal(17601, "Handler17601") --领取任务奖励 self:RegisterProtocal(17602, "Handler17602") --领取积分和技能奖励 self:RegisterProtocal(17603, "Handler17603") --更新一个任务进度 end function SevenDayTargetController:AddAllEvents() local function request_func(level) local delay = function() if level then if level == Config.Moduleid[176].open_lv then self.model:Fire(SevenDayTargetModel.REQUEST_SEVEN_DAY_TARGET_SCMD, 17600) end else if GetModuleIsOpen(176) then self.model:Fire(SevenDayTargetModel.REQUEST_SEVEN_DAY_TARGET_SCMD, 17600) end SevenDayTargetModel:getInstance():Fire(SevenDayTargetModel.UPDATE_SEVEN_DAY_TARGET_BTN) end end setTimeout(delay,2) end GlobalEventSystem:Bind(EventName.GAME_START, request_func) RoleManager.Instance.mainRoleInfo:Bind(EventName.CHANGE_LEVEL, request_func) local function onRequestHandler(...) local args = {...} if args[1] == 17601 then self:SendFmtToGame(args[1], "chh", args[2], args[3], args[4]) elseif args[1] == 17602 then self:SendFmtToGame(args[1], "ch", args[2], args[3]) else self:SendFmtToGame(args[1]) end end self.model:Bind(SevenDayTargetModel.REQUEST_SEVEN_DAY_TARGET_SCMD, onRequestHandler) local function on_open_seven_day_target_main_view() if not self.model:IsSevenDayTargetOpen() then Message.show("活动已结束") return end if self.seven_day_target_main_view == nil then self.seven_day_target_main_view = SevenDayTargetMainView.New() end self.seven_day_target_main_view:Open() end self.model:Bind(SevenDayTargetModel.OPEN_SEVEN_DAY_TARGET_MAIN_VIEW, on_open_seven_day_target_main_view) end -- ########### 任务信息 ############## -- protocol=17600 -- { -- c2s{ -- } -- s2c{ -- login_days:int8 // 当前登录天数 -- score:int16 // 积分 -- task_state:array{ // 任务列表 -- days:int8 // 天数 -- mod_id:int16 // 模块Id -- sub_id:int16 // 子id -- progress:int16 // 任务进度 -- is_receive:int8 // 奖励是否领取 1是|0否 -- } -- score_state:array{ // 已领取的积分奖励列表 -- score_id:int16 // 积分 -- } -- skill_state:array{ // 已领取的技能奖励列表 -- days:int8 // 天数 -- } -- } -- } function SevenDayTargetController:Handler17600( ) local vo = SCMD17600.New(true) --print('=======Msh:SevenDayTargetController.lua[97] ===TABLE====') --PrintTable(vo) self.model:SetSevenDayTargetInfo(vo) -- if self.model:IsSevenDayTargetOpen() then -- -- ActivityIconManager:getInstance():addIcon(176, -1) -- else -- -- ActivityIconManager:getInstance():deleteIcon(176) -- end local rest_time = vo.real_time - TimeUtil:getServerTime( ) if rest_time <= 86400 then local function delay_method( ) -- ActivityIconManager:getInstance():deleteIcon(176) SevenDayTargetModel:getInstance():Fire(SevenDayTargetModel.UPDATE_SEVEN_DAY_TARGET_BTN) end self.delay_close_id = setTimeout(delay_method, rest_time) else--可能有人会换号 做个处理吧 if self.delay_close_id then TimerQuest.CancelQuest(GlobalTimerQuest,self.delay_close_id) self.delay_close_id = nil end end SevenDayTargetModel:getInstance():Fire(SevenDayTargetModel.UPDATE_SEVEN_DAY_TARGET_BTN) end -- ########### 领取任务奖励 ############## -- protocol=17601 -- { -- c2s{ -- login_days:int8 // 当前登录天数 -- mod_id:int16 // 模块Id -- sub_id:int16 // 子id -- } -- s2c{ -- errcode:int32 // 错误码 -- login_days:int8 // 当前登录天数 -- mod_id:int16 // 模块Id -- sub_id:int16 -- } -- } function SevenDayTargetController:Handler17601( ) local vo = SCMD17601.New(true) if vo.errcode == 1 then Message.show("领取任务奖励成功") local data = { days = vo.login_days, mod_id = vo.mod_id, sub_id = vo.sub_id, diff = vo.diff, } -- print("HWR:SevenDayTargetController [start:127] data:", data) -- PrintTable(data) -- print("HWR:SevenDayTargetController [end]") self.model:SetSevenDayTargetOneInfo(data, true) else ErrorCodeShow(vo.errcode) end end -- ########### 领取积分和技能奖励 ############## -- protocol=17602 -- { -- c2s{ -- type:int8 // 1积分奖励|2技能奖励 -- reward_id:int16 // 积分或者天数 -- } -- s2c{ -- errcode:int32 // 错误码 -- type:int8 // 1积分奖励|2技能奖励 -- reward_id:int16 // 积分或者天数 -- } -- } function SevenDayTargetController:Handler17602( ) local vo = SCMD17602.New(true) if vo.errcode == 1 then self.model:SetSevenDayTargetRewardInfo(vo) else ErrorCodeShow(vo.errcode) end end -- ########### 更新一个任务进度 ############## -- protocol=17603 -- { -- c2s{ -- } -- s2c{ -- score:int16 // 积分 -- days:int8 // 天数 -- mod_id:int16 // 模块Id -- sub_id:int16 // 子id -- progress:int16 // 任务进度 -- } -- } function SevenDayTargetController:Handler17603( ) local vo = SCMD17603.New(true) -- print("HWR:SevenDayTargetController [start:172] vo:", vo) -- PrintTable(vo) -- print("HWR:SevenDayTargetController [end]") self.model:SetSevenDayTargetOneInfo(vo) end