require("game.proto.331.Require331") require("game.proto.332.Require332") require("game.customActivity.CustomActivityConst") require("game.customActivity.CustomActivityModel") --定制活动 CustomActivityController = CustomActivityController or BaseClass(BaseController) function CustomActivityController:__init() CustomActivityController.Instance = self self.model = CustomActivityModel:getInstance() self:EnableCheckoutClear() self:addAllEvents() self:registerAllProtocals() end function CustomActivityController:addAllEvents() local function onLevelUp(lv) local role_lv = RoleManager.Instance.mainRoleInfo.level end RoleManager.Instance.mainRoleInfo:Bind(EventName.CHANGE_LEVEL, onLevelUp) local function onStartGame() self.model:ResetInfo() self.model:Fire(CustomActivityModel.PROTO_CCMD_EVENT, 33101) end GlobalEventSystem:Bind(EventName.OPEN_DAY_INIT, onStartGame) -- 在我一直处于登录状态时 跨天的时候 请求一次所有的活动数据 local function onChangeDayUpdate() -- self.model:Fire(CustomActivityModel.PROTO_CCMD_EVENT, 33101) end EventSystem.Bind(GlobalEventSystem,ServerTimeModel.DAY_CHANGE, onChangeDayUpdate) --获取活动奖励[通用] local function get_act_reward_func(base_type, sub_type, reward_id) sub_type = sub_type or self.model:getActMinSubType(base_type) self.model:Fire(CustomActivityModel.PROTO_CCMD_EVENT, 33105, base_type, sub_type, reward_id) end GlobalEventSystem:Bind(EventName.GET_ACT_REWARD, get_act_reward_func) local function onSendCmdFunc( ... ) local args_list = {...} if args_list[1] == 33104 or args_list[1] == 33611 or args_list[1] == 33613 then --获取奖励领取状态(通用) self:SendFmtToGame(args_list[1], "hh", args_list[2], args_list[3]) elseif args_list[1] == 33105 or args_list[1] == 33109 or args_list[1] == 33612 then --领取活动奖励(通用)/抽奖概率配置读取 self:SendFmtToGame(args_list[1], "hhh", args_list[2], args_list[3], args_list[4]) elseif args_list[1] == 33106 then --特殊记录全服领取的奖励总数 self:SendFmtToGame(args_list[1], "hhhh", args_list[2], args_list[3], args_list[4],args_list[5]) elseif args_list[1] == 33107 then --累计消费活动信息 self:SendFmtToGame(args_list[1], "hh", args_list[2], args_list[3]) elseif args_list[1] == 33181 or args_list[1] == 33179 then self:SendFmtToGame(args_list[1], "h", args_list[2]) elseif args_list[1] == 33183 then self:SendFmtToGame(args_list[1], "cc", args_list[2], args_list[3]) elseif args_list[1] == 33184 then local validation_data = self.model:GetPelletEventValidationData() if validation_data and validation_data.errcode == 1 then -- 获取验证数据 local time = validation_data.time % 1000 -- time只取后三位 local draw_key = validation_data.draw_key local draw_result = args_list[2] local sub_type = args_list[3] local role_id = RoleManager.Instance.mainRoleInfo.role_id local md5_sign = string.lower(Util.md5(role_id .. draw_key .. sub_type .. draw_result .. time)) self:SendFmtToGame(args_list[1], "cs", draw_result, md5_sign) end else self:SendFmtToGame(args_list[1]) end end self.model:Bind(CustomActivityModel.PROTO_CCMD_EVENT, onSendCmdFunc) local function change_day_func(type) if type == SettingModel.CHANGE_DAY.HOUR_0 then -- 跨0点 for base_type,v in pairs(self.model.act_com_red_award_info) do for sub_type,vv in pairs(v) do CustomActivityModel:getInstance():Fire(CustomActivityModel.PROTO_CCMD_EVENT, 33611, base_type, sub_type) end end end end GlobalEventSystem:Bind(EventName.CHANE_DAY, change_day_func) end function CustomActivityController:registerAllProtocals() self:RegisterProtocal(33100, "Handler33100")--错误码展示 self:RegisterProtocal(33101, "Handler33101")--获取活动列表(登陆请求) self:RegisterProtocal(33102, "Handler33102")--活动开启推送 self:RegisterProtocal(33103, "Handler33103")--活动结束 self:RegisterProtocal(33104, "Handler33104")--获取奖励领取状态(通用活动) self:RegisterProtocal(33105, "Handler33105")--获取奖励领取状态(通用活动) self:RegisterProtocal(33106, "Handler33106")--特殊记录全服领取的奖励总数 self:RegisterProtocal(33109, "Handler33109")--抽奖概率配置读取 self:RegisterProtocal(33179, "Handler33179")--弹珠活动抽奖 self:RegisterProtocal(33180, "Handler33180")--弹珠活动状态查询/推送 self:RegisterProtocal(33181, "Handler33181")--弹珠活动领取次数奖励 self:RegisterProtocal(33182, "Handler33182")--部分活动数据变更(通用活动) self:RegisterProtocal(33183, "Handler33183")--弹珠抽奖日志查询 self:RegisterProtocal(33184, "Handler33184")--弹珠抽奖结果提交 self:RegisterProtocal(33611, "Handler33611")--活动通用红点小奖励信息(通用活动) self:RegisterProtocal(33612, "Handler33612")--活动通用红点奖励领取 self:RegisterProtocal(33613, "Handler33613")--活动通用奖励一键领取 --旧活动协议暂时屏蔽 -- self:RegisterProtocal(33107, "Handler33107") -- self:RegisterProtocal(33108, "Handler33108") -- self:RegisterProtocal(33110, "Handler33110") -- self:RegisterProtocal(33111, "Handler33111") -- self:RegisterProtocal(33112, "Handler33112") -- self:RegisterProtocal(33113, "Handler33113") -- self:RegisterProtocal(33114, "Handler33114") -- self:RegisterProtocal(33115, "Handler33115") -- self:RegisterProtocal(33118, "Handler33118") -- self:RegisterProtocal(33120, "Handler33120") -- self:RegisterProtocal(33121, "Handler33121") -- self:RegisterProtocal(33122, "Handler33122") -- self:RegisterProtocal(33123, "Handler33123") -- self:RegisterProtocal(33124, "Handler33124") -- self:RegisterProtocal(33125, "Handler33125") -- self:RegisterProtocal(33129, "Handler33129") -- self:RegisterProtocal(33130, "Handler33130") -- self:RegisterProtocal(33131, "Handler33131") -- self:RegisterProtocal(33132, "Handler33132") -- self:RegisterProtocal(33141, "Handler33141") -- self:RegisterProtocal(33142, "Handler33142") -- self:RegisterProtocal(33143, "Handler33143") -- self:RegisterProtocal(33145, "Handler33145") -- self:RegisterProtocal(33146, "Handler33146") -- self:RegisterProtocal(33140, "Handler33140") -- self:RegisterProtocal(33148, "Handler33148") -- self:RegisterProtocal(33149, "Handler33149") -- self:RegisterProtocal(33150, "Handler33150") -- self:RegisterProtocal(33151, "Handler33151") -- self:RegisterProtocal(33152, "Handler33152") -- self:RegisterProtocal(33153, "Handler33153") -- self:RegisterProtocal(33154, "Handler33154") -- self:RegisterProtocal(33155, "Handler33155") -- self:RegisterProtocal(33156, "Handler33156") -- self:RegisterProtocal(33157, "Handler33157") -- self:RegisterProtocal(33158, "Handler33158") -- self:RegisterProtocal(33160, "Handler33160") -- self:RegisterProtocal(33161, "Handler33161") -- self:RegisterProtocal(33167, "Handler33167") -- self:RegisterProtocal(33162, "Handler33162") -- self:RegisterProtocal(33163, "Handler33163") -- self:RegisterProtocal(33136, "Handler33136") -- self:RegisterProtocal(33137, "Handler33137") -- self:RegisterProtocal(33138, "Handler33138") -- self:RegisterProtocal(33164, "Handler33164") -- self:RegisterProtocal(33180, "Handler33180") -- self:RegisterProtocal(33181, "Handler33181") -- self:RegisterProtocal(33182, "Handler33182") -- self:RegisterProtocal(33183, "Handler33183") -- self:RegisterProtocal(33184, "Handler33184") -- self:RegisterProtocal(33185, "Handler33185") -- self:RegisterProtocal(33186, "Handler33186") -- self:RegisterProtocal(33187, "Handler33187") -- self:RegisterProtocal(33188, "Handler33188") -- self:RegisterProtocal(33195, "Handler33195") -- self:RegisterProtocal(33177, "Handler33177") -- self:RegisterProtocal(33178, "Handler33178") -- self:RegisterProtocal(33189, "Handler33189") -- self:RegisterProtocal(33116, "Handler33116") -- self:RegisterProtocal(33117, "Handler33117") -- self:RegisterProtocal(33135, "Handler33135") -- self:RegisterProtocal(33134, "Handler33134") -- --周一大放送 -- self:RegisterProtocal(33196, "Handler33196") -- self:RegisterProtocal(33197, "Handler33197") -- self:RegisterProtocal(33198, "Handler33198") -- self:RegisterProtocal(33199, "Handler33199") -- self:RegisterProtocal(33204, "Handler33204") -- self:RegisterProtocal(33201, "Handler33201") -- self:RegisterProtocal(33202, "Handler33202") -- self:RegisterProtocal(33203, "Handler33203") -- self:RegisterProtocal(33205, "Handler33205") -- self:RegisterProtocal(33206, "Handler33206") -- self:RegisterProtocal(33207, "Handler33207") -- self:RegisterProtocal(33212, "Handler33212") -- self:RegisterProtocal(33213, "Handler33213") -- self:RegisterProtocal(33159, "Handler33159") -- self:RegisterProtocal(33214, "Handler33214") -- self:RegisterProtocal(33215, "Handler33215") -- self:RegisterProtocal(33216, "Handler33216") -- self:RegisterProtocal(33217, "Handler33217") -- self:RegisterProtocal(33218, "Handler33218") -- self:RegisterProtocal(33119, "Handler33119") end --错误码展示 function CustomActivityController:Handler33100() local vo = SCMD33100.New(true) if vo.error_code ~= 3310001 then ErrorCodeShow(vo.error_code) end --重置翻牌 self.model.lucky_card_is_flopping = false end --活动列表[请求] function CustomActivityController:Handler33101() local vo = SCMD33101.New(true) self.model:handleActVo(vo, true) for k,v in pairs(vo.list) do print("33101 add activity ", v.base_type, v.sub_type, v.act_type) end end --新活动列表[推送] function CustomActivityController:Handler33102() local vo = SCMD33102.New(true) self.model:handleActVo(vo) for k,v in pairs(vo.list) do print("33102 add activity ", v.base_type, v.sub_type, v.etime) end end --删除活动[推送] function CustomActivityController:Handler33103() local vo = SCMD33103.New(true) self.model:clearActInfo(vo) -- for k,v in pairs(vo.list) do -- print("close activity ", v.base_type, v.sub_type) -- end end --获取奖励领取状态(通用) function CustomActivityController:Handler33104() local vo = SCMD33104.New(true) -- PrintTable(vo) self.model:setActRewardList(vo) end --领取活动奖励(通用) function CustomActivityController:Handler33105() local vo = SCMD33105.New(true) if vo.errcode == 1 then self.model:handleSuccessGetReward(vo) else if vo.errcode == 1001 then GlobalEventSystem:Fire(EventName.OPEN_RECHARGE_TIP_VIEW, true) else ErrorCodeShow(vo.errcode) end end end function CustomActivityController:Handler33106() local vo = SCMD33106.New(true) if vo.base_type == 4 then self.model:Fire(CustomActivityModel.UPDATE_COLLECTING_EXCHANGE_NUM,vo) end end --累计消费活动 function CustomActivityController:Handler33107() local vo = SCMD33107.New(true) self.model:SetAccConsumeInfo(vo) end -- ##############抽奖概率配置读取############### -- protocol=33109 -- { -- c2s{ -- module:int16 -- sub_mod:int16 -- sub_act:int16 -- } -- s2c{ -- module:int16 -- sub_mod:int16 -- sub_act:int16 -- rates:array{ -- awardid:int16 -- name:string -- goods_name:string -- radio:int16 -- } -- } -- } function CustomActivityController:Handler33109() local vo = SCMD33109.New(true) print("huangcong:CustomActivityController [start:261] vo:", vo) PrintTable(vo) print("huangcong:CustomActivityController [end]") self.model:Fire(EventName.UPDATE_LUCKY_RADIO_VIEW,vo.rates) end --弹珠活动抽奖 function CustomActivityController:Handler33179() local vo = SCMD33179.New(true) -- 弹珠机增加抽奖验证,这里缓存抽奖验证数据 self.model:SetPelletEventValidationData(vo) RechargeActivityModel:getInstance():Fire(RechargeActivityModel.UPDATE_PELLET_VALIDATION) if vo.errcode ~= 1 then ErrorCodeShow(vo.errcode) end end --弹珠活动状态查询/推送 function CustomActivityController:Handler33180() local vo = SCMD33180.New(true) RechargeActivityModel:getInstance():SetPelletBasicInfo(vo) RechargeActivityModel:getInstance():Fire(RechargeActivityModel.UPDATE_PELLET_INFO,vo) RechargeActivityModel:getInstance():CheckDailyRechargeAllMainIconRedDot() end --弹珠活动领取次数奖励 function CustomActivityController:Handler33181() local vo = SCMD33181.New(true) if vo.errcode == 1 then Message.show("领取成功!") GlobalEventSystem:Fire(EventName.PLAY_UI_EFFECT_SOUND,LuaSoundManager.SOUND_UI.SUCCESS) else ErrorCodeShow(vo.errcode) end end --部分活动数据变更(通用活动) function CustomActivityController:Handler33182( ) local vo = SCMD33182.New(true) self.model:RefreshActSomeData(vo) end --弹珠抽奖日志查询 function CustomActivityController:Handler33183( ) local vo = SCMD33183.New(true) RechargeActivityModel:getInstance():SetPelletRecordInfo(vo) RechargeActivityModel:getInstance():Fire(RechargeActivityModel.ANS_PELLET_RECORD_INFO) end function CustomActivityController:Handler33184( ) local vo = SCMD33184.New(true) if vo.errcode == 1 then -- 清空弹珠机的验证数据 self.model:SetPelletEventValidationData(nil) RechargeActivityModel:getInstance():Fire(RechargeActivityModel.PELLET_VALIDATION_SUCCEED) else ErrorCodeShow(vo.errcode) end end -- ########### 活动通用红点小奖励信息(通用活动) ############## -- protocol=33611 -- { -- c2s{ -- base_type :int16 // 活动主类型 -- sub_type :int16 // 活动子类型 -- } -- s2c{ -- base_type :int16 // 活动主类型 -- sub_type :int16 // 活动子类型 -- reward_type :int8 // 奖励类型1是每日一次 2是活动期间一次 -- status :int8 // 领取状态 1:可以领取 2:已经领取(red_gift状态) -- tab_list:array{ -- grade :int16 // 奖励档次 -- status :int8 // 领取状态 1:可以领取 2:已经领取(tab_gift状态) -- } -- } -- } function CustomActivityController:Handler33611( ) local vo = SCMD33611.New(true) -- print("huangcong:CustomActivityController [start:368] vo:", vo) -- PrintTable(vo) -- print("huangcong:CustomActivityController [end]") self.model:SetActComAwardInfo(vo) end -- ########### 活动通用红点奖励领取 ############## -- protocol=33612 -- { -- c2s{ -- base_type :int16 // 活动主类型 -- sub_type :int16 // 活动子类型 -- grade :int16 // 奖励档次(red_gift状态传0) -- } -- s2c{ -- base_type :int16 // 活动主类型 -- sub_type :int16 // 活动子类型 -- grade :int16 // 奖励档次(red_gift状态传0) -- errcode :int32 // 返回码 -- } -- } function CustomActivityController:Handler33612( ) local vo = SCMD33612.New(true) if vo.errcode == 1 then Message.show("领取成功!","success") local act_info = self.model:GetActComAwardInfo(vo.base_type,vo.sub_type) if act_info and act_info.tab_list then if vo.grade == 0 then act_info.status = 2 else for i,v in ipairs(act_info.tab_list) do if v.grade == vo.grade then v.status = 2 break end end end end self.model:Fire(CustomActivityModel.UPDATE_ACTIVITY_RED_AWARD_INFO,vo.base_type,vo.sub_type) else ErrorCodeShow(vo.errcode) end end -- ########### 活动通用红点奖励领取 ############## -- protocol=33613 -- { -- c2s{ -- base_type :int16 // 活动主类型 -- sub_type :int16 // 活动子类型 -- } -- s2c{ -- base_type :int16 // 活动主类型 -- sub_type :int16 // 活动子类型 -- errcode :int32 // 返回码 -- } -- } function CustomActivityController:Handler33613( ) local vo = SCMD33613.New(true) if vo.errcode == 1 then Message.show("一键领取成功!","success") else ErrorCodeShow(vo.errcode) end end