Commit b92a81c928e32c2b5615987960a60d6178e1e7bb

Authored by liuzujun
1 parent a29d8377

CB2限时礼包

@@ -383,6 +383,11 @@ TriggerEventType = { @@ -383,6 +383,11 @@ TriggerEventType = {
383 AfterTs = 7, -- 某时间以后 383 AfterTs = 7, -- 某时间以后
384 DrawHeroCnt = 8, -- 每日抽卡次数 384 DrawHeroCnt = 8, -- 每日抽卡次数
385 Appoint = 0, -- 触发指定id礼包 385 Appoint = 0, -- 触发指定id礼包
  386 + SignIn = 9, -- 签到
  387 + DrawHero = 10, -- 循环抽卡
  388 + FoodSell = 11, -- 循环卖菜
  389 + RuneUp = 12, -- 循环强化符文
  390 + CostDiamond = 13, -- 循环消耗钻石
386 } 391 }
387 392
388 DrawCardType = { 393 DrawCardType = {
src/actions/StoreAction.lua
@@ -315,7 +315,7 @@ function _M.shopBuyRpc(agent , data) @@ -315,7 +315,7 @@ function _M.shopBuyRpc(agent , data)
315 role.storeData:updateProperty({field = "buyR", value = buyRecord}) 315 role.storeData:updateProperty({field = "buyR", value = buyRecord})
316 limitStr = string.format("%s/%s", buyRecord[id], dataSet.limit) 316 limitStr = string.format("%s/%s", buyRecord[id], dataSet.limit)
317 end 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 local gift = {} 320 local gift = {}
321 for _id, _count in pairs(dataSet.gift:toNumMap()) do 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,6 +272,11 @@ local StoreListener = {
272 [TaskType.AddHero] = {{TriggerEventType.AddNewHero, f("heroType")}, {TriggerEventType.SSRCount, f("ssrCount")}}, 272 [TaskType.AddHero] = {{TriggerEventType.AddNewHero, f("heroType")}, {TriggerEventType.SSRCount, f("ssrCount")}},
273 [TaskType.DrawHeroLimitPack] = {{TriggerEventType.DrawHeroCnt, f("count")}}, 273 [TaskType.DrawHeroLimitPack] = {{TriggerEventType.DrawHeroCnt, f("count")}},
274 [TaskType.Appoint] = {{TriggerEventType.Appoint, f("id")}}, 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,6 +55,7 @@ Store.schema = {
55 55
56 dailyShop = {"table", {}}, 56 dailyShop = {"table", {}},
57 weekShop = {"table", {}}, 57 weekShop = {"table", {}},
  58 + dayLimitInfo = {"table", {}}, -- {[id]={count=0, trigger=0}}
58 } 59 }
59 60
60 function Store:updateProperty(params) 61 function Store:updateProperty(params)
@@ -80,6 +81,7 @@ function Store:onCrossDay() @@ -80,6 +81,7 @@ function Store:onCrossDay()
80 --self:sendMonthCardEmail() 81 --self:sendMonthCardEmail()
81 self:deleteExpireLimitGoods() 82 self:deleteExpireLimitGoods()
82 --self:checkPaySignReward() 83 --self:checkPaySignReward()
  84 + self:resetDayLimitPackTriggerCount()
83 85
84 --刷新商店 86 --刷新商店
85 self:flushDailyShop() 87 self:flushDailyShop()
@@ -219,6 +221,15 @@ function Store:deleteExpireLimitGoods() @@ -219,6 +221,15 @@ function Store:deleteExpireLimitGoods()
219 self:updateProperty({field = "limitTPack", value = limitGoodsList, notNotify = true}) 221 self:updateProperty({field = "limitTPack", value = limitGoodsList, notNotify = true})
220 end 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 function Store:sendMonthCardEmail() 234 function Store:sendMonthCardEmail()
224 local timeNow = skynet.timex() 235 local timeNow = skynet.timex()
@@ -591,41 +602,40 @@ function Store:OnTriggerLimitTimePack(eventType, param) @@ -591,41 +602,40 @@ function Store:OnTriggerLimitTimePack(eventType, param)
591 local limitPack = self:getProperty("limitTPack") 602 local limitPack = self:getProperty("limitTPack")
592 --local payRecord = self:getProperty("payR") 603 --local payRecord = self:getProperty("payR")
593 local timeNow = skynet.timex() 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 local config = nil 606 local config = nil
623 for id, cfg in pairs(csvdb["shop_packCsv"]) do 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 config = cfg 609 config = cfg
  610 + break
626 end 611 end
627 end 612 end
628 if config ~= nil then 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 local rechargeCfg = csvdb["shop_normalCsv"][config.packId] 639 local rechargeCfg = csvdb["shop_normalCsv"][config.packId]
630 if rechargeCfg then 640 if rechargeCfg then
631 limitPack[rechargeCfg.id] = {timeNow + rechargeCfg.time, config.id} 641 limitPack[rechargeCfg.id] = {timeNow + rechargeCfg.time, config.id}
@@ -633,14 +643,21 @@ function Store:OnTriggerLimitTimePack(eventType, param) @@ -633,14 +643,21 @@ function Store:OnTriggerLimitTimePack(eventType, param)
633 gift_id = rechargeCfg.id, --礼包ID 643 gift_id = rechargeCfg.id, --礼包ID
634 gift_name = rechargeCfg.descId, --礼包名称 644 gift_name = rechargeCfg.descId, --礼包名称
635 }) 645 })
636 - -- 每日抽卡限时礼包 触发重置  
637 - if eventType == TriggerEventType.DrawHeroCnt then 646 + if config.isLoop ~= 0 then
638 local payR = self:getProperty("buyR") 647 local payR = self:getProperty("buyR")
639 if payR[rechargeCfg.id] then 648 if payR[rechargeCfg.id] then
640 payR[rechargeCfg.id] = nil 649 payR[rechargeCfg.id] = nil
641 self:updateProperty({field = "buyR", value = payR}) 650 self:updateProperty({field = "buyR", value = payR})
642 end 651 end
643 end 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 self:updateProperty({field = "limitTPack", value = limitPack}) 661 self:updateProperty({field = "limitTPack", value = limitPack})
645 end 662 end
646 end 663 end