源战役客户端
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
 
 
 
 
 

289 rindas
9.5 KiB

--[[@------------------------------------------------------------------
@description:福利
@author:HWR
----------------------------------------------------------------------]]
require("game.proto.160.Require160")
require("game.fuli.FuliModel")
require("game.fuli.FuliConst")
require("game.fuli.FuliMainView")
require("game.fuli.FuliSignView")--签到奖励
require("game.fuli.FuliSignItem")
require("game.fuli.FuliSignRewardItem")
require("game.fuli.FuliAIView")--在线奖励
require("game.fuli.FuliAIItem")
require("game.fuli.FuliLevelView")--冲级奖励
require("game.fuli.FuliLevelItem")
require("game.fuli.FuliDownloadView")--下载奖励
require("game.fuli.FuliCDKView")--激活码
require("game.fuli.FuliVipAskView")--询问是否升V的界面
require("game.fuli.FuliLimitPackageView") --开服限时礼包
require("game.fuli.FuliLimitPackageItem")
require("game.fuli.FuliLimitPackageNumItem") --开发限时礼包动画节点
require("game.fuli.FuliLimitPackageNumTextItem") --开发显示礼包动画文本节点
require("game.fuli.FuliLimitPackageRewardView") --冲级礼包领取展示
require("game.fuli.FuliNoticeView") --游戏公告界面
require("game.fuli.FuliNoticeTab") --游戏公告界面
FuliController = FuliController or BaseClass(BaseController)
function FuliController:__init()
FuliController.Instance = self
self.model = FuliModel:getInstance()
self:InitEvent()
self:registerAllProtocals()
end
function FuliController:getInstance()
if FuliController.Instance == nil then
FuliController.New()
end
return FuliController.Instance
end
function FuliController:InitEvent()
local function onRequestHandler(...)
local args = {...}
if args[1] == 16006 or args[1] == 16004 or args[1] == 16010 then
self:SendFmtToGame(args[1], "c", args[2])
elseif args[1] == 16009 then
self:SendFmtToGame(args[1], "sl", args[2], 0)
else
self:SendFmtToGame(args[1])
end
end
self.model:Bind(FuliConst.REQ_FULI_SCMD, onRequestHandler)
local function init_open_day( ... )--开服天数初始化
self.model:UpdateFuliLevelActIcon(RoleManager.Instance.mainRoleInfo.level)
end
GlobalEventSystem:Bind(EventName.OPEN_DAY_INIT,init_open_day)
local function chnage_day_func(type)
if type == SettingModel.CHANGE_DAY.HOUR_0 then -- 跨0点
self.model:UpdateFuliLevelActIcon(RoleManager.Instance.mainRoleInfo.level)
end
end
GlobalEventSystem:Bind(EventName.CHANE_DAY, chnage_day_func)
--升级
local function onLevelUp(level)
if level and type(level) == "number" then
level = level or RoleManager.Instance.mainRoleInfo.level
--检查升级福利引导图标开启
self.model:UpdateFuliLevelActIcon(level)
end
end
RoleManager.Instance.mainRoleInfo:Bind(EventName.CHANGE_LEVEL, onLevelUp)
FuliModel:getInstance():BindOne("fuli_level_info", onLevelUp)
local on_open_fuli_main_view = function (index, sub_index, param_list)
if self.fuli_main_view == nil then
self.fuli_main_view = FuliMainView.New()
end
if self.fuli_main_view:HasOpen() then
self.fuli_main_view:ReOpen(index, sub_index, param_list)
else
self.fuli_main_view:Open(index, sub_index, param_list)
end
end
GlobalEventSystem:Bind(FuliConst.OPEN_FULI_MAIN_VIEW, on_open_fuli_main_view)
local on_open_fuli_ask_view = function ()
if self.fuli_ask_view == nil then
self.fuli_ask_view = FuliVipAskView.New()
end
self.fuli_ask_view:Open()
end
self.model:Bind(FuliConst.OPEN_FULI_VIP_ASK_VIEW, on_open_fuli_ask_view)
local onGameStartHandler = function ()
self.model:Fire(FuliConst.REQ_FULI_SCMD, 16001)
self.model:Fire(FuliConst.REQ_FULI_SCMD, 16003)
self.model:Fire(FuliConst.REQ_FULI_SCMD, 16005)
self.model:Fire(FuliConst.REQ_FULI_SCMD, 16007)
end
self:Bind(EventName.GAME_START, onGameStartHandler)
local function update_red_dot_by_tab_id_func( tab_id )--主要的更新红点方法
if not tab_id then
self.model:IsFuliNeedRedAll()
else
self.model:IsFuliNeedRed(tab_id)
end
local red_dot = self.model:GetAllFuliRedDot()
local bool = false
for i,v in pairs(red_dot) do
if v then
bool = true
break
end
end
GlobalEventSystem:Fire(ActivityIconManager.UPDATE_ICON_TIPS, 16000, bool)
end
self.model:Bind(FuliConst.UPDATE_FULI_RED_DOT,update_red_dot_by_tab_id_func)
local function onLevelChange(level)
self.model:Fire(FuliConst.UPDATE_FULI_RED_DOT, FuliConst.TAB_ID.LEVEL)
end
RoleManager:getInstance().mainRoleInfo:Bind(EventName.CHANGE_LEVEL, onLevelChange)
local function onVipChange()
self.model:Fire(FuliConst.UPDATE_FULI_RED_DOT, FuliConst.TAB_ID.SIGN)
end
RoleManager:getInstance().mainRoleInfo:BindOne("vip_flag", onVipChange)
--已下载量,总更新量,当前更新速度,是否已更新完成
local function update_resourse_state(now_size,all_size,speed,isdone)
self.model:Fire(FuliConst.SHOW_FULI_DOWN_RES_NUM, now_size, all_size, speed, isdone)
if isdone then
self.model:Fire(FuliConst.UPDATE_FULI_RED_DOT, FuliConst.TAB_ID.DOWNLOAD)
StepPackModule:getInstance():SetCallbackFunc(nil)
end
end
StepPackModule:getInstance():SetCallbackFunc(update_resourse_state)
local on_open_fuli_limitpackage_view = function ()
if self.fuli_limit_package_view == nil then
self.fuli_limit_package_view = FuliLimitPackageView.New()
end
if self.fuli_limit_package_view:HasOpen() then
self.fuli_limit_package_view:ReOpen()
else
self.fuli_limit_package_view:Open()
end
end
self.model:Bind(FuliConst.OPEN_FULI_LIMIT_PACKAGE_VIEW, on_open_fuli_limitpackage_view)
--打开普通礼包界面
local function on_open_fuli_limitpackage_reward_view(no)
if self.fuli_limit_package_reward_view == nil then
self.fuli_limit_package_reward_view = FuliLimitPackageRewardView.New()
end
if self.fuli_limit_package_reward_view:HasOpen() then
self.fuli_limit_package_reward_view:ReOpen()
else
self.fuli_limit_package_reward_view:Open(no)
end
end
self.model:Bind(FuliConst.OPEN_FULI_LIMIT_REWARD_VIEW, on_open_fuli_limitpackage_reward_view)
local function CLOSE_SOME_VIEW( )
if self.fuli_main_view then
self.fuli_main_view:Close()
end
end
GlobalEventSystem:Bind(EventName.CLOSE_SOME_VIEW,CLOSE_SOME_VIEW)
GlobalEventSystem:Bind(FuliConst.CLOSE_FULI_MAIN_VIEW,CLOSE_SOME_VIEW)
end
function FuliController:registerAllProtocals()
self:RegisterProtocal(16001,"handle16001")--福利大厅-签到状态
self:RegisterProtocal(16002,"handle16002")--福利大厅-签到
self:RegisterProtocal(16003,"handle16003")--福利大厅-在线奖励状态
self:RegisterProtocal(16004,"handle16004")--福利大厅-在线奖励领取
self:RegisterProtocal(16005,"handle16005")--福利大厅-冲级奖励状态
self:RegisterProtocal(16006,"handle16006")--福利大厅-领取冲级奖励
self:RegisterProtocal(16007,"handle16007")--福利大厅-资源下载奖励状态
self:RegisterProtocal(16008,"handle16008")--福利大厅-领取资源下载奖励奖励
self:RegisterProtocal(16009,"handle16009")--福利大厅-领取激活码礼包
self:RegisterProtocal(16010,"handle16010")--福利大厅-领取累计签到奖励
self:RegisterProtocal(16011,"handle16011")--限时开服礼包
end
function FuliController:handle16001()
local vo = SCMD16001.New(true)
local table = TenbyteToTwobyte(vo.cumulative_info)
vo.total_state = table
self.model:SetFuliSignInfo(vo)
self.model:Fire(FuliConst.UPDATE_FULI_RED_DOT, FuliConst.TAB_ID.SIGN)
end
function FuliController:handle16002()
local vo = SCMD16002.New(true)
if vo.res == 1 then
Message.show("签到成功~")
else
ErrorCodeShow(vo.res)
end
end
function FuliController:handle16003()
local vo = SCMD16003.New(true)
local table = TenbyteToTwobyte(vo.receive_state)
vo.my_receive = table
self.model:SetFuliAIInfo(vo)
PkRankModel:getInstance():GetOnlineTime()
self.model:Fire(FuliConst.UPDATE_FULI_RED_DOT, FuliConst.TAB_ID.AI)
end
function FuliController:handle16004()
local vo = SCMD16004.New(true)
if vo.res == 1 then
Message.show("奖励领取成功~")
self.model:Fire(FuliConst.AI_TALK_SHOW, FuliConst.AI_TALK_TYPE.SEND_GIFT)
else
ErrorCodeShow(vo.res)
end
end
function FuliController:handle16005()
local vo = SCMD16005.New(true)
local limit_state = {}
for i,v in ipairs(vo.limit_state) do
limit_state[v.id] = v.number
end
vo.limit_state = limit_state
local table = TenbyteToTwobyte(vo.receive_state)
vo.my_receive = table
self.model:SetFuliLevelInfo(vo)
self.model:Fire(FuliConst.UPDATE_FULI_RED_DOT, FuliConst.TAB_ID.LEVEL)
self.model:UpdateFuliLevelActIcon(RoleManager.Instance.mainRoleInfo.level)
end
function FuliController:handle16006()
local vo = SCMD16006.New(true)
PrintTable(vo)
if vo.res == 1 then
Message.show("奖励领取成功~")
-- if vo.no == 1 then
-- self.model:Fire(FuliConst.OPEN_FULI_LIMIT_REWARD_VIEW, vo.no)
-- end
else
ErrorCodeShow(vo.res)
end
end
function FuliController:handle16007()
local vo = SCMD16007.New(true)
self.model:SetFuliDownState(vo.receive_state)
self.model:Fire(FuliConst.UPDATE_FULI_RED_DOT, FuliConst.TAB_ID.DOWNLOAD)
end
function FuliController:handle16008()
local vo = SCMD16008.New(true)
if vo.res == 1 then
Message.show("奖励领取成功~")
else
ErrorCodeShow(vo.res)
end
end
function FuliController:handle16009()
local vo = SCMD16009.New(true)
if vo.res == 1 then
Message.show("奖励领取成功~")
else
ErrorCodeShow(vo.res)
end
end
function FuliController:handle16010()
local vo = SCMD16010.New(true)
if vo.res == 1 then
Message.show("累积签到奖励领取成功~")
else
ErrorCodeShow(vo.res)
end
end
function FuliController:handle16011()
local vo = SCMD16011.New(true)
self.model.fuli_limit_package_info = vo
self.model:Fire(FuliConst.FULI_LIMIT_INFO_UPDATE)
end