源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

416 lines
15 KiB

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