| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- -- 寻星礼包
- -- 逻辑:每日每种礼包有一定限购次数, 跨天后重置
- local Msg = require("core.Msg")
- local BagLogic = require("bag.BagLogic")
- local Grid = require("bag.Grid")
- local BuyLogic = require("topup.BuyLogic")
- local ZhuanpanGiftConfig = require("excel.zhuanpan").gift
- local LOGTAG = "zhuanpanGift"
- local function getCfg(buyId)
- for _, v in ipairs(ZhuanpanGiftConfig) do
- if buyId == v.buyID then
- return v
- end
- end
- end
- function ZhuanpanGift_Query(human)
- local zhuanpanGiftData = human.db.zhuanpanGiftData
- local msgRet = Msg.gc.GC_ZHUANPAN_GIFT_QUERY
- local giftArr = msgRet.giftArr
- giftArr[0] = 0
- for k, v in ipairs(ZhuanpanGiftConfig) do
- giftArr[0] = k
- giftArr[k].nowBuyCnt = zhuanpanGiftData and zhuanpanGiftData[v.buyID] or 0
- giftArr[k].maxBuyCnt = v.amount
- BuyLogic.fontBuyItem(human, giftArr[k].buyItem, v.buyID)
- giftArr[k].giftItem[0] = #v.rewards
- for idx, itemCfg in ipairs(v.rewards) do
- Grid.makeItem(giftArr[k].giftItem[idx], itemCfg[1], itemCfg[2])
- end
- end
- Msg.send(msgRet, human.fd)
- end
- function updateDaily(human)
- human.db.zhuanpanGiftData = nil
- ZhuanpanGift_Query(human)
- end
- function onCharge(human, buyId, buyNum)
- local zhuanpanGiftData = human.db.zhuanpanGiftData
- local giftCfg = getCfg(buyId)
- if not giftCfg then
- return
- end
- if zhuanpanGiftData and (zhuanpanGiftData[buyId] or 0) >= giftCfg.amount then
- return
- end
- -- if buyNum + (zhuanpanGiftData[buyId] or 0) >= giftCfg.amount then
- -- return
- -- end
- local itemArr = {}
- for idx, itemCfg in ipairs(giftCfg.rewards) do
- itemArr[idx] = {itemCfg[1], itemCfg[2]}
- -- itemArr[idx] = {itemCfg[1], itemCfg[2] * buyNum}
- end
- BagLogic.addItemList(human, itemArr, LOGTAG)
- zhuanpanGiftData = zhuanpanGiftData or {}
- zhuanpanGiftData[buyId] = (zhuanpanGiftData[buyId] or 0) + 1
- -- zhuanpanGiftData[buyId] = (zhuanpanGiftData[buyId] or 0) + buyNum
- human.db.zhuanpanGiftData = zhuanpanGiftData
- ZhuanpanGift_Query(human)
- end
- -- function GetRemainNum(human, nBuyID)
- -- local giftCfg = getCfg(nBuyID)
- -- if not giftCfg then
- -- return 0
- -- end
- -- local zhuanpanGiftData = human.db.zhuanpanGiftData
- -- if not zhuanpanGiftData or not zhuanpanGiftData[nBuyID] then
- -- return giftCfg.amount
- -- end
- -- return (giftCfg.amount > zhuanpanGiftData[nBuyID]) and (giftCfg.amount - zhuanpanGiftData[nBuyID]) or 0
- -- end
|