Commit b92a81c928e32c2b5615987960a60d6178e1e7bb

Authored by liuzujun
1 parent a29d8377

CB2限时礼包

src/GlobalVar.lua
... ... @@ -383,6 +383,11 @@ TriggerEventType = {
383 383 AfterTs = 7, -- 某时间以后
384 384 DrawHeroCnt = 8, -- 每日抽卡次数
385 385 Appoint = 0, -- 触发指定id礼包
  386 + SignIn = 9, -- 签到
  387 + DrawHero = 10, -- 循环抽卡
  388 + FoodSell = 11, -- 循环卖菜
  389 + RuneUp = 12, -- 循环强化符文
  390 + CostDiamond = 13, -- 循环消耗钻石
386 391 }
387 392  
388 393 DrawCardType = {
... ...
src/actions/StoreAction.lua
... ... @@ -315,7 +315,7 @@ function _M.shopBuyRpc(agent , data)
315 315 role.storeData:updateProperty({field = "buyR", value = buyRecord})
316 316 limitStr = string.format("%s/%s", buyRecord[id], dataSet.limit)
317 317 end
318   - role:costItems(cost, {log = {desc = desc, int1 = id, int2 = count, cint1= dataSet.shop}})
  318 + role:costItems(cost, {log = {desc = desc, int1 = id, int2 = count, long1= dataSet.shop}})
319 319  
320 320 local gift = {}
321 321 for _id, _count in pairs(dataSet.gift:toNumMap()) do
... ...
1   -Subproject commit 55a28d125f25a0d0b60e5a8cc74b40664aa98f8f
  1 +Subproject commit 9f69bf315cfda09d5630d41da958e3f7476ac4fd
... ...
src/models/RoleTask.lua
... ... @@ -272,6 +272,11 @@ local StoreListener = {
272 272 [TaskType.AddHero] = {{TriggerEventType.AddNewHero, f("heroType")}, {TriggerEventType.SSRCount, f("ssrCount")}},
273 273 [TaskType.DrawHeroLimitPack] = {{TriggerEventType.DrawHeroCnt, f("count")}},
274 274 [TaskType.Appoint] = {{TriggerEventType.Appoint, f("id")}},
  275 + [TaskType.SignIn] = {{TriggerEventType.SignIn, 1}},
  276 + [TaskType.DrawHero] = {{TriggerEventType.DrawHero, f("count")}},
  277 + [TaskType.FoodSell]= {{TriggerEventType.FoodSell, f("count")}},
  278 + [TaskType.RuneUp] = {{TriggerEventType.RuneUp, 1}},
  279 + [TaskType.CostDiamond] = {{TriggerEventType.CostDiamond, f("count")}},
275 280 }
276 281 }
277 282  
... ...
src/models/Store.lua
... ... @@ -55,6 +55,7 @@ Store.schema = {
55 55  
56 56 dailyShop = {"table", {}},
57 57 weekShop = {"table", {}},
  58 + dayLimitInfo = {"table", {}}, -- {[id]={count=0, trigger=0}}
58 59 }
59 60  
60 61 function Store:updateProperty(params)
... ... @@ -80,6 +81,7 @@ function Store:onCrossDay()
80 81 --self:sendMonthCardEmail()
81 82 self:deleteExpireLimitGoods()
82 83 --self:checkPaySignReward()
  84 + self:resetDayLimitPackTriggerCount()
83 85  
84 86 --刷新商店
85 87 self:flushDailyShop()
... ... @@ -219,6 +221,15 @@ function Store:deleteExpireLimitGoods()
219 221 self:updateProperty({field = "limitTPack", value = limitGoodsList, notNotify = true})
220 222 end
221 223  
  224 +-- 每日充值循环限时礼包的触发次数
  225 +function Store:resetDayLimitPackTriggerCount()
  226 + local dayLimitInfo = self:getProperty("dayLimitInfo")
  227 + for k, v in pairs(dayLimitInfo) do
  228 + v['trigger'] = nil
  229 + end
  230 + self:updateProperty({field = "dayLimitInfo", value = dayLimitInfo, notNotify = true})
  231 +end
  232 +
222 233 -- 发送月卡邮件
223 234 function Store:sendMonthCardEmail()
224 235 local timeNow = skynet.timex()
... ... @@ -591,41 +602,40 @@ function Store:OnTriggerLimitTimePack(eventType, param)
591 602 local limitPack = self:getProperty("limitTPack")
592 603 --local payRecord = self:getProperty("payR")
593 604 local timeNow = skynet.timex()
594   - --local find = false
595   - -- 有未过期的限时礼包不再推送
596   - --for k, v in pairs(limitPack) do
597   - -- if v > timeNow and not payRecord[k] then
598   - -- find = true
599   - -- break
600   - -- end
601   - --end
602   - --if find == true then
603   - -- return
604   - --end
605   - --local hangPass = self.owner:getProperty("hangPass")
606   - --local triggerRecord = self:getProperty("packTrigger")
607   - --local result = {}
608   - --local maxDiff = 0
609   - -- 取满足限时礼包关卡要求的对应数据
610   - --for diff, maxCarbonId in pairs(hangPass) do
611   - -- for id, cfg in pairs(csvdb["shop_packCsv"]) do
612   - -- local range = cfg.showRange:toArray(true, "=")
613   - -- local beginRange = range[1] or 0
614   - -- local endRange = range[2] or 0
615   - -- if maxCarbonId > beginRange and maxCarbonId <= endRange and cfg.type == eventType then
616   - -- result[diff] = cfg
617   - -- maxDiff = math.max(maxDiff, diff)
618   - -- break
619   - -- end
620   - -- end
621   - --end
  605 +
622 606 local config = nil
623 607 for id, cfg in pairs(csvdb["shop_packCsv"]) do
624   - if cfg.type == eventType and cfg.condition == param then
  608 + if cfg.type == eventType and (cfg.condition == param or cfg.isLoop ~= 0) then
625 609 config = cfg
  610 + break
626 611 end
627 612 end
628 613 if config ~= nil then
  614 + -- 每日循环弹窗
  615 + local typeMap = {[TriggerEventType.DrawHero] = 1, [TriggerEventType.FoodSell] = 1, [TriggerEventType.RuneUp] = 1, [TriggerEventType.CostDiamond] = 1}
  616 + if typeMap[eventType] then
  617 + local dayInfo = self:getProperty("dayLimitInfo")
  618 + local info = dayInfo[eventType] or {}
  619 + local count = (info["count"] or 0) + param
  620 + local triggerCount = info["trigger"] or 0
  621 + local flag = nil
  622 + if count >= config.condition then
  623 + if triggerCount < config.triggerLimit then
  624 + info["trigger"] = triggerCount + 1
  625 + info["count"] = 0
  626 + flag = true
  627 + else
  628 + info["count"] = config.condition - 1
  629 + end
  630 + else
  631 + info["count"] = count
  632 + end
  633 + dayInfo[eventType] = info
  634 + self:updateProperty({field = "dayLimitInfo", value = dayInfo})
  635 + if not flag then
  636 + return
  637 + end
  638 + end
629 639 local rechargeCfg = csvdb["shop_normalCsv"][config.packId]
630 640 if rechargeCfg then
631 641 limitPack[rechargeCfg.id] = {timeNow + rechargeCfg.time, config.id}
... ... @@ -633,14 +643,21 @@ function Store:OnTriggerLimitTimePack(eventType, param)
633 643 gift_id = rechargeCfg.id, --礼包ID
634 644 gift_name = rechargeCfg.descId, --礼包名称
635 645 })
636   - -- 每日抽卡限时礼包 触发重置
637   - if eventType == TriggerEventType.DrawHeroCnt then
  646 + if config.isLoop ~= 0 then
638 647 local payR = self:getProperty("buyR")
639 648 if payR[rechargeCfg.id] then
640 649 payR[rechargeCfg.id] = nil
641 650 self:updateProperty({field = "buyR", value = payR})
642 651 end
643 652 end
  653 + -- 每日抽卡限时礼包 触发重置
  654 + --if eventType == TriggerEventType.DrawHeroCnt then
  655 + -- local payR = self:getProperty("buyR")
  656 + -- if payR[rechargeCfg.id] then
  657 + -- payR[rechargeCfg.id] = nil
  658 + -- self:updateProperty({field = "buyR", value = payR})
  659 + -- end
  660 + --end
644 661 self:updateProperty({field = "limitTPack", value = limitPack})
645 662 end
646 663 end
... ...