| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- -- 活动 - 首充
- ActFirstRecharge = {}
- ActFirstRecharge.__index = ActFirstRecharge
- local function _rechargeType()
- return "0"
- end
- local function _playerDbKey()
- return "T$act_recharge_first_data"
- end
- function ActFirstRecharge.getData(actor)
- local var = getplaydef(actor, _playerDbKey())
- local data = setmetatable(var or {}, ActFirstRecharge)
- -- 充值事件
- if not data.payTime then
- data.payTime = 0
- end
- -- 领奖状态
- if not data.rewardStatus then
- data.rewardStatus = 0
- end
- return data
- end
- function ActFirstRecharge:saveData(actor)
- setplaydef(actor, _playerDbKey(), self)
- end
- ---充值回调触发事件
- function ActFirstRecharge.rechargeEvent(actor, cfg_recharge, count, amount, ext, outRewards)
- local data = ActFirstRecharge.getData(actor)
- -- 已充值
- if data.payTime > 0 then
- return
- end
- data.payTime = getbaseinfo("nowsec")
- data.rewardStatus = 1
- ActFirstRecharge.saveData(data, actor)
- ActFirstRecharge.sendPanel(actor, data)
- -- jprint("更新豪礼数据",data,config)
- sendluamsg(
- actor,
- LuaMessageIdToClient.RES_ACT_FIRST_CHARGE_INFO,
- {payTime = data.payTime, rewardStatus = data.rewardStatus}
- )
- end
- ---统一的请求消息处理
- function ActFirstRecharge.reqAction(actor, type, action, reqParameter)
- if action == "panel" then
- local data = ActFirstRecharge.getData(actor)
- ActFirstRecharge.sendPanel(actor, data)
- elseif action == "reward" then
- ActFirstRecharge.gainReward(actor, reqParameter)
- end
- end
- function ActFirstRecharge.gainReward(actor, reqParameter)
- local data = ActFirstRecharge.getData(actor)
- -- 未充值
- if data.payTime == 0 then
- tipinfo(actor, "未充值")
- return
- end
- -- 已领取
- if data.rewardStatus > 0 then
- tipinfo(actor, "已领取")
- return
- end
- -- 发放奖励
- local reward = ConfigDataManager.getTableValue("cfg_Activity_firstRecharge", "reward", "id", 1)
- local tmp = string.toIntIntMap(reward, "#", "|")
- if table.notNullOrEmpty(tmp) then
- --奖励进入背包
- Bag.sendRewards(actor, tmp, "充值奖励")
- end
- -- 改变状态
- data.rewardStatus = 2
- ActFirstRecharge.saveData(data, actor)
- -- 发送奖励
- ActFirstRecharge.sendPanel(actor, data)
- -- jprint("领奖豪礼数据",data)
- sendluamsg(
- actor,
- LuaMessageIdToClient.RES_ACT_FIRST_CHARGE_INFO,
- {payTime = data.payTime, rewardStatus = data.rewardStatus}
- )
- end
- function ActFirstRecharge.sendPanel(actor, data)
- Recharge.resAction(actor, _rechargeType(), "panel", data)
- end
- -- 获取活动信息
- function ActFirstRecharge.getInfo(actor, msgData)
- local data = ActFirstRecharge.getData(actor)
- sendluamsg(
- actor,
- LuaMessageIdToClient.RES_ACT_FIRST_CHARGE_INFO,
- {payTime = data.payTime, rewardStatus = data.rewardStatus}
- )
- end
- --TODO 一定要放到文件最后
- EventListerTable.registerType("首充活动", _rechargeType(), _playerDbKey())
- --注册充值事件
- RechargeEventListerTable:eventLister(_rechargeType(), "首充活动", ActFirstRecharge.rechargeEvent)
- -- 注册请求消息监听
- RechargeMessageEventListerTable:eventLister(_rechargeType(), "首充活动", ActFirstRecharge.reqAction)
|