源战役客户端
25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

549 lines
20 KiB

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
----------------------托管结束-----------------------