From 460afa6ed62568461352cf56a3926b73669aed66 Mon Sep 17 00:00:00 2001 From: liuzujun <307836273@qq.com> Date: Mon, 12 Oct 2020 16:26:00 +0800 Subject: [PATCH] 付费签到改为主动领取,战斗关卡不一定是当前挂机关卡 --- src/GlobalVar.lua | 6 +++--- src/ProtocolCode.lua | 1 + src/actions/ActivityAction.lua | 18 ++++++++++-------- src/actions/HangAction.lua | 25 +++++++++++++------------ src/actions/HeroAction.lua | 2 +- src/actions/RoleAction.lua | 2 +- src/csvdata | 2 +- src/models/Activity.lua | 5 +++-- src/models/Store.lua | 52 +++++++++++++++++++++++++++++++++------------------- src/utils/CommonFunc.lua | 12 ++++++++++++ 10 files changed, 78 insertions(+), 47 deletions(-) diff --git a/src/GlobalVar.lua b/src/GlobalVar.lua index 8d04609..e1fad09 100644 --- a/src/GlobalVar.lua +++ b/src/GlobalVar.lua @@ -1,7 +1,7 @@ XXTEA_KEY = "699D448D6D24f7F941E9F6E99F823E18" -RESET_TIME = 0 +RESET_TIME = 4 -START_RESET_TIME_BASE = 1584316800 -- 0时区 +START_RESET_TIME_BASE = 1584316800 + RESET_TIME * 3600 -- 0时区 DAY_SEC = 86400 TIME_ZONE = math.floor(os.difftime(START_RESET_TIME_BASE, os.time(os.date("!*t", START_RESET_TIME_BASE))) / 3600) -- 本地时区 @@ -256,7 +256,7 @@ SettingStatus = { }, } -EMAIL_LIMIT = 20 --邮件最大数量 +EMAIL_LIMIT = 50 --邮件最大数量 RedPointTags = { PvpCR = 1, diff --git a/src/ProtocolCode.lua b/src/ProtocolCode.lua index aeb0675..d864e92 100644 --- a/src/ProtocolCode.lua +++ b/src/ProtocolCode.lua @@ -209,6 +209,7 @@ actionCodes = { Activity_actSignRpc = 653, Activity_actPaySignRewardNtf = 654, Activity_actCalendaTaskRpc = 655, + Activity_actPaySignRpc = 656, } rpcResponseBegin = 10000 diff --git a/src/actions/ActivityAction.lua b/src/actions/ActivityAction.lua index 2f1cd23..af770e3 100644 --- a/src/actions/ActivityAction.lua +++ b/src/actions/ActivityAction.lua @@ -183,19 +183,21 @@ end function _M.actPaySignRpc(agent, data) local role = agent.role local msg = MsgPack.unpack(data) + local dayIndex = msg.day local actGoodsFlag = role.storeData:getProperty("actGoodsFlag") local index = GetActGoodsIndex("paySignIn") - local flag = actGoodsFlag[index] or 0 - if flag == 0 then return 1 end + local ts = actGoodsFlag[index] or 0 + if ts == 0 then return 1 end - if not role.activity:isOpen("PaySignIn") then return 2 end + local open, actId = role.activity:isOpen("PaySignIn") + if not open then return 2 end - local diffDay = diffFromOpen() + 1 + local diffDay = diffFromTs(ts) + 1 local curData = role.activity:getActData("PaySignIn") local reward, change = {} for day, csvData in ipairs(csvdb["pay_signInCsv"]) do - if day <= diffDay then + if day <= diffDay and day == dayIndex then if not curData[day] then curData[day] = 1 -- 奖励 @@ -203,8 +205,8 @@ function _M.actPaySignRpc(agent, data) reward[itemId] = (reward[itemId] or 0) + count end end - else - break + --else + -- break end end if next(reward) then @@ -213,7 +215,7 @@ function _M.actPaySignRpc(agent, data) end role:log("activity", { - activity_id = curData[0], -- 活动ID(或活动指定任务的ID) + activity_id = actId, -- 活动ID(或活动指定任务的ID) activity_type = role.activity.ActivityType.PaySignIn, -- 活动类型,见活动类型枚举表 activity_reward = reward, -- 活动奖励,json格式记录,{'itemid1':123,'itemid2':456,………...} }) diff --git a/src/actions/HangAction.lua b/src/actions/HangAction.lua index fd6a226..2be6250 100644 --- a/src/actions/HangAction.lua +++ b/src/actions/HangAction.lua @@ -59,7 +59,8 @@ local function checkReward(role) -- 特权卡挂机额外栏位 local privExtraCnt = role.storeData:getHangSlotExtraCount() - local selfFC = role:getProperty("hangBagLimit") + privExtraCnt + --local selfFC = role:getProperty("hangBagLimit") + privExtraCnt + local selfFC = 50 local selfIC = selfFC * globalCsv.idle_field_limit local function randomItem() @@ -195,12 +196,12 @@ function _M.startBattleRpc(agent, data) return 1 end - local hangInfo = role:getProperty("hangInfo") or {} - if curData.main ~= 1 then - if carbonId ~= hangInfo.carbonId then - return 2 - end - end + --local hangInfo = role:getProperty("hangInfo") or {} + --if curData.main ~= 1 then + -- if carbonId ~= hangInfo.carbonId then + -- return 2 + -- end + --end if role:checkHangPass(carbonId) then return 3 @@ -228,11 +229,11 @@ function _M.endBattleRpc(agent, data) return 2 end - if carbonData.main ~= 1 then - if carbonId ~= hangInfo.carbonId then - return 3 - end - end + --if carbonData.main ~= 1 then + -- if carbonId ~= hangInfo.carbonId then + -- return 3 + -- end + --end if role:checkHangPass(carbonId) then return 4 diff --git a/src/actions/HeroAction.lua b/src/actions/HeroAction.lua index eab507d..b5418ca 100644 --- a/src/actions/HeroAction.lua +++ b/src/actions/HeroAction.lua @@ -848,7 +848,7 @@ function _M.drawHeroRpc(agent, data) local guideHero if role:getProperty("newerGuide") == "11=1" then - guideHero = 613 + guideHero = globalCsv.newdraw_hero_item_id or 613 end local ssrCount = 0 diff --git a/src/actions/RoleAction.lua b/src/actions/RoleAction.lua index 4ecee7e..655170b 100644 --- a/src/actions/RoleAction.lua +++ b/src/actions/RoleAction.lua @@ -655,7 +655,7 @@ function _M.openSpeedUpBoxRpc(agent, data) for k , v in pairs(gfood) do local itemId = v.id local speed = globalCsv.diner_get_food_speed[csvdb["itemCsv"][itemId].quality] * buildingData.speed / 100 - reward[itemId] = (reward[itemId] or 0) + math.floor(time / speed) * count + reward[itemId] = (reward[itemId] or 0) + math.floor((time / speed) * count) end else return 6 diff --git a/src/csvdata b/src/csvdata index d54c7ca..29d26c6 160000 --- a/src/csvdata +++ b/src/csvdata @@ -1 +1 @@ -Subproject commit d54c7ca07fd397022166b38b58b80a78f339f592 +Subproject commit 29d26c6e3083676ddaa828f8d0b22cd1d0ee48cf diff --git a/src/models/Activity.lua b/src/models/Activity.lua index 6630e3d..708effa 100644 --- a/src/models/Activity.lua +++ b/src/models/Activity.lua @@ -345,8 +345,9 @@ activityFunc[Activity.ActivityType.PaySignIn] = { ["init"] = function(self, actType, isCrossDay, notify) self:updateActData(actType, {}, not notify) end, - -- ["close"] = function(self, actType, notify) - -- end, + ["close"] = function(self, actType, notify) + self.owner.storeData:SetActGoodsFlag("paySignIn", 0) + end, } -- 充值反馈 diff --git a/src/models/Store.lua b/src/models/Store.lua index e912457..c559f64 100644 --- a/src/models/Store.lua +++ b/src/models/Store.lua @@ -57,7 +57,7 @@ end function Store:onCrossDay() self:sendMonthCardEmail() self:deleteExpireLimitGoods() - self:checkPaySignReward() + --self:checkPaySignReward() end -- 删除过期商品 @@ -356,32 +356,46 @@ function GetActGoodsIndex(goodsType) return ActGoodsType[goodsType] or 0 end --- 购买付费签到 按开服时间算奖励 -function Store:onBuyPaySignCard(dur) - local curTs = skynet.timex() +function Store:SetActGoodsFlag(goodsType, flag) local actGoodsFlag = self:getProperty("actGoodsFlag") or {} - local goodsIndex = GetActGoodsIndex("paySignIn") + local goodsIndex = GetActGoodsIndex(goodsType) if goodsIndex == 0 then print("get act goods index fail :paySignIn") return end - actGoodsFlag[goodsIndex] = 1 + actGoodsFlag[goodsIndex] = flag self:updateProperty({field = "actGoodsFlag", value = actGoodsFlag}) - -- 发钱 - local change - local reward, curData = self.owner.activity:getPaySignReward() - if next(reward) then - self.owner.activity:updateActData("PaySignIn", curData) - reward, change = self.owner:award(reward, {log = {desc = "actPaySign"}}) - end +end + +-- 购买付费签到 按开服时间算奖励 +function Store:onBuyPaySignCard(dur) + local curTs = skynet.timex() - self.owner:log("activity", { - activity_id = 0, -- 活动ID(或活动指定任务的ID) - activity_type = self.owner.activity.ActivityType.PaySignIn, -- 活动类型,见活动类型枚举表 - activity_reward = reward, -- 活动奖励,json格式记录,{'itemid1':123,'itemid2':456,………...} - }) + self:SetActGoodsFlag("paySignIn", curTs) - SendPacket(actionCodes.Activity_actPaySignRewardNtf, MsgPack.pack(self.owner:packReward(reward, change))) + --local actGoodsFlag = self:getProperty("actGoodsFlag") or {} + --local goodsIndex = GetActGoodsIndex("paySignIn") + --if goodsIndex == 0 then + -- print("get act goods index fail :paySignIn") + -- return + --end + --actGoodsFlag[goodsIndex] = 1 + --self:updateProperty({field = "actGoodsFlag", value = actGoodsFlag}) + -- 发钱 + --local change + --local reward, curData = self.owner.activity:getPaySignReward() + --if next(reward) then + -- self.owner.activity:updateActData("PaySignIn", curData) + -- reward, change = self.owner:award(reward, {log = {desc = "actPaySign"}}) + --end + + --self.owner:log("activity", { + -- activity_id = 0, -- 活动ID(或活动指定任务的ID) + -- activity_type = self.owner.activity.ActivityType.PaySignIn, -- 活动类型,见活动类型枚举表 + -- activity_reward = reward, -- 活动奖励,json格式记录,{'itemid1':123,'itemid2':456,………...} + --}) + + --SendPacket(actionCodes.Activity_actPaySignRewardNtf, MsgPack.pack(self.owner:packReward(reward, change))) end function Store:checkPaySignReward() diff --git a/src/utils/CommonFunc.lua b/src/utils/CommonFunc.lua index b7e2798..e0072a3 100644 --- a/src/utils/CommonFunc.lua +++ b/src/utils/CommonFunc.lua @@ -161,6 +161,18 @@ function diffFromOpen() return math.floor((now - openTime) / DAY_SEC) end +function diffFromTs(ts) + local now = skynet.timex() + local tm = os.date("*t", ts) + + local time = os.time({year = tm.year, month = tm.month, day = tm.day, hour = RESET_TIME}) + if now < time then + return -1 + end + + return math.floor((now - time) / DAY_SEC) +end + function getServerOpenTs() local openTime = os.time{ year = tonum(SERV_OPEN:sub(1,4)), -- libgit2 0.21.2