require("game.proto.451.Require451") require("game.supremeVip.SupremeVipModel") require("game.supremeVip.SupremeVipConst") require("game.supremeVip.SupremeVipActivateView") require("game.supremeVip.SupremeVipBaseView") require("game.supremeVip.SupremeVipDiamondExchangeView") require("game.supremeVip.SupremeVipMainView") require("game.supremeVip.SupremeVipShopView") require("game.supremeVip.SupremeVipTrainDrugExchangeView") require("game.supremeVip.SupremeVipTabItem") require("game.supremeVip.SupremeVipBuyView") require("game.supremeVip.SupremeVipTrainDrugExchangeItem") require("game.supremeVip.SupremeVipShopItem") require("game.supremeVip.SupremeVipFindRightView")--特权查看界面 require("game.supremeVip.SupremeVipRightItem") require("game.supremeVip.SupremeVipSevenLoginItem") SupremeVipController = SupremeVipController or BaseClass(BaseController, true) local SupremeVipController = SupremeVipController SupremeVipController.IsDebug = true function SupremeVipController:__init() SupremeVipController.Instance = self self.model = SupremeVipModel:getInstance() self.mainVo = RoleManager.Instance.mainRoleInfo self:AddEvents() self:RegisterAllProtocal() end function SupremeVipController:__delete() end function SupremeVipController:RegisterAllProtocal( ) self:RegisterProtocal(45101, "Handle45101") self:RegisterProtocal(45102, "Handle45102") self:RegisterProtocal(45103, "Handle45103") self:RegisterProtocal(45104, "Handle45104") self:RegisterProtocal(45105, "Handle45105") self:RegisterProtocal(45106, "Handle45106") self:RegisterProtocal(45107, "Handle45107") self:RegisterProtocal(45108, "Handle45108") self:RegisterProtocal(45109, "Handle45109") self:RegisterProtocal(45110, "Handle45110") end function SupremeVipController:AddEvents() --请求信息 local function onRequestHandler(...) local args_list = {...} if args_list[1] == 45101 then self:SendFmtToGame(args_list[1]) elseif args_list[1] == 45102 then self:SendFmtToGame(args_list[1],"c",args_list[2]) elseif args_list[1] == 45103 then self:SendFmtToGame(args_list[1],"cic",args_list[2],args_list[3],args_list[4]) elseif args_list[1] == 45104 then self:SendFmtToGame(args_list[1]) elseif args_list[1] == 45105 then self:SendFmtToGame(args_list[1],"ih",args_list[2],args_list[3]) elseif args_list[1] == 45106 then self:SendFmtToGame(args_list[1]) elseif args_list[1] == 45107 then self:SendFmtToGame(args_list[1],"c",args_list[2]) elseif args_list[1] == 45109 then self:SendFmtToGame(args_list[1]) -- self:TestHandle45109() elseif args_list[1] == 45110 then self:SendFmtToGame(args_list[1],"cc",args_list[2],args_list[3]) -- self:TestHandle45110(args_list[2],args_list[3]) else self:SendFmtToGame(args_list[1]) end end self.model:Bind(SupremeVipConst.REQUEST_CCMD_EVENT, onRequestHandler) local function onGameStart() local function onDelay() self:RequestSupremeVipBaseData() end setTimeout(onDelay, 2) end GlobalEventSystem:Bind(EventName.GAME_START, onGameStart) -- 满足等级后请求信息 local function onLevelUp(level) if level == GetModuleOpenLevel(451) then self:RequestSupremeVipBaseData() end end RoleManager.Instance.mainRoleInfo:Bind(EventName.CHANGE_LEVEL, onLevelUp) local function chnage_day_func(type) if type == SettingModel.CHANGE_DAY.HOUR_0 then -- 跨0点 local function delay_method( ) self.model:Fire(SupremeVipConst.REQUEST_CCMD_EVENT,45109)--每日礼包七天登录 end setTimeout(delay_method, 2) end end GlobalEventSystem:Bind(EventName.CHANE_DAY, chnage_day_func) --主界面贵族按钮点击事件,判断贵族身份(非贵族,贵族)进入广告页或贵族主界面 local function on_open_supreme_vip_base() if self.model:IsForeverSupremeVip() then--永久贵族 self.model:Fire(SupremeVipConst.OPEN_SUPREME_VIP_VIEW,1) else if self.model:IsMomentSupremeVip() then--一阶贵族 self.model:Fire(SupremeVipConst.OPEN_SUPREME_VIP_VIEW,1) else--啥都不是 if self.model:GetEndTime() == 0 then--激活过一阶贵族就不能再激活了 self.model:Fire(SupremeVipConst.OPEN_SUPREME_VIP_ACTIVATE_VIEW) else self.model:Fire(SupremeVipConst.OPEN_SUPREME_VIP_BUY_VIEW) end end end end self.model:Bind(SupremeVipConst.OPEN_SUPREME_VIP_BASE,on_open_supreme_vip_base) --打开激活贵族界面 local function on_open_supreme_vip_activate_view(index) if self.supreme_vip_activate_view == nil then self.supreme_vip_activate_view = SupremeVipActivateView.New() end if self.supreme_vip_activate_view:HasOpen() then self.supreme_vip_activate_view:Close() else self.supreme_vip_activate_view:Open(index) end end self.model:Bind(SupremeVipConst.OPEN_SUPREME_VIP_ACTIVATE_VIEW,on_open_supreme_vip_activate_view) --打开贵族功能界面 local function on_open_supreme_vip_view(index) if self.supreme_vip_view == nil then self.supreme_vip_view = SupremeVipBaseView.New() end if self.supreme_vip_view:HasOpen() then self.supreme_vip_view:Close() else self.supreme_vip_view:Open(index) end end self.model:Bind(SupremeVipConst.OPEN_SUPREME_VIP_VIEW,on_open_supreme_vip_view) --打开成为永久贵族界面 local function on_open_supreme_vip_buy_view() if self.supreme_vip_buy_view == nil then self.supreme_vip_buy_view = SupremeVipBuyView.New() end if self.supreme_vip_buy_view:HasOpen() then self.supreme_vip_buy_view:Close() else self.supreme_vip_buy_view:Open() end end self.model:Bind(SupremeVipConst.OPEN_SUPREME_VIP_BUY_VIEW,on_open_supreme_vip_buy_view) --打开成为贵族特权查看界面 local function openSupremeVipFindRightView() if self.SupremeVipFindRightView == nil then self.SupremeVipFindRightView = SupremeVipFindRightView.New() end if self.SupremeVipFindRightView:HasOpen() then self.SupremeVipFindRightView:Close() else self.SupremeVipFindRightView:Open() end end self.model:Bind(SupremeVipConst.OPEN_SUPREME_VIP_FIND_RIGHT_VIEW,openSupremeVipFindRightView) --传闻跳转判断 local function on_chuanwen_jump_supreme_vip_view() if self.model.sup_vip_type == 2 then-- 玩家已经是永久贵族时,弹出贵族主界面 self.model:Fire(SupremeVipConst.OPEN_SUPREME_VIP_VIEW,1) elseif self.model.sup_vip_type == 1 then-- 玩家激活过一阶贵族时,弹出成为永久贵族界面 self.model:Fire(SupremeVipConst.OPEN_SUPREME_VIP_BUY_VIEW) else-- 玩家未激活V3时,弹出“激活贵族”界面 -- 玩家是V4但没有激活过贵族时,弹出“激活贵族”界面 self.model:Fire(SupremeVipConst.OPEN_SUPREME_VIP_ACTIVATE_VIEW) end end self.model:Bind(SupremeVipConst.CHUANWEN_JUMP_SUPREME_VIP_VIEW,on_chuanwen_jump_supreme_vip_view) --检测培养丹数量变化 local function on_update_train_drug_num() self.model:Fire(SupremeVipConst.UPDATE_RED_DOT,SupremeVipConst.RED_DOT_TYPE.TrainDrugExchange) end self.model:Bind(SupremeVipConst.UPDATE_TRAIN_DRUG_NUM,on_update_train_drug_num) --主要的更新红点方法 local function update_red_dot_by_tab_id_func( tab_id ) if not tab_id then self.model:IsNeedRedAll() else self.model:IsNeedRed(tab_id) end local red_dot = self.model:GetAllRedDot() local bool = false for i,v in pairs(red_dot) do if v then bool = true break end end --外部红点 self.model:Fire(SupremeVipConst.UPDATE_SUPREME_VIP_MAIN_BUTTON_RED) end self.model:Bind(SupremeVipConst.UPDATE_RED_DOT,update_red_dot_by_tab_id_func) local function onChangeJinLockHandler() self.model:Fire(SupremeVipConst.UPDATE_RED_DOT,SupremeVipConst.RED_DOT_TYPE.DiamondExchange) end self.change_lockJin_id = self.mainVo:BindOne("jinLock",onChangeJinLockHandler) end --请求贵族的一些基本信息,在登陆后已经激活贵族后请求 function SupremeVipController:RequestSupremeVipBaseData( ) self.model:Fire(SupremeVipConst.REQUEST_CCMD_EVENT,45101)--请求自己的贵族信息 self.model:Fire(SupremeVipConst.REQUEST_CCMD_EVENT,45106)--今日星钻数据 self.model:Fire(SupremeVipConst.REQUEST_CCMD_EVENT,45104)--贵族商城信息 self.model:Fire(SupremeVipConst.REQUEST_CCMD_EVENT,45109)--每日礼包七天登录 end -- ############ 贵族信息 ############ function SupremeVipController:Handle45101( ) local vo = SCMD45101.New(true) if vo then local need_refresh_all_view = false if vo.sup_vip_type == 2 and vo.sup_vip_type ~= self.model.sup_vip_type and self.model.sup_vip_type ~= 0 then--标识变了,说明是刚刚成为永久贵族,这时要刷新全部界面 lua_soundM:PlayEffect(self, "success",false,LuaSoundManager.SOUND_TYPE.UI) need_refresh_all_view = true end self.model:SetSupremeVipData(vo) if need_refresh_all_view then if self.supreme_vip_activate_view and self.supreme_vip_activate_view:HasOpen() then self.model:Fire(SupremeVipConst.OPEN_SUPREME_VIP_ACTIVATE_VIEW) end if self.supreme_vip_buy_view and self.supreme_vip_buy_view:HasOpen() then self.model:Fire(SupremeVipConst.OPEN_SUPREME_VIP_BUY_VIEW) end self.model:Fire(SupremeVipConst.NEED_REFRESH_ALL_VIEW) end --刷新贵族信息(成为永久贵族界面刷新充值天数,每日礼包界面刷新贵族状态) self.model:Fire(SupremeVipConst.REFRESH_SUPREME_VIP_DATA) self.model:Fire(SupremeVipConst.REQUEST_CCMD_EVENT,45107,1)--剩余礼包兑换次数 self.model:Fire(SupremeVipConst.REQUEST_CCMD_EVENT,45107,2)--剩余彩钻兑换次数 self.model:Fire(SupremeVipConst.REQUEST_CCMD_EVENT,45107,3)--剩余培养丹兑换次数 self.model:Fire(SupremeVipConst.UPDATE_RED_DOT,SupremeVipConst.RED_DOT_TYPE.SevenLogin) end end -- ############ 激活体验贵族 ############## function SupremeVipController:Handle45102( ) local vo = SCMD45102.New(true) if vo then if vo.res == 1 then if vo.type == 0 then Message.show("已激活贵族","success") self.model:Fire(SupremeVipConst.OPEN_SUPREME_VIP_ACTIVATE_VIEW)--把激活界面关闭 self.model:Fire(SupremeVipConst.OPEN_SUPREME_VIP_VIEW,1)--然后打开主界面 self:RequestSupremeVipBaseData() skill_data = {skill_id = 109101} FuncOpenController.Instance:ShowSkill(skill_data) end self.model:Fire(SupremeVipConst.UPDATE_RED_DOT,SupremeVipConst.RED_DOT_TYPE.SevenLogin) else ErrorCodeShow(vo.res) lua_soundM:PlayEffect(self, "fault",false,LuaSoundManager.SOUND_TYPE.UI) end end end -- ############ 贵族每日礼包领取&兑换 ############# function SupremeVipController:Handle45103( ) local vo = SCMD45103.New(true) if vo and vo.res == 1 then if vo.type == 1 then local data = {} data.award = self.model:GetDailyGiftCfg() data.not_show_anim = true GlobalEventSystem:Fire(EventName.OPEN_COM_AWARD_RESULT_VIEW,data) lua_soundM:PlayEffect(self, "award",false,LuaSoundManager.SOUND_TYPE.UI) elseif vo.type == 2 or vo.type == 3 then Message.show("兑换成功","award") end self.model:Fire(SupremeVipConst.REQUEST_CCMD_EVENT,45107,vo.type) else ErrorCodeShow(vo.res) lua_soundM:PlayEffect(self, "fault",false,LuaSoundManager.SOUND_TYPE.UI) end end -- ############## 贵族商城信息 ############## function SupremeVipController:Handle45104( ) --商城限购数据在打开商城时候请求 local vo = SCMD45104.New(true) if vo and vo.res == 1 then if vo.type == 0 then self.model:SetSupremeVipShopData(vo) self.model:Fire(SupremeVipConst.UPDATE_SUPREME_VIP_SHOP_CON)--刷新展示商城 elseif vo.type == 1 then --购买商品时会刷新限购数据,此时只刷新对应id的商品item self.model:RefreshShopLimitData(vo) -- if vo.unlock_id ~= self.model.unlock_id then self.model:Fire(SupremeVipConst.UPDATE_SUPREME_VIP_SHOP_CON)--刷新展示商城 -- else -- self.model:Fire(SupremeVipConst.UPDATE_SUPREME_VIP_SHOP_ITEM,vo) -- end end self.model:Fire(SupremeVipConst.UPDATE_RED_DOT,SupremeVipConst.RED_DOT_TYPE.Shop) self.model:Fire(SupremeVipConst.UPDATE_RED_DOT,SupremeVipConst.RED_DOT_TYPE.MoneyLeft) else ErrorCodeShow(vo.res) end end -- ############## 贵族商城购买 ############## function SupremeVipController:Handle45105( ) local vo = SCMD45105.New(true) if vo then ShopModel:getInstance():Fire(ShopModel.CLOSE_SHOP_BUY_VIEW) --购买物品后刷新解锁进度和限购数据,服务端主推45104 if vo.res ~= 1 then ErrorCodeShow(vo.res) end end end -- ############## 贵族星钻信息 ############# function SupremeVipController:Handle45106( ) local vo = SCMD45106.New(true) if vo then self.model:SetStarDiamondData(vo) self.model:Fire(SupremeVipConst.REFRESH_STAR_DIAMOND_NUM)--刷新星钻商城界面的星钻数量显示 self.model:Fire(SupremeVipConst.UPDATE_RED_DOT,SupremeVipConst.RED_DOT_TYPE.Shop) self.model:Fire(SupremeVipConst.UPDATE_RED_DOT,SupremeVipConst.RED_DOT_TYPE.MoneyLeft) end end -- ############## 贵族兑换信息 ############## function SupremeVipController:Handle45107( ) local vo = SCMD45107.New(true) if vo then self.model:SetExchangeRestCounts(vo) --刷新贵族界面页签上的剩余数量和兑换界面的两个剩余数量 self.model:Fire(SupremeVipConst.REFRESH_EXCHANGE_REST_COUNTS) self.model:Fire(SupremeVipConst.UPDATE_RED_DOT,SupremeVipConst.RED_DOT_TYPE.DailyGift) self.model:Fire(SupremeVipConst.UPDATE_RED_DOT,SupremeVipConst.RED_DOT_TYPE.DiamondExchange) self.model:Fire(SupremeVipConst.UPDATE_RED_DOT,SupremeVipConst.RED_DOT_TYPE.TrainDrugExchange) end end -- ############# 星钻商城红点 ############## function SupremeVipController:Handle45108( ) local vo = SCMD45108.New(true) if vo then --收到后端充值通知时,如果此时复核moneyleft红点,name要把一次性红点重新给出来 local clock_flag = self.model:CheckMoneyLeftRed() if clock_flag then self.model.is_first_open_shop = true end self.model:Fire(SupremeVipConst.UPDATE_RED_DOT,SupremeVipConst.RED_DOT_TYPE.Shop) self.model:Fire(SupremeVipConst.UPDATE_RED_DOT,SupremeVipConst.RED_DOT_TYPE.MoneyLeft) end end -- ############# 每日礼包七天登录 ############## function SupremeVipController:Handle45109( ) local vo = SCMD45109.New(true) if vo then self.model:SetSupremeVipSevenLoginData(vo) self.model:Fire(SupremeVipConst.UPDATE_SUPREME_VIP_SEVEN_LOGIN_VIEW) self.model:Fire(SupremeVipConst.UPDATE_RED_DOT,SupremeVipConst.RED_DOT_TYPE.DailyGift) self.model:Fire(SupremeVipConst.UPDATE_RED_DOT,SupremeVipConst.RED_DOT_TYPE.SevenLogin) end end function SupremeVipController:TestHandle45109( ) local vo = {} vo.day_state = { [1] = {day_id = 1, reward_state = 1}, [2] = {day_id = 2, reward_state = 2}, [3] = {day_id = 3, reward_state = 2}, [4] = {day_id = 4, reward_state = 1}, [5] = {day_id = 5, reward_state = 0}, } vo.login_days = 5 self.model:SetSupremeVipSevenLoginData(vo) self.model:Fire(SupremeVipConst.UPDATE_SUPREME_VIP_SEVEN_LOGIN_VIEW) end -- ############# 每日礼包七天登录领奖 ############## function SupremeVipController:Handle45110( ) local vo = SCMD45110.New(true) if vo then if vo.errcode == 1 then self.model:Fire(SupremeVipConst.REQUEST_CCMD_EVENT,45109)--每日礼包七天登录 else ErrorCodeShow(vo.errcode) end end end function SupremeVipController:TestHandle45110(day,type) end