|
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
|