require("game.proto.157.Require157") require("game.proto.419.Require419") require("game.proto.113.Require113") require("game.daily.DailyModel") require("game.daily.DailyConst") require("game.daily.view.DailyBaseView") require("game.daily.view.DailyCommonTip") require("game.daily.view.DailyCommonView") require("game.daily.view.DailyCommonItem") require("game.daily.view.DailyCommonAttrItem") require("game.daily.view.DailyResourceRecoveryView") require("game.daily.view.DailyResourceRecoveryItem") require("game.daily.view.DailyResourceRecoveryAwardItem") require("game.daily.view.DailyResourceRecoveryTip") require("game.daily.view.DailyResourceRecoveryOneTip") require("game.daily.view.DailyActivityView") require("game.daily.view.DailyActivityItem") require("game.daily.view.DailyAllActivityView") require("game.daily.view.DailyAllActivityItem") require("game.daily.view.DailyUpSuccessView") require("game.daily.view.DailyHostingSettingView") require("game.daily.view.DailyHostingSettingItem") require("game.daily.view.DailyHostingRecordView") require("game.daily.view.DailyHostingRecordItem") require("game.daily.view.DailyHostingRewardView") require("game.daily.view.DailyHostingRewardItem") require("game.daily.view.DailyAllBaseView") require("game.daily.view.DailyOrderRewardView") require("game.daily.view.DailyOrderRewardItem") require("game.daily.view.DailyOrderTipsView") DailyController = DailyController or BaseClass(BaseController) function DailyController:__init() DailyController.Instance = self self.model = DailyModel:getInstance() self.achieve_model = AchieveModel:getInstance() self:InitEvent() self:registerAllProtocals() end function DailyController:getInstance() if DailyController.Instance == nil then DailyController.New() end return DailyController.Instance end function DailyController:InitEvent() local function onRequestHandler(...) local args = {...} if args[1] == 15701 or args[1] == 15713 or args[1] == 41902 then self:SendFmtToGame(args[1], "c", args[2]) elseif args[1] == 15703 or args[1] == 15709 or args[1] == 15710 or args[1] == 41900 then self:SendFmtToGame(args[1]) elseif args[1] == 15705 or args[1] == 15711 then self:SendFmtToGame(args[1], "i", args[2]) elseif args[1] == 41903 then self:SendFmtToGame(args[1], "ihch", args[2], args[3], args[4], args[5]) elseif args[1] == 11303 or args[1] == 15719 or args[1] == 15720 then self:SendFmtToGame(args[1], "hcc", args[2], args[3], args[4]) else self:SendFmtToGame(args[1]) end end self.model:Bind(DailyModel.REQUEST_CCMD_EVENT, onRequestHandler) local onOpenDailyView = function (index) if self.daily_view == nil then self.daily_view = DailyBaseView.New() end self.daily_view:Open(index) end self.model:Bind(DailyModel.OPEN_DAILY_BASE_VIEW, onOpenDailyView) local onCloseDailyView = function () if self.daily_view then self.daily_view:Close() end end self.model:Bind(DailyModel.CLOSE_DAILY_BASE_VIEW, onCloseDailyView) local function OPEN_ALL_ACTIVITY_VIEW( ) if not self.dailyallactivityview then self.dailyallactivityview = DailyAllActivityView.New() self.dailyallactivityview:Open() end end self.model:Bind(DailyModel.OPEN_ALL_ACTIVITY_VIEW,OPEN_ALL_ACTIVITY_VIEW) local function OPEN_DAILY_COMMON_TIP_VIEW( show, data, pos_x) if (data and show) or not show then self:OpenView("DailyOrderTipsView", show, data, pos_x) end end self.model:Bind(DailyModel.OPEN_DAILY_COMMON_TIP_VIEW,OPEN_DAILY_COMMON_TIP_VIEW) local function OPEN_RECOVERY_ALL_TIP( data ) if not data then return end if not self.dailyresourcerecoverytip then self.dailyresourcerecoverytip = DailyResourceRecoveryTip.New() self.dailyresourcerecoverytip:Open(data) end end self.model:Bind(DailyModel.OPEN_RECOVERY_ALL_TIP,OPEN_RECOVERY_ALL_TIP) local function OPEN_RECOVERY_ONE_TIP( data ) if not data then return end if not self.dailyresourcerecoveryonetip then self.dailyresourcerecoveryonetip = DailyResourceRecoveryOneTip.New() self.dailyresourcerecoveryonetip:Open(data) end end self.model:Bind(DailyModel.OPEN_RECOVERY_ONE_TIP,OPEN_RECOVERY_ONE_TIP) local function OPEN_UP_SUCCESS_VIEW( degree_id ) if not self.dailyupsuccessview then self.dailyupsuccessview = DailyUpSuccessView.New() self.dailyupsuccessview:Open(degree_id) end end self.model:Bind(DailyModel.OPEN_UP_SUCCESS_VIEW,OPEN_UP_SUCCESS_VIEW) local function Req_Daily_Data( ) self.model:Fire(DailyModel.REQUEST_CCMD_EVENT, 15701, DailyActivityType.Limit) self.model:Fire(DailyModel.REQUEST_CCMD_EVENT, 15701, DailyActivityType.UnLimit) self.model:Fire(DailyModel.REQUEST_CCMD_EVENT, 15702) self.model:Fire(DailyModel.REQUEST_CCMD_EVENT, 15703) self.model:Fire(DailyModel.REQUEST_CCMD_EVENT, 15709) self.model:Fire(DailyModel.REQUEST_CCMD_EVENT, 15718) end local function gameStartHandler() self.model:ResetData() local delay = function() self.model.is_game_start = true --请求人物等级计算找回 NewMainRoleModel:getInstance():Fire(NewMainRoleModel.RequestWorldLevel) if GetModuleIsOpen(157,nil) then Req_Daily_Data() end if GetModuleIsOpen(419,nil,true) then self.model:Fire(DailyModel.REQUEST_CCMD_EVENT, 41900) end if self.model:LoadHostingRed() and GetModuleIsOpen(113,nil,true) then self:DailyControllerCheckRedDot() end end setTimeout(delay,1) end GlobalEventSystem:Bind(EventName.GAME_START, gameStartHandler) -- local function check_resource_recover( ) --世界等级改变会有什么变化呢??,要和辉总确定 -- end -- GlobalEventSystem:Bind(EventName.UPDATE_WORLD_LEVEL_VIEW,check_resource_recover) local function role_lv_up(level) if GetModuleOpenLevel( 157,nil,true ) == level and GetModuleIsOpen(157,nil,true) then --平时就只判断等级,减少判断,等级符合再多判断 Req_Daily_Data() end if GetModuleOpenLevel( 419,nil,true ) == level then self.model:Fire(DailyModel.REQUEST_CCMD_EVENT, 41900) end if GetModuleOpenLevel( 113,nil,true ) == level then self:DailyControllerCheckRedDot() end end RoleManager.Instance.mainRoleInfo:Bind(EventName.CHANGE_LEVEL, role_lv_up) local function ANS_FINISHED_TASK_LIST( task_id ) if task_id == Config.Moduleid[157].task_id then Req_Daily_Data() elseif task_id == Config.Moduleid[419].task_id then self.model:Fire(DailyModel.REQUEST_CCMD_EVENT, 41900) end if task_id == Config.Moduleid[113].task_id then self:DailyControllerCheckRedDot() end end GlobalEventSystem:Bind(TaskEvent.ANS_FINISHED_TASK_LIST,ANS_FINISHED_TASK_LIST) local function achieve_check_red() self:DailyControllerCheckRedDot() end -- 成就相关红点刷新事件 GlobalEventSystem:Bind(AchieveModel.UPDATE_DAILY_RED, achieve_check_red) local function check_open( ) --再10201协议后执行一次 self.model:Fire(DailyModel.REQUEST_CCMD_EVENT,15702) end ServerTimeModel:getInstance():Bind(ServerTimeModel.INIT_TIME_SUCCEED,check_open) local function go_to_hook( ) local onHookData = DailyModel:getInstance():GetOnhookConfig(2) -- print("huangcong:DailyController [start:121] :",onHookData) -- PrintTable(onHookData) -- print("huangcong:DailyController [end]") if onHookData then local pointList = ErlangParser:GetInstance():Parse(onHookData.xy) local index = math.random(1, #pointList) local randomPoint = pointList[index] local x = tonumber(randomPoint[1]) local y = tonumber(randomPoint[2]) local call_back = function () GlobalEventSystem:Fire(EventName.STARTAUTOFIGHT) end local findVo = FindVo.New() findVo.type = FindVo.POINT findVo.sceneId = tonumber(onHookData.scene_id) findVo.x = x / SceneObj.LogicRealRatio.x findVo.y = y / SceneObj.LogicRealRatio.y findVo.call_back = call_back findVo.force_change_scene = true GlobalEventSystem:Fire(EventName.STOPAUTOFIGHT) GlobalEventSystem:Fire(EventName.FORCE_STOP_DO_TASK) Scene.Instance:FindElement(findVo) Message.show("正在前往挂机") end end GlobalEventSystem:Bind(EventName.REQ_GO_HOOK,go_to_hook) --托管记录 local function OPEN_HOSTING_RECORD_VIEW() if not self.DailyHostingRecordView then self.DailyHostingRecordView = DailyHostingRecordView.New() self.DailyHostingRecordView:Open() end end self.model:Bind(DailyModel.OPEN_HOSTING_RECORD_VIEW,OPEN_HOSTING_RECORD_VIEW) -- 托管奖励 local function OPEN_HOSTING_REWARD_VIEW() if not self.DailyHostingRewardView then self.DailyHostingRewardView = DailyHostingRewardView.New() self.DailyHostingRewardView:Open() end end self.model:Bind(DailyModel.OPEN_HOSTING_REWARD_VIEW,OPEN_HOSTING_REWARD_VIEW) -- 日常预约界面 local function OPEN_DAILY_ORDER_REWARD_VIEW() if not self.DailyOrderRewardView then self.DailyOrderRewardView = DailyOrderRewardView.New() self.DailyOrderRewardView:Open() end end self.model:Bind(DailyModel.OPEN_DAILY_ORDER_REWARD_VIEW,OPEN_DAILY_ORDER_REWARD_VIEW) -- 场景切换完毕 local function ON_SCENE_CHANGED() if not self.model.hosting_is_request_record then -- if GetModuleIsOpen(113,nil,true) then self.model:Fire(DailyModel.REQUEST_CCMD_EVENT, 11302) --end end self.model.hosting_is_request_record = true end GlobalEventSystem:Bind(SceneEventType.SCENE_CHANGED,ON_SCENE_CHANGED) end function DailyController:registerAllProtocals() self:RegisterProtocal(15700,"handle15700") --错误码 self:RegisterProtocal(15701,"handle15701") --查询活动活跃度次数 self:RegisterProtocal(15702,"handle15702") --单独查询活动状态 self:RegisterProtocal(15703,"handle15703") --查询活跃度信息 self:RegisterProtocal(15705,"handle15705") --领取奖励 self:RegisterProtocal(15706,"handle15706") --限时活动状态变更 self:RegisterProtocal(15707,"handle15707") --通知刷新15701 self:RegisterProtocal(15709,"handle15709") --玩家活跃度形象 self:RegisterProtocal(15710,"handle15710") --玩家活跃度升级 self:RegisterProtocal(15714,"handle15714") --离线挂机时间更新推送 self:RegisterProtocal(15716,"handle15716") --更新推送 self:RegisterProtocal(15718,"handle15718") --今日活动预约状态 self:RegisterProtocal(15719,"handle15719") --活动预约 self:RegisterProtocal(15720,"handle15720") --领取活动预约奖励 --资源找回 self:RegisterProtocal(41900,"handle41900") self:RegisterProtocal(41902,"handle41902") --一键找回 self:RegisterProtocal(41903,"handle41903") --找回 self:RegisterProtocal(11300,"handle11300") --离线托管: 信息 self:RegisterProtocal(11301,"handle11301") --离线托管: 托管日志 self:RegisterProtocal(11302,"handle11302") --离线托管: 上线推送托管记录 self:RegisterProtocal(11303,"handle11303") --离线托管: 设置托管 end --错误码 function DailyController:handle15700() local scmd = SCMD15700.New(true) ErrorCodeShow(scmd.errcode) end --查询活动活跃度次数 function DailyController:handle15701() local scmd = SCMD15701.New(true) self.model:SetDailyBaseInfo(scmd) self:DailyControllerCheckRedDot() self.model:Fire(DailyModel.ANS_DAILY_BASE) end --单独查询活动状态 function DailyController:handle15702() local scmd = SCMD15702.New(true) self.model:SetAcOpenStatus(scmd.ac_list) self:DailyControllerCheckRedDot() self.model:Fire(DailyModel.ANS_ACTIVITY_OPEN_STATUS) for i,v in ipairs(scmd.ac_list) do self.model:SetActivityIconShow(v) end end --查询活跃度信息 function DailyController:handle15703() local scmd = SCMD15703.New(true) self.model:SetLivenessInfo(scmd) self:DailyControllerCheckRedDot() self.model:Fire(DailyModel.ANS_LIVENESS_INFO) --服务器推送这个后,我要刷一遍,要更新日常活跃任务进度 self.model:Fire(DailyModel.REQUEST_CCMD_EVENT, 15701, DailyActivityType.Limit) self.model:Fire(DailyModel.REQUEST_CCMD_EVENT, 15701, DailyActivityType.UnLimit) --活跃度刷新后,刷一遍副本可挑战提示 BaseDungeonModel:getInstance():Fire(BaseDungeonModel.UPDATE_DUN_TIP_CHECK) end --领取奖励 function DailyController:handle15705() local scmd = SCMD15705.New(true) if scmd.errcode == 1 then GlobalEventSystem:Fire(EventName.PLAY_UI_EFFECT_SOUND,LuaSoundManager.SOUND_UI.AWARD) Message.show("领取成功") self.model:Fire(DailyModel.REQUEST_CCMD_EVENT, 15703) else ErrorCodeShow(scmd.errcode) end end --活动状态单条更新 function DailyController:handle15706() local scmd = SCMD15706.New(true) self.model:SetActivityIconShow(scmd) local result = self.model:RefreshOneAcOpenStatus(scmd) if result then self.model:Fire(DailyModel.ANS_ACTIVITY_OPEN_STATUS) self:DailyControllerCheckRedDot() --如果是护送双倍,状态变更,则同步刷新下任务栏 if scmd.module == 500 and scmd.module_sub == 0 then DailyModel.getInstance():Fire(DailyModel.REQUEST_CCMD_EVENT, 15701, DailyActivityType.Limit) DailyModel.getInstance():Fire(DailyModel.REQUEST_CCMD_EVENT, 15701, DailyActivityType.UnLimit) end else self.model:Fire(DailyModel.REQUEST_CCMD_EVENT, 15702) end end --通知刷新15701 function DailyController:handle15707() local scmd = SCMD15707.New(true) self.model:Fire(DailyModel.REQUEST_CCMD_EVENT, 15701, scmd.act_type) end --玩家活跃度形象 function DailyController:handle15709() local scmd = SCMD15709.New(true) self.model:SetLivenessFigureInfo(scmd) self:DailyControllerCheckRedDot() self.model:Fire(DailyModel.ANS_LIVENESS_FIGURE_INFO) end --玩家活跃度升级 function DailyController:handle15710() local scmd = SCMD15710.New(true) if scmd.result == 1 then GlobalEventSystem:Fire(EventName.PLAY_UI_EFFECT_SOUND,LuaSoundManager.SOUND_UI.SUCCESS) Message.show("升级成功") self.model:Fire(DailyModel.REQUEST_CCMD_EVENT, 15709) ------------------------- for k,v in pairs(DailyConst.Livenessactive) do if v.lv == scmd.lv then self.model:Fire(DailyModel.OPEN_UP_SUCCESS_VIEW,v.lv) end end else ErrorCodeShow(scmd.errcode) end end --离线挂机时间更新推送 function DailyController:handle15714() local scmd = SCMD15714.New(true) if scmd and scmd.time then self.model:RefreshOutLineHookTime(scmd.time) end end --更新交易券名望券推送 function DailyController:handle15716( ) local scmd = SCMD15716.New(true) if self.model.daily_base_info then if scmd.type == 3 then --交易券(13006协议 tong) self.model.daily_base_info.collect_coin = scmd.value elseif scmd.type == 4 then --名望券 self.model.daily_base_info.collect_honor = scmd.value end self.model:Fire(DailyModel.ANS_DAILY_BASE) end end --今日活动预约状态 function DailyController:handle15718( ) local scmd = SCMD15718.New(true) self.model:SetDailyOrderAllData(scmd) end --活动预约 function DailyController:handle15719( ) local scmd = SCMD15719.New(true) PrintTable(scmd) if scmd.errcode == 1 then Message.show("预约成功,请准时参加喔") self.model:SetDailyOrderTargetData(scmd) else ErrorCodeShow(scmd.errcode) end end --领取活动预约奖励 function DailyController:handle15720( ) local scmd = SCMD15720.New(true) if scmd.errcode == 1 then self.model:SetDailyOrderTargetData(scmd) else ErrorCodeShow(scmd.errcode) end end --资源找回界面信息 function DailyController:handle41900() local scmd = SCMD41900.New(true) self.model:SetResourceRecoveryList(scmd.res_act) self.model:Fire(DailyModel.ANS_RECOVERY_LIST) self:DailyControllerCheckRedDot() end --一键资源找回 function DailyController:handle41902( ) local scmd = SCMD41902.New(true) if scmd.errcode == 1 then GlobalEventSystem:Fire(EventName.PLAY_UI_EFFECT_SOUND,LuaSoundManager.SOUND_UI.SUCCESS) Message.show("找回成功") self.model:Fire(DailyModel.REQUEST_CCMD_EVENT, 41900) else if scmd.errcode == 1006 then GlobalEventSystem:Fire(EventName.PLAY_UI_EFFECT_SOUND,LuaSoundManager.SOUND_UI.FAULT) GlobalEventSystem:Fire(EventName.OPEN_RECHARGE_TIP_VIEW, true) else ErrorCodeShow(scmd.errcode) end end end --资源找回 function DailyController:handle41903() local scmd = SCMD41903.New(true) if scmd.errcode == 1 then GlobalEventSystem:Fire(EventName.PLAY_UI_EFFECT_SOUND,LuaSoundManager.SOUND_UI.SUCCESS) Message.show("找回成功") -- local result = self.model:ChangeResourceRecoveryList(scmd) -- if result then -- self.model:Fire(DailyModel.ANS_RECOVERY_LIST) -- else self.model:Fire(DailyModel.REQUEST_CCMD_EVENT, 41900) -- end else if scmd.errcode == 1006 then GlobalEventSystem:Fire(EventName.PLAY_UI_EFFECT_SOUND,LuaSoundManager.SOUND_UI.FAULT) lua_soundM:PlayEffect(self, "fault", false, LuaSoundManager.SOUND_TYPE.UI) GlobalEventSystem:Fire(EventName.OPEN_RECHARGE_TIP_VIEW, true) else ErrorCodeShow(scmd.errcode) end end end function DailyController:DailyControllerCheckRedDot( ) local function call_backack( ) local is_open_common = GetModuleIsOpen(157,nil,true) local bool_1 = self.model:CanGetTodayRewardAll( true ) and is_open_common local bool_3 = self.model:GetCanUpLive(true) and is_open_common local bool_4 = self.model:GetRecoverRed() and GetModuleIsOpen(419,nil,true) local bool_5 = self.model:GetHostingRed() and GetModuleIsOpen(113,nil,true) local bool_6 = self.achieve_model:GetAchieveTotalRedCache( ) and GetModuleIsOpen(409,nil,true) local bool_7 = self.model:GetDailyOrderRed() and is_open_common self.model:Fire(DailyModel.CHECK_DAILY_RED_DOT) GlobalEventSystem:Fire(ActivityIconManager.UPDATE_ICON_TIPS, 157,bool_1 or bool_3 or bool_4 or bool_5 or bool_6 or bool_7) end TimeManager.GetInstance():StartTime("DailyControllerCheckRedDotTimeManager", 0.5, call_backack) end ----------------------托管开始------------------------ --离线托管: 信息 function DailyController:handle11300() local scmd = SCMD11300.New(true) PrintTable(scmd) self.model:SaveHostingRed() self:DailyControllerCheckRedDot() self.model:SetHostingInfo(scmd) end --离线托管: 托管日志 function DailyController:handle11301() local scmd = SCMD11301.New(true) self.model:SetHostingRecord(scmd) end --离线托管: 上线推送托管记录 function DailyController:handle11302() local scmd = SCMD11302.New(true) self.model:SetHostingReward(scmd) end --离线托管: 设置托管 function DailyController:handle11303() local scmd = SCMD11303.New(true) self.model:SetHostingSetting(scmd) end ----------------------托管结束-----------------------