require("game.proto.333.Require333") require("game.competingList.CompetingListModel") require("game.competingList.CompetingListConst") require("game.competingList.view.CompetingListBaseView")--竞榜主界面 require("game.competingList.view.CompetingListItem")--竞榜item require("game.competingList.view.CompetingListCon")--竞榜道具item界面 require("game.competingList.view.CompetingListAwardItem")--竞榜道具item界面奖励 require("game.competingList.view.CompetingListRecordTxt")--竞榜日志item require("game.competingList.view.CompetingListResultView")--竞榜结算界面 require("game.competingList.view.CompetingListCardItem")--竞榜结算界面Item require("game.competingList.view.CompetingListToolTips")--竞榜道具提示界面--暂时弃用 require("game.competingList.view.CompetingListToolSmallTips")--竞榜奖励提示小界面20200831需求修改用这个小界面展示奖励 require("game.competingList.view.FontaniBaseView")--许愿池界面 require("game.competingList.view.FontaniBaseItem")--许愿池item界面 require("game.competingList.view.CompetingListAskView")--竞榜打折界面 require("game.competingList.view.CompetingListAwardShowView")--竞榜奖励展示界面 CompetingListController = CompetingListController or BaseClass(BaseController) CompetingListController.Is_Debug = false function CompetingListController:__init() CompetingListController.Instance = self self.model = CompetingListModel:getInstance() self.mainVo = RoleManager.Instance.mainRoleInfo self:RegisterAllProtocals() self:AddAllEvents() end function CompetingListController:__delete() end function CompetingListController:AddAllEvents() local function game_start_func() -- self.model:Fire(CompetingListModel.REQUEST_INFO,33170) -- self:handle33300() end GlobalEventSystem:Bind(EventName.GAME_START,game_start_func) -- local function CheckRedPoint( ... ) -- end -- GlobalEventSystem:Bind(GoodsModel.CHANGE_BAGLIST,game_start_func) local onOpenluckyCallView = function (base_type) do return end if base_type == 888 then for k,v in pairsByKeys(self.model.view_info) do local cfg = self.model.view_cfg[k] if cfg then if cfg.type == 1 then--竞榜 base_type = k break elseif cfg.type == 2 then--许愿池 end end end end if not self.model.view_info or not self.model.view_info[base_type] then Message.show("活动未开启") return end if self.competing_list_view == nil then self.competing_list_view = CompetingListBaseView.New() end if self.competing_list_view:HasOpen() then -- self.competing_list_view:UpdateView(base_type) else self.competing_list_view:Open(base_type) end end GlobalEventSystem:Bind(CompetingListModel.OPEN_COMPETING_LIST_VIEW, onOpenluckyCallView) -- local onOpenFontaniView = function (base_type)--许愿池 -- if not self.model.view_info or not self.model.view_info[base_type] or not self.model.view_info[base_type].rune_times then -- Message.show("活动未开启") -- return -- end -- local key = string.format("%s@%s",333,base_type) -- if Config.Moduleopenlv[key] and RoleManager.Instance.mainRoleInfo.level < Config.Moduleopenlv[key].lv then -- local str = string.format("%s级开放",Config.Moduleopenlv[key].lv) -- Message.show(str) -- return -- end -- if self.FontaniBaseView == nil then -- self.FontaniBaseView = FontaniBaseView.New() -- end -- if self.FontaniBaseView:HasOpen() then -- self.FontaniBaseView:UpdateView(base_type) -- else -- self.FontaniBaseView:Open(base_type) -- end -- end -- GlobalEventSystem:Bind(CompetingListModel.OPEN_FONTANI_VIEW, onOpenFontaniView) local function request_info(request_id , ... ) if not CompetingListController.Is_Debug then local fun_name = string.format("send%s",request_id) if self[fun_name] then print('----in CompetingListController.lua,line 44 request_id',request_id , ...) self[fun_name](self,...) end elseif request_id == 33306 or request_id == 33305 or request_id == 33301 or request_id == 33300 or request_id == 33304 then local fun_name = string.format("handle%s",request_id) if self[fun_name] then print('----in CompetingListController.lua,line 96 request_idIs_Debug',request_id , ...) self[fun_name](self,...) end end end self.model:Bind(CompetingListModel.REQUEST_INFO,request_info) local function init_open_day( ... )--开服天数初始化 CompetingListModel:getInstance():Fire(CompetingListModel.REQUEST_INFO,33300) end GlobalEventSystem:Bind(EventName.OPEN_DAY_INIT,init_open_day) local onOpenCompetingListResultView = function (sub_type,tab_type) if self.competing_list_result_view == nil then self.competing_list_result_view = CompetingListResultView.New() end if self.competing_list_result_view:HasOpen() then self.competing_list_result_view:UpdateView(sub_type,tab_type) else self.competing_list_result_view:Open(sub_type,tab_type) end end self.model:Bind(CompetingListModel.OPEN_COMPETING_LIST_RESULT_VIEW, onOpenCompetingListResultView) local onOpenCompetingListTipView = function (data)--宝箱道具展示界面 if self.competing_list_tip_view == nil then -- self.competing_list_tip_view = CompetingListToolTips.New()--暂时弃用 self.competing_list_tip_view = CompetingListToolSmallTips.New() end if self.competing_list_tip_view:HasOpen() then else self.competing_list_tip_view:Open(data) end end GlobalEventSystem:Bind(CompetingListModel.OPEN_COMPETING_LIST_TIP_VIEW, onOpenCompetingListTipView) local onOpenCompetingListAwardShowView = function (data)--奖池道具展示界面 if self.CompetingListAwardShowView == nil then self.CompetingListAwardShowView = CompetingListAwardShowView.New() end if self.CompetingListAwardShowView:HasOpen() then else self.CompetingListAwardShowView:Open(data) end end GlobalEventSystem:Bind(CompetingListModel.OPEN_COMPETING_LIST_AWARD_SHOW_VIEW, onOpenCompetingListAwardShowView) --升级 local function onLevelUp(level) for i,v in pairs(self.model.view_cfg) do if level == v.lv then CompetingListModel:getInstance():Fire(CompetingListModel.REQUEST_INFO,33300) break end end end RoleManager.Instance.mainRoleInfo:Bind(EventName.CHANGE_LEVEL, onLevelUp) end function CompetingListController:RegisterAllProtocals() self:RegisterProtocal(33300, "handle33300") -- 竞榜活动信息开放 self:RegisterProtocal(33301, "handle33301") -- 竞榜活动信息 self:RegisterProtocal(33302, "handle33302") -- 竞榜抽奖 self:RegisterProtocal(33303, "handle33303") -- 次数奖励领取 self:RegisterProtocal(33304, "handle33304") -- 竞榜活动排行榜数据 self:RegisterProtocal(33305, "handle33305") -- 许愿面板信息 self:RegisterProtocal(33306, "handle33306") -- 祈愿 -- self:RegisterProtocal(33307, "handle33307") -- 广播竞榜全服积分 end -- ############## 竞榜活动信息开放 ############## -- protocol=33300 -- { -- c2s{ -- } -- s2c{ -- list:array -- { -- base_type :int16 // 活动主类型 -- end_time :int32 // 活动结束时间戳 -- end_show_time :int32 // 活动展示时间戳(一般比活动结束时间要长,用于展示竞榜结果) -- world_stage :int16 // 世界等级阶段 -- } -- } -- } function CompetingListController:send33300() self:SendFmtToGame(33300) end function CompetingListController:handle33300() CompetingListModel:getInstance():InitComptingIconCfg()--协议第一次回来进行加载 if not CompetingListController.Is_Debug then local scmd = SCMD33300.New(true) -- print("huangcong:CompetingListController [146]: ",scmd) -- PrintTable(scmd) local have_open = false for k,v in pairs(self.model.view_info) do have_open = false local cfg = self.model.view_cfg[v.base_type] if cfg then for kk,vv in pairs(scmd.list) do if vv.base_type == v.base_type then have_open = true break end end if not have_open and v.base_type and cfg.type == 1 then--竞榜 ActivityIconManager:getInstance():deleteIcon(33300000+v.base_type) elseif not have_open and v.base_type and cfg.type == 2 then--许愿池 ActivityIconManager:getInstance():deleteIcon(1033300000+v.base_type) end end end if #scmd.list > 0 then for i,v in ipairs(scmd.list) do local cfg = self.model.view_cfg[v.base_type] if cfg and cfg.type then scmd.type = cfg.type self.model:SetViewInfoBase(v) self.model:Fire(CompetingListModel.REQUEST_INFO, 33304, v.base_type) end end end else local data = {base_type = 101, end_time = TimeUtil:getServerTime( ) + 3600, end_show_time = TimeUtil:getServerTime( ) + 7200, world_stage = self.model:GetCurWorldLvStage()} local cfg = self.model.view_cfg[data.base_type] if cfg and cfg.type then data.type = cfg.type self.model:SetViewInfoBase(data) end end -- print("huangcong:CompetingListController [117]: ",scmd) -- PrintTable(scmd) -- self.model:SetViewInfo(scmd) -- self.model:Fire(CompetingListModel.UPDATE_COMPETING_LIST_VIEW) end -- ############## 竞榜活动信息 ############## -- protocol=33301 -- { -- c2s{ -- base_type :int16 // 类型 -- } -- s2c{ -- base_type :int16 // 类型 -- free_times :int8 // 免费次数 -- buy_times :int16 // 购买10连次数 -- sum_score :int32 // 积分 -- times :int32 // 累计抽奖次数 -- award_list:array{ -- id :int16 // 奖励Id -- state :int8 // 状态 1可领取未领取|2已领取 -- } -- rank_list:array{ -- role_id :int64 // 角色Id -- role_name :string // 玩家名字 -- server_num :int32 // 服务器Id -- rank :int8 // 排名 -- score :int32 // 积分 -- } -- } -- } function CompetingListController:send33301(base_type) self:SendFmtToGame(33301,"h",base_type) end function CompetingListController:handle33301() local scmd = {} if not CompetingListController.Is_Debug then scmd = SCMD33301.New(true) self.model:SetViewInfoOne(scmd) self.model:Fire(CompetingListModel.UPDATE_COMPETING_LIST_VIEW) else scmd = {} end -- print("huangcong:CompetingListController [180]: ",scmd) -- PrintTable(scmd) end -- ############## 竞榜抽奖 ############## -- protocol=33302 -- { -- c2s{ -- base_type :int16 // 类型 -- times :int8 // 次数 目前只能发1和10 -- is_auto :int8 // 是否自动购买 0不是 1是 -- } -- s2c{ -- errcode :int32 // 返回码(为1 前端会主动去请求33301) -- base_type :int16 // 类型 -- times :int8 // 次数 目前只能发1和10 -- sum_score :int32 // 积分 -- draw_times :int32 // 累计抽奖次数 -- stage :int8 // 世界等级阶段 -- reward_list:array{ -- award_id :int16 // 奖励Id -- } -- } -- } function CompetingListController:send33302(base_type,times,is_auto) self:SendFmtToGame(33302,"hcc",base_type,times,is_auto) end function CompetingListController:handle33302() local scmd = SCMD33302.New(true) -- print("huangcong:CompetingListController [218]: ",scmd) -- PrintTable(scmd) if scmd.errcode == 1 then self.model:SetResult(scmd) -- self.model:Fire(CompetingListModel.OPEN_COMPETING_LIST_RESULT_VIEW,scmd.base_type) self.model:Fire(CompetingListModel.REQUEST_INFO, 33301, scmd.base_type) local str = string.format("冲榜积分增加 %s",ColorUtil.GREEN,scmd.times*self.model.one_score) Message.show(str) else ErrorCodeShow(scmd.errcode) end end -- ############## 次数奖励领取 ############## -- protocol=33303 -- { -- c2s{ -- base_type :int16 // 类型 -- id :int16 // 奖励Id -- } -- s2c{ -- errcode :int32 // 错误码 -- base_type :int16 // 类型 -- id :int16 // 奖励Id -- } -- } function CompetingListController:send33303(base_type,award_id) self:SendFmtToGame(33303,"hh",base_type,award_id) end function CompetingListController:handle33303() local scmd = SCMD33303.New(true) -- print("huangcong:CompetingListController [242]: ",scmd.id) -- PrintTable(scmd) if scmd.errcode == 1 then Message.show("领取成功") local act_list = self.model.view_info[scmd.base_type] if act_list and act_list.award_list then if act_list.award_list[scmd.id] then act_list.award_list[scmd.id].state = 2 end end self.model:CheckMainIconRedDot(scmd.base_type) self.model:Fire(CompetingListModel.UPDATE_BOX_AWARD,scmd.base_type,scmd.id) else ErrorCodeShow(scmd.errcode) end end -- ############## 竞榜活动排行榜数据 ############## -- protocol=33304 -- { -- c2s{ -- base_type :int16 // 类型 -- } -- s2c{ -- base_type :int16 // 类型 -- rank_list:array{ -- role_id :int64 // 角色Id -- role_name :string // 玩家名字 -- server_num :int32 // 服务器Id -- rank :int8 // 排名 -- score :int32 // 积分 -- } -- } -- } function CompetingListController:send33304(base_type) self:SendFmtToGame(33304,"h",base_type) end function CompetingListController:handle33304() local scmd = {} if not CompetingListController.Is_Debug then scmd = SCMD33304.New(true) else scmd = { base_type = 301, rank_list = { role_id = 1, role_name = "塌秧", server_num = 1, rank = 1, score = 150, }, } end -- print("huangcong:CompetingListController [369]: ",scmd.base_type) -- PrintTable(scmd) if not self.model.view_info[scmd.base_type] then self.model.view_info[scmd.base_type] = {} end local record_data = {} for k,v in pairs(scmd.rank_list) do record_data[v.rank] = v end self.model.view_info[scmd.base_type].rank_list = record_data self.model:Fire(CompetingListModel.UPDATE_RANK_INFO,scmd.base_type) end -- ############许愿面板信息################ -- protocol=33305 -- { -- c2s{ -- base_type :int16 // 类型 -- } -- s2c{ -- base_type:int16 // 类型 -- gold_coin:int16 //金币 -- total:int32 //累计充值 -- score:int32 //积分 -- rune_times:int16 //符文祈愿次数 -- award_list:array{ -- id:int16 // 奖励Id -- state:int8 // 状态 1可领取未领取|2已领取 -- } -- } -- } function CompetingListController:send33305(base_type) self:SendFmtToGame(33305,"h",base_type) end function CompetingListController:handle33305() local scmd = {} if not CompetingListController.Is_Debug then scmd = SCMD33305.New(true) else scmd = { base_type = 301, gold_coin = 0, total = 3000, score = 0, rune_times = 3, award_list = { }, } end -- print("huangcong:CompetingListController [399]: ",scmd) -- PrintTable(scmd) local cfg = self.model.view_cfg[scmd.base_type] if cfg and cfg.type then scmd.type = cfg.type self.model:SetFontaniViewInfoOne(scmd) self.model:Fire(CompetingListModel.UPDATE_COMPETING_LIST_VIEW) self.model:Fire(CompetingListModel.UPDATE_FONTANI_VIEW,scmd.base_type) end end -- ###############许愿池许愿################ -- protocol=33306 -- { -- c2s{ -- base_type:int16 // 类型 -- opty:int8 //1金币2符文 -- auto:int8 //0否1自动 -- } -- s2c{ -- res:int32 //1成功 -- base_type:int16 // 类型 -- opty:int8 //操作类型 1金币2符文 -- stage:int8 -- reward_list:array{ -- award_id:int16 // 奖励Id -- } -- } -- } function CompetingListController:send33306(base_type,opty,auto) self:SendFmtToGame(33306,"hcc",base_type,opty,auto) end function CompetingListController:handle33306() local scmd = {} if not CompetingListController.Is_Debug then scmd = SCMD33306.New(true) else scmd = { res = 1, base_type = 301, opty = 1, score = 16, stage = 1, } scmd.reward_list = { award_id = 1, } end -- print("huangcong:CompetingListController [454]: ",scmd) -- PrintTable(scmd) if scmd.res == 1 then self.model:SetFontaniResult(scmd) self.model:Fire(CompetingListModel.OPEN_COMPETING_LIST_RESULT_VIEW,scmd.base_type,scmd.opty) self.model:Fire(CompetingListModel.REQUEST_INFO, 33305, scmd.base_type) local str = string.format("许愿积分增加 %s",ColorUtil.CHUANWEN_GREEN,self.model.wish_score_coin) if scmd.opty == 2 then str = string.format("许愿积分增加 %s",ColorUtil.CHUANWEN_GREEN,self.model.wish_score_rune) end Message.show(str) else ErrorCodeShow(scmd.res) end end -- -- ###############广播全服积分###########20200831需求修改屏蔽33307 -- -- protocol=33307 -- -- { -- -- s2c{ -- -- base_type:int16 // 类型 -- -- server_score :int32 // 全服积分 -- -- } -- -- } -- function CompetingListController:handle33307() -- local scmd = SCMD33307.New(true) -- self.model:Fire(CompetingListModel.REQUEST_INFO, 33301, scmd.base_type) -- -- print("huangcong:CompetingListController [399]: ",scmd) -- -- PrintTable(scmd) -- end