| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- -------------------------------------------------
- -- 充值
- -------------------------------------------------
- local BuyExcel = require("excel.buy")
- local Msg = require("core.Msg")
- local ObjHuman = require("core.ObjHuman")
- local BuyLogic = require("topup.BuyLogic")
- local SceneHandler = require("scene.Handler")
- local YunYingLogic = require("yunying.YunYingLogic")
- local LeichongHaoli = require("present.LeichongHaoli")
- local LeijiChongzhi = require("present.LeijiChongzhi")
- local DailyLeichong = require("present.DailyLeichong")
- local LoginSignLogic = require("loginSign.LoginSignLogic")
- local RoleSystemLogic = require("roleSystem.RoleSystemLogic")
- local RoleSystemDefine = require("roleSystem.RoleSystemDefine")
- local MailExcel = require("excel.mail")
- local MailManager = require("mail.MailManager")
- local CommonDB = require("common.CommonDB")
- local BreakThroughTheme = require("battle.BreakThroughTheme")
- local BattleGift = require("battle.BattleGift")
- -- 专属客服充值额度
- EXCLUSIVE_SERVER_9937 = 1000
- TOPUP_LIBAO_ID1 = 1 --盲盒礼包
- TOPUP_LIBAO_ID2 = 2 --铂金周卡
- TOPUP_LIBAO_ID3 = 3 --365王卡
- local MAX_FIREWORKS_DURATION = 43200
- local YANHUA_EMAIL = 7012 --烟花邮箱
- local ITEMID=1022 --烟花道具ID
- --封装直购基本信息
- local function wrapTopupItem(net, config, human)
- net.id = config.id
- BuyLogic.fontBuyItem(human, net.buyItem, config.buyID)
- end
- -- 充值列表
- function query(human)
- if SceneHandler.canCharge(human) ~= true then
- return
- end
- local msgRet = Msg.gc.GC_TOPUP_QUERY
- msgRet.list[0] = #BuyExcel.topup
- for i, config in ipairs(BuyExcel.topup) do
- local net = msgRet.list[i]
- wrapTopupItem(net, config, human)
- end
- Msg.send(msgRet,human.fd)
- end
- -- 直购回调
- function clacTopupAcount(human, price, buyID, buyNum)
- if price < 0 then return end
- if not buyNum then
- buyNum = 1
- end
- ObjHuman.updateDaily(human)
- local nAllPrice = price * buyNum
- human.db.topupAcountDaily = (human.db.topupAcountDaily or 0) + nAllPrice
- human.db.topupAccountMonth = (human.db.topupAccountMonth or 0) + nAllPrice
- human.db.topupAcount = (human.db.topupAcount or 0) + nAllPrice
- checkKf(human)
- YunYingLogic.onCharge(human, nAllPrice, buyID, buyNum)
- DailyLeichong.charge(human, nAllPrice)
- LeichongHaoli.onAddMoney(human, nAllPrice)
- LeijiChongzhi.onAddMoney(human, nAllPrice)
- LoginSignLogic.chargeAfter(human)
- BreakThroughTheme.charge(human, nAllPrice, buyID)
- BattleGift.charge(human, nAllPrice, buyID)
- sendFireworksMail(human,nAllPrice)
- end
- -- 发送烟花邮件
- function sendFireworksMail(human, price)
- if price < 100 then return end -- 如果充值金额小于100,不发送邮件
- -- 计算烟花数量
- local nFireWorksCount = math.floor(price / 100)
- if 0 >= nFireWorksCount then
- return
- end
- local mailCfg = MailExcel.mail[YANHUA_EMAIL]
- local title = mailCfg.title
- local content = mailCfg.content
- local senderName = mailCfg.senderName
- local items = {
- {ITEMID,nFireWorksCount} -- 1022是烟花的道具ID
- }
- -- 调用邮件管理器发送邮件
- MailManager.add(MailManager.SYSTEM, human.db._id, title, content, items, senderName)
- end
- function checkKf(human)
- -- 激活专属客服
- if human.db.topupAcount ~= nil and human.db.topupAcount >= EXCLUSIVE_SERVER_9937 then
- Msg.send(Msg.gc.GC_EXCLUSIVE_SERVER,human.fd)
- end
- end
- --给客户端下发结束时间//定义的协议时间 //当客户端有点击请求的时候
- function DurationofBonus(human)
- local tMsgData = Msg.gc.GC_FIREWORKS_QUERY
- local nowBufferDuration = CommonDB.getFireWorksBonusTime()-os.time()
- tMsgData.buffDuration = math.max(0,nowBufferDuration)
- Msg.send(tMsgData, human.fd)
- end
- function Addtime(human, fireworksCount)
- local nNowTime = os.time()
- if not human or fireworksCount <= 0 then
- return
- end
- local currentEndTime = CommonDB.getFireWorksBonusTime()
- local baseTime = nNowTime
- if currentEndTime > nNowTime then
- baseTime = currentEndTime
- end
- local addedTime = math.max(fireworksCount * 60,60)
- local newEndTime = math.min(
- baseTime + addedTime,
- nNowTime + MAX_FIREWORKS_DURATION
- )
- local totalDuration = newEndTime-nNowTime
- if totalDuration <=0 or totalDuration> MAX_FIREWORKS_DURATION then
- return
- end
- CommonDB.setFireWorkBonusTime(newEndTime)
- local tMsgData = Msg.gc.GC_FIREWORKS_SHOW
- local nowBuffDuration = CommonDB.getFireWorksBonusTime()-os.time()
- tMsgData.buffDuration = math.max(0,nowBuffDuration)
- tMsgData.playerName = human.db.name
- -- 下发时间和玩家名称
- for _, human in pairs(ObjHuman.onlineUuid) do
- if human and human.fd then
- Msg.send(tMsgData, human.fd)
- end
- end
- end
|