From 2e283f60e01f7271b396f291e42ef44e191f26e4 Mon Sep 17 00:00:00 2001 From: liuzujun <307836273@qq.com> Date: Mon, 1 Mar 2021 20:20:38 +0800 Subject: [PATCH] 月卡升级 --- src/GlobalVar.lua | 2 ++ src/csvdata | 2 +- src/models/Store.lua | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++------ 3 files changed, 56 insertions(+), 7 deletions(-) diff --git a/src/GlobalVar.lua b/src/GlobalVar.lua index 33d7868..202dc67 100644 --- a/src/GlobalVar.lua +++ b/src/GlobalVar.lua @@ -310,6 +310,8 @@ CardType = { PaySignCard = 6, -- 付费签到卡 BattlePassCard = 7, -- 探索指令 ActBattleCommandCard = 8, -- 战令活动卡 + NormalMonthCardLevelUp = 9, -- 月卡升级 + SuperMonthCardLevelUp = 10, -- 超级月卡升级 } ShopPackType = { diff --git a/src/csvdata b/src/csvdata index 9ab88a6..686b192 160000 --- a/src/csvdata +++ b/src/csvdata @@ -1 +1 @@ -Subproject commit 9ab88a62f1c2ff1121be7547f02668db43dc1f75 +Subproject commit 686b192263f5cc221e472e1b9a41d059d581da2d diff --git a/src/models/Store.lua b/src/models/Store.lua index 7ee4045..45ef3a3 100644 --- a/src/models/Store.lua +++ b/src/models/Store.lua @@ -17,7 +17,9 @@ Store.schema = { growFundR = {"string", ""}, -- 成长基金领取记录 monthCardEx = {"number", 0}, -- 月卡过期时间戳 + monthCardId = {"number", 0}, -- 月卡id smonthCardEx = {"number", 0}, -- 超级月卡过期时间戳 + smonthCardId = {"number", 0}, -- 超级月卡id battleCard = {"number", 0}, -- 赛季卡 battleFR = {"string", ""}, -- 免费赛季卡领取记录 @@ -51,7 +53,7 @@ function Store:updateProperty(params) return end local newValue = self:getProperty(params.field) - if not params.notNotify then + if not params.notNotify then self:notifyUpdateProperty(params.field, newValue, oldValue) end end @@ -77,13 +79,16 @@ end -- 发送月卡邮件 function Store:sendMonthCardEmail() local timeNow = skynet.timex() - local tabs = {{ex="monthCardEx", t="getMailT1", mail=MailId.MonthCard, alert=MailId.MonthCardEx}, - {ex="smonthCardEx", t="getMailT2", mail=MailId.SuperMonthCard, alert=MailId.SuperMonthCardEx}} + + local tabs = {{ex="monthCardEx", t="getMailT1", id= self:getProperty("monthCardId")}, + {ex="smonthCardEx", t="getMailT2", id=self:getProperty("smonthCardId")}} for _, v in ipairs(tabs) do local ex = self:getProperty(v.ex) local ts = self:getProperty(v.t) or 0 - local mailId = v.mail - local alertId = v.alert + local cfg = csvdb["shop_cardCsv"][v.id] or {} + + local mailId = cfg.email + local alertId = cfg.email_2 local alertTs = dayLater(ex) - DAY_SEC if ex > timeNow then local cnt = 0 @@ -184,24 +189,64 @@ function Store:getHangDropCoef() return (1 + globalCsv.hang_drop_exp_coef) or 1, (1 + globalCsv.hang_drop_item_coef) or 1 end +function Store:getCurMonthCardLvl(isSuper) + local id = 0 + if isSuper then + id = self:getProperty("smonthCardId") or 0 + else + id = self:getProperty("monthCardId") or 0 + end + local cfg = csvdb["shop_cardCsv"][id] + if not cfg then return 0 end + + return cfg.level or 0 +end -- 购买通行证 function Store:onBuyCard(type, duration, id, actid) local timeNow = skynet.timex() if type == CardType.NormalMonthCard then if self:isMonthCardExpire() then + self:updateProperty({field = "monthCardId", value = id}) self:updateProperty({field = "monthCardEx", value = timeNow + duration}) else self:updateProperty({field = "monthCardEx", value = self:getProperty("monthCardEx") + duration}) end self:sendMonthCardEmail() + elseif type == CardType.NormalMonthCardLevelUp then + if self:isMonthCardExpire() then + skynet.error(string.format("month card expired, can not level up,%d,%d",self.owner:getProperty("id"), id)) + else + local cfg = csvdb["shop_cardCsv"][id] + if not cfg then return end + if cfg.level - self:getCurMonthCardLvl() ~= 1 then + return + end + self:updateProperty({field = "monthCardId", value = id}) + self:updateProperty({field = "monthCardEx", value = self:getProperty("monthCardEx") + duration}) + end + self:sendMonthCardEmail() elseif type == CardType.SuperMonthCard then if self:isSuperMonthCardExpire() then + self:updateProperty({field = "smonthCardId", value = id}) self:updateProperty({field = "smonthCardEx", value = timeNow + duration}) else self:updateProperty({field = "smonthCardEx", value = self:getProperty("smonthCardEx") + duration}) end self:sendMonthCardEmail() + elseif type == CardType.SuperMonthCardLevelUp then + if self:isSuperMonthCardExpire() then + skynet.error(string.format("super month card expired, can not level up,%d,%d",self.owner:getProperty("id"), id)) + else + local cfg = csvdb["shop_cardCsv"][id] + if not cfg then return end + if cfg.level - self:getCurMonthCardLvl() ~= 1 then + return + end + self:updateProperty({field = "smonthCardId", value = id}) + self:updateProperty({field = "smonthCardEx", value = self:getProperty("smonthCardEx") + duration}) + end + self:sendMonthCardEmail() elseif type == CardType.PrivilegeCard then if self:isPrivCardExpire() then self:updateProperty({field = "privCardEx", value = timeNow + duration}) @@ -253,7 +298,7 @@ function Store:notifyUpdateProperty(field, newValue, oldValue) key = field, newValue = newValue, oldValue = oldValue, - } + } SendPacket(actionCodes.Store_updateproperty, MsgPack.pack(datas)) end @@ -494,6 +539,8 @@ function Store:data() actGoodsFlag = self:getProperty("actGoodsFlag"), bpInfo = self:getProperty("bpInfo"), totalRR = self:getProperty("totalRR"), + monthCardId = self:getProperty("monthCardId"), + smonthCardId = self:getProperty("smonthCardId"), } end -- libgit2 0.21.2