require("game.proto.335.Require335") require("game.powerTurnTable.PowerTurnTableModel") require("game.powerTurnTable.PowerTurnTableView")--转盘界面 require("game.powerTurnTable.PowerTurnTableRecordItem")--转盘日志item require("game.powerTurnTable.PowerTurnTableExchangeView")--积分兑换界面 require("game.powerTurnTable.PowerTurnTableExchangeItem")--积分兑换界面item require("game.powerTurnTable.PowerTurnTableExchangeReqView")--兑换请求界面 PowerTurnTableController = PowerTurnTableController or BaseClass(BaseController) PowerTurnTableController.Is_Debug = false function PowerTurnTableController:__init() PowerTurnTableController.Instance = self self.model = PowerTurnTableModel:getInstance() self.mainVo = RoleManager.Instance.mainRoleInfo self:RegisterAllProtocals() self:AddAllEvents() end function PowerTurnTableController:__delete() end function PowerTurnTableController:AddAllEvents() local function game_start_func() end GlobalEventSystem:Bind(EventName.GAME_START,game_start_func) --请求协议 local function onRequestProtocal(...) local args = {...} if args[1] == 33501 or args[1] == 33502 or args[1] == 33505 then self:SendFmtToGame(args[1], "h", args[2]) elseif args[1] == 33503 then self:SendFmtToGame(args[1], "hch", args[2],args[3],args[4]) elseif args[1] == 33504 then self:SendFmtToGame(args[1], "hcc", args[2],args[3],args[4]) else self:SendFmtToGame(args[1]) end end self.model:Bind(PowerTurnTableModel.REQUEST_INFO, onRequestProtocal) local function init_open_day( ... )--开服天数初始化 end GlobalEventSystem:Bind(EventName.OPEN_DAY_INIT,init_open_day) --升级 local function onLevelUp(level) 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 base_type = CustomActivityModel.CustomActBaseType.POWER_TURNTABLE local all_act_list = CustomActivityModel:getInstance():getAllActListByBaseType(base_type) or {} if all_act_list then for k,v in pairs(all_act_list) do self.model:CheckPowerTurnTableMainRedDot(v.sub_type) self.model:Fire(PowerTurnTableModel.UPDATE_VIEW_INFO,v.sub_type) end end end end GlobalEventSystem:Bind(EventName.CHANE_DAY, chnage_day_func) local onOpenPowerTurnTableView = function (sub_type,is_close)--往期排行 if self.PowerTurnTableView == nil then self.PowerTurnTableView = PowerTurnTableView.New() end if self.PowerTurnTableView:HasOpen() and not is_close then -- self.PowerTurnTableView:UpdateView(sub_type) elseif not is_close then self.PowerTurnTableView:Open(sub_type) else self.PowerTurnTableView:Close() end end self.model:Bind(PowerTurnTableModel.OPEN_MAIN_VIEW,onOpenPowerTurnTableView) local onOpenPowerTurnTableExchangeView = function (sub_type,is_close)--兑换界面 if self.PowerTurnTableExchangeView == nil then self.PowerTurnTableExchangeView = PowerTurnTableExchangeView.New() end if self.PowerTurnTableExchangeView:HasOpen() and not is_close then -- self.PowerTurnTableExchangeView:UpdateView(sub_type) elseif not is_close then self.PowerTurnTableExchangeView:Open(sub_type) else self.PowerTurnTableExchangeView:Close() end end self.model:Bind(PowerTurnTableModel.OPEN_EXCHANGE_VIEW,onOpenPowerTurnTableExchangeView) local onPowerTurnTableExchangeReqView = function (data,is_close)--兑换请求界面 if self.PowerTurnTableExchangeReqView == nil then self.PowerTurnTableExchangeReqView = PowerTurnTableExchangeReqView.New() end if self.PowerTurnTableExchangeReqView:HasOpen() and not is_close then -- self.PowerTurnTableExchangeReqView:UpdateView(sub_type) elseif not is_close then self.PowerTurnTableExchangeReqView:Open(data) else self.PowerTurnTableExchangeReqView:Close() end end self.model:Bind(PowerTurnTableModel.OPEN_EXCHANGE_REQ_VIEW,onPowerTurnTableExchangeReqView) end function PowerTurnTableController:RegisterAllProtocals() self:RegisterProtocal(33501,"handler33501") --奖池信息 self:RegisterProtocal(33502,"handler33502") --积分兑换界面 self:RegisterProtocal(33503,"handler33503") --积分兑换 self:RegisterProtocal(33504,"handler33504") --抽奖 self:RegisterProtocal(33505,"handler33505") --全服记录 end -- ########### 源能转盘-奖池信息 ############## -- protocol=33501 -- { -- c2s{ -- sub_type :int16 // 活动子类型 -- } -- s2c{ -- errcode :int32 // 错误码 -- sub_type :int16 // 活动子类型 -- score :int16 // 积分 -- point :int16 // 源能值 -- free_time :int8 // 免费次数 -- pool_list:array{ -- id :int8 // id -- reward :string // 奖励 -- tag :int8 // 标识 -- } -- } -- } function PowerTurnTableController:handler33501() local scmd = SCMD33501.New(true) -- print("huangcong:PowerTurnTableController [start:120] scmd:", scmd.errcode) -- PrintTable(scmd) -- print("huangcong:PowerTurnTableController [end]") if scmd.errcode == 1 then self.model:SetPowerTurnTableInfo(scmd) else -- ErrorCodeShow(scmd.errcode) end end -- ########### 源能转盘-积分兑换界面 ############## -- protocol=33502 -- { -- c2s{ -- sub_type :int16 // 活动子类型 -- } -- s2c{ -- errcode :int32 // 错误码 -- sub_type :int16 // 活动子类型 -- cur_score :int16 // 积分 -- swap_list:array{ -- id :int8 // id -- Reward :string // 物品 -- LeftTimes :int8 // 剩余兑换次数 -- score :int16 // 需要的积分 -- countdown :int16 // 解锁倒计时,0为已解锁 -- } -- } -- } function PowerTurnTableController:handler33502() local scmd = SCMD33502.New(true) -- print("33502scmd", scmd.errcode) if scmd.errcode == 1 then local server_info = self.model:GetPowerTurnTableInfo(scmd.sub_type) if server_info then server_info.score = scmd.cur_score end self.model:SetExchangeInfoList(scmd) self.model:Fire(PowerTurnTableModel.UPDATE_EXCHANGE_VIEW,scmd.sub_type) else -- ErrorCodeShow(scmd.errcode) end end -- ########### 源能转盘-积分兑换 ############## -- protocol=33503 -- { -- c2s{ -- sub_type :int16 // 活动子类型 -- id :int8 // id -- num :int16 // 数量 -- } -- s2c{ -- errcode :int32 // 错误码 -- sub_type :int16 // 活动子类型 -- id :int8 // id -- left_times :int8 // 剩余兑换次数 -- cur_score :int16 // 积分 -- } -- } function PowerTurnTableController:handler33503() local scmd = SCMD33503.New(true) -- print("33503scmd", scmd.errcode) if scmd.errcode == 1 then Message.show("兑换成功") local server_info = self.model:GetPowerTurnTableInfo(scmd.sub_type) if server_info then server_info.score = scmd.cur_score end local exchange_info = self.model:GetExchangeInfoList(scmd.sub_type) if exchange_info then for i,v in ipairs(exchange_info) do if v.id == scmd.id then v.left_times = scmd.left_times v.sort_id = v.id + (v.left_times == 0 and 1000 or 0)--兑换完置底 --触发快捷使用 OperateActivityModel:getInstance():Fire(OperateActivityModel.QUIK_USE, true) --道具飞背包 local goods_fly_data = {[1] = v.reward[2]} if TableSize(goods_fly_data) > 0 then MainUIModel:getInstance():PlayGoodsFlyList(goods_fly_data) end --飘字 goods_fly_data = { [1] = { goods_type_id = v.reward[2], num = v.reward[3], } } if TableSize(goods_fly_data) > 0 then MainUIModel:getInstance():AddFloatInfo(goods_fly_data, true) end break end end local sort_func = function ( a, b ) return a.sort_id < b.sort_id end table.sort(exchange_info, sort_func) end self.model:Fire(PowerTurnTableModel.UPDATE_EXCHANGE_VIEW,scmd.sub_type) self.model:Fire(PowerTurnTableModel.UPDATE_VIEW_INFO,scmd.sub_type) else ErrorCodeShow(scmd.errcode) end end -- ########### 源能转盘-抽奖 ############## -- protocol=33504 -- { -- c2s{ -- sub_type :int16 // 活动子类型 -- type :int8 // 1单抽|2十连抽 -- skip :int8 // 是否跳过动画 0否1是 -- } -- s2c{ -- errcode :int32 // 错误码 -- sub_type :int16 // 活动子类型 -- score :int16 // 积分 -- point :int16 // 源能值 -- free_time :int8 // 免费次数 -- id_list:array{ -- id :int8 // 奖励id -- } -- } -- } function PowerTurnTableController:handler33504() local scmd = SCMD33504.New(true) -- print("33504scmd", scmd.errcode) if scmd.errcode == 1 then local server_info = self.model:GetPowerTurnTableInfo(scmd.sub_type) if server_info then local cur_point = server_info.point server_info.score = scmd.score server_info.point = scmd.point server_info.free_time = scmd.free_time -- self.model:Fire(PowerTurnTableModel.UPDATE_VIEW_INFO,scmd.sub_type) self.model:CheckPowerTurnTableMainRedDot(scmd.sub_type) self.model:Fire(PowerTurnTableModel.START_TURN_ACTION,scmd.sub_type,scmd.id_list,cur_point) end else ErrorCodeShow(scmd.errcode) end end -- ########### 源能转盘-全服记录 ############## -- protocol=33505 -- { -- c2s{ -- sub_type :int16 // 活动子类型 -- } -- s2c{ -- list:array{ -- role_name :string -- goods_id :int32 -- num :int8 -- } -- } -- } function PowerTurnTableController:handler33505() local scmd = SCMD33505.New(true) -- print("huangcong:PowerTurnTableController [start:295] scmd:", scmd) -- PrintTable(scmd) -- print("huangcong:PowerTurnTableController [end]") self.model:SetRecordInfo(scmd) self.model:Fire(PowerTurnTableModel.UPDATE_RECORD_INFO,scmd.sub_type) end