源战役客户端
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
 
 
 
 

434 lignes
16 KiB

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