Commit 460afa6ed62568461352cf56a3926b73669aed66
1 parent
84cf48b4
付费签到改为主动领取,战斗关卡不一定是当前挂机关卡
Showing
10 changed files
with
78 additions
and
47 deletions
Show diff stats
src/GlobalVar.lua
| 1 | XXTEA_KEY = "699D448D6D24f7F941E9F6E99F823E18" | 1 | XXTEA_KEY = "699D448D6D24f7F941E9F6E99F823E18" |
| 2 | -RESET_TIME = 0 | 2 | +RESET_TIME = 4 |
| 3 | 3 | ||
| 4 | -START_RESET_TIME_BASE = 1584316800 -- 0时区 | 4 | +START_RESET_TIME_BASE = 1584316800 + RESET_TIME * 3600 -- 0时区 |
| 5 | DAY_SEC = 86400 | 5 | DAY_SEC = 86400 |
| 6 | TIME_ZONE = math.floor(os.difftime(START_RESET_TIME_BASE, os.time(os.date("!*t", START_RESET_TIME_BASE))) / 3600) -- 本地时区 | 6 | TIME_ZONE = math.floor(os.difftime(START_RESET_TIME_BASE, os.time(os.date("!*t", START_RESET_TIME_BASE))) / 3600) -- 本地时区 |
| 7 | 7 | ||
| @@ -256,7 +256,7 @@ SettingStatus = { | @@ -256,7 +256,7 @@ SettingStatus = { | ||
| 256 | }, | 256 | }, |
| 257 | } | 257 | } |
| 258 | 258 | ||
| 259 | -EMAIL_LIMIT = 20 --邮件最大数量 | 259 | +EMAIL_LIMIT = 50 --邮件最大数量 |
| 260 | 260 | ||
| 261 | RedPointTags = { | 261 | RedPointTags = { |
| 262 | PvpCR = 1, | 262 | PvpCR = 1, |
src/ProtocolCode.lua
| @@ -209,6 +209,7 @@ actionCodes = { | @@ -209,6 +209,7 @@ actionCodes = { | ||
| 209 | Activity_actSignRpc = 653, | 209 | Activity_actSignRpc = 653, |
| 210 | Activity_actPaySignRewardNtf = 654, | 210 | Activity_actPaySignRewardNtf = 654, |
| 211 | Activity_actCalendaTaskRpc = 655, | 211 | Activity_actCalendaTaskRpc = 655, |
| 212 | + Activity_actPaySignRpc = 656, | ||
| 212 | } | 213 | } |
| 213 | 214 | ||
| 214 | rpcResponseBegin = 10000 | 215 | rpcResponseBegin = 10000 |
src/actions/ActivityAction.lua
| @@ -183,19 +183,21 @@ end | @@ -183,19 +183,21 @@ end | ||
| 183 | function _M.actPaySignRpc(agent, data) | 183 | function _M.actPaySignRpc(agent, data) |
| 184 | local role = agent.role | 184 | local role = agent.role |
| 185 | local msg = MsgPack.unpack(data) | 185 | local msg = MsgPack.unpack(data) |
| 186 | + local dayIndex = msg.day | ||
| 186 | local actGoodsFlag = role.storeData:getProperty("actGoodsFlag") | 187 | local actGoodsFlag = role.storeData:getProperty("actGoodsFlag") |
| 187 | local index = GetActGoodsIndex("paySignIn") | 188 | local index = GetActGoodsIndex("paySignIn") |
| 188 | - local flag = actGoodsFlag[index] or 0 | ||
| 189 | - if flag == 0 then return 1 end | 189 | + local ts = actGoodsFlag[index] or 0 |
| 190 | + if ts == 0 then return 1 end | ||
| 190 | 191 | ||
| 191 | - if not role.activity:isOpen("PaySignIn") then return 2 end | 192 | + local open, actId = role.activity:isOpen("PaySignIn") |
| 193 | + if not open then return 2 end | ||
| 192 | 194 | ||
| 193 | - local diffDay = diffFromOpen() + 1 | 195 | + local diffDay = diffFromTs(ts) + 1 |
| 194 | 196 | ||
| 195 | local curData = role.activity:getActData("PaySignIn") | 197 | local curData = role.activity:getActData("PaySignIn") |
| 196 | local reward, change = {} | 198 | local reward, change = {} |
| 197 | for day, csvData in ipairs(csvdb["pay_signInCsv"]) do | 199 | for day, csvData in ipairs(csvdb["pay_signInCsv"]) do |
| 198 | - if day <= diffDay then | 200 | + if day <= diffDay and day == dayIndex then |
| 199 | if not curData[day] then | 201 | if not curData[day] then |
| 200 | curData[day] = 1 | 202 | curData[day] = 1 |
| 201 | -- 奖励 | 203 | -- 奖励 |
| @@ -203,8 +205,8 @@ function _M.actPaySignRpc(agent, data) | @@ -203,8 +205,8 @@ function _M.actPaySignRpc(agent, data) | ||
| 203 | reward[itemId] = (reward[itemId] or 0) + count | 205 | reward[itemId] = (reward[itemId] or 0) + count |
| 204 | end | 206 | end |
| 205 | end | 207 | end |
| 206 | - else | ||
| 207 | - break | 208 | + --else |
| 209 | + -- break | ||
| 208 | end | 210 | end |
| 209 | end | 211 | end |
| 210 | if next(reward) then | 212 | if next(reward) then |
| @@ -213,7 +215,7 @@ function _M.actPaySignRpc(agent, data) | @@ -213,7 +215,7 @@ function _M.actPaySignRpc(agent, data) | ||
| 213 | end | 215 | end |
| 214 | 216 | ||
| 215 | role:log("activity", { | 217 | role:log("activity", { |
| 216 | - activity_id = curData[0], -- 活动ID(或活动指定任务的ID) | 218 | + activity_id = actId, -- 活动ID(或活动指定任务的ID) |
| 217 | activity_type = role.activity.ActivityType.PaySignIn, -- 活动类型,见活动类型枚举表 | 219 | activity_type = role.activity.ActivityType.PaySignIn, -- 活动类型,见活动类型枚举表 |
| 218 | activity_reward = reward, -- 活动奖励,json格式记录,{'itemid1':123,'itemid2':456,………...} | 220 | activity_reward = reward, -- 活动奖励,json格式记录,{'itemid1':123,'itemid2':456,………...} |
| 219 | }) | 221 | }) |
src/actions/HangAction.lua
| @@ -59,7 +59,8 @@ local function checkReward(role) | @@ -59,7 +59,8 @@ local function checkReward(role) | ||
| 59 | 59 | ||
| 60 | -- 特权卡挂机额外栏位 | 60 | -- 特权卡挂机额外栏位 |
| 61 | local privExtraCnt = role.storeData:getHangSlotExtraCount() | 61 | local privExtraCnt = role.storeData:getHangSlotExtraCount() |
| 62 | - local selfFC = role:getProperty("hangBagLimit") + privExtraCnt | 62 | + --local selfFC = role:getProperty("hangBagLimit") + privExtraCnt |
| 63 | + local selfFC = 50 | ||
| 63 | local selfIC = selfFC * globalCsv.idle_field_limit | 64 | local selfIC = selfFC * globalCsv.idle_field_limit |
| 64 | 65 | ||
| 65 | local function randomItem() | 66 | local function randomItem() |
| @@ -195,12 +196,12 @@ function _M.startBattleRpc(agent, data) | @@ -195,12 +196,12 @@ function _M.startBattleRpc(agent, data) | ||
| 195 | return 1 | 196 | return 1 |
| 196 | end | 197 | end |
| 197 | 198 | ||
| 198 | - local hangInfo = role:getProperty("hangInfo") or {} | ||
| 199 | - if curData.main ~= 1 then | ||
| 200 | - if carbonId ~= hangInfo.carbonId then | ||
| 201 | - return 2 | ||
| 202 | - end | ||
| 203 | - end | 199 | + --local hangInfo = role:getProperty("hangInfo") or {} |
| 200 | + --if curData.main ~= 1 then | ||
| 201 | + -- if carbonId ~= hangInfo.carbonId then | ||
| 202 | + -- return 2 | ||
| 203 | + -- end | ||
| 204 | + --end | ||
| 204 | 205 | ||
| 205 | if role:checkHangPass(carbonId) then | 206 | if role:checkHangPass(carbonId) then |
| 206 | return 3 | 207 | return 3 |
| @@ -228,11 +229,11 @@ function _M.endBattleRpc(agent, data) | @@ -228,11 +229,11 @@ function _M.endBattleRpc(agent, data) | ||
| 228 | return 2 | 229 | return 2 |
| 229 | end | 230 | end |
| 230 | 231 | ||
| 231 | - if carbonData.main ~= 1 then | ||
| 232 | - if carbonId ~= hangInfo.carbonId then | ||
| 233 | - return 3 | ||
| 234 | - end | ||
| 235 | - end | 232 | + --if carbonData.main ~= 1 then |
| 233 | + -- if carbonId ~= hangInfo.carbonId then | ||
| 234 | + -- return 3 | ||
| 235 | + -- end | ||
| 236 | + --end | ||
| 236 | 237 | ||
| 237 | if role:checkHangPass(carbonId) then | 238 | if role:checkHangPass(carbonId) then |
| 238 | return 4 | 239 | return 4 |
src/actions/HeroAction.lua
| @@ -848,7 +848,7 @@ function _M.drawHeroRpc(agent, data) | @@ -848,7 +848,7 @@ function _M.drawHeroRpc(agent, data) | ||
| 848 | 848 | ||
| 849 | local guideHero | 849 | local guideHero |
| 850 | if role:getProperty("newerGuide") == "11=1" then | 850 | if role:getProperty("newerGuide") == "11=1" then |
| 851 | - guideHero = 613 | 851 | + guideHero = globalCsv.newdraw_hero_item_id or 613 |
| 852 | end | 852 | end |
| 853 | 853 | ||
| 854 | local ssrCount = 0 | 854 | local ssrCount = 0 |
src/actions/RoleAction.lua
| @@ -655,7 +655,7 @@ function _M.openSpeedUpBoxRpc(agent, data) | @@ -655,7 +655,7 @@ function _M.openSpeedUpBoxRpc(agent, data) | ||
| 655 | for k , v in pairs(gfood) do | 655 | for k , v in pairs(gfood) do |
| 656 | local itemId = v.id | 656 | local itemId = v.id |
| 657 | local speed = globalCsv.diner_get_food_speed[csvdb["itemCsv"][itemId].quality] * buildingData.speed / 100 | 657 | local speed = globalCsv.diner_get_food_speed[csvdb["itemCsv"][itemId].quality] * buildingData.speed / 100 |
| 658 | - reward[itemId] = (reward[itemId] or 0) + math.floor(time / speed) * count | 658 | + reward[itemId] = (reward[itemId] or 0) + math.floor((time / speed) * count) |
| 659 | end | 659 | end |
| 660 | else | 660 | else |
| 661 | return 6 | 661 | return 6 |
src/models/Activity.lua
| @@ -345,8 +345,9 @@ activityFunc[Activity.ActivityType.PaySignIn] = { | @@ -345,8 +345,9 @@ activityFunc[Activity.ActivityType.PaySignIn] = { | ||
| 345 | ["init"] = function(self, actType, isCrossDay, notify) | 345 | ["init"] = function(self, actType, isCrossDay, notify) |
| 346 | self:updateActData(actType, {}, not notify) | 346 | self:updateActData(actType, {}, not notify) |
| 347 | end, | 347 | end, |
| 348 | - -- ["close"] = function(self, actType, notify) | ||
| 349 | - -- end, | 348 | + ["close"] = function(self, actType, notify) |
| 349 | + self.owner.storeData:SetActGoodsFlag("paySignIn", 0) | ||
| 350 | + end, | ||
| 350 | } | 351 | } |
| 351 | 352 | ||
| 352 | -- 充值反馈 | 353 | -- 充值反馈 |
src/models/Store.lua
| @@ -57,7 +57,7 @@ end | @@ -57,7 +57,7 @@ end | ||
| 57 | function Store:onCrossDay() | 57 | function Store:onCrossDay() |
| 58 | self:sendMonthCardEmail() | 58 | self:sendMonthCardEmail() |
| 59 | self:deleteExpireLimitGoods() | 59 | self:deleteExpireLimitGoods() |
| 60 | - self:checkPaySignReward() | 60 | + --self:checkPaySignReward() |
| 61 | end | 61 | end |
| 62 | 62 | ||
| 63 | -- 删除过期商品 | 63 | -- 删除过期商品 |
| @@ -356,32 +356,46 @@ function GetActGoodsIndex(goodsType) | @@ -356,32 +356,46 @@ function GetActGoodsIndex(goodsType) | ||
| 356 | return ActGoodsType[goodsType] or 0 | 356 | return ActGoodsType[goodsType] or 0 |
| 357 | end | 357 | end |
| 358 | 358 | ||
| 359 | --- 购买付费签到 按开服时间算奖励 | ||
| 360 | -function Store:onBuyPaySignCard(dur) | ||
| 361 | - local curTs = skynet.timex() | 359 | +function Store:SetActGoodsFlag(goodsType, flag) |
| 362 | local actGoodsFlag = self:getProperty("actGoodsFlag") or {} | 360 | local actGoodsFlag = self:getProperty("actGoodsFlag") or {} |
| 363 | - local goodsIndex = GetActGoodsIndex("paySignIn") | 361 | + local goodsIndex = GetActGoodsIndex(goodsType) |
| 364 | if goodsIndex == 0 then | 362 | if goodsIndex == 0 then |
| 365 | print("get act goods index fail :paySignIn") | 363 | print("get act goods index fail :paySignIn") |
| 366 | return | 364 | return |
| 367 | end | 365 | end |
| 368 | - actGoodsFlag[goodsIndex] = 1 | 366 | + actGoodsFlag[goodsIndex] = flag |
| 369 | self:updateProperty({field = "actGoodsFlag", value = actGoodsFlag}) | 367 | self:updateProperty({field = "actGoodsFlag", value = actGoodsFlag}) |
| 370 | - -- 发钱 | ||
| 371 | - local change | ||
| 372 | - local reward, curData = self.owner.activity:getPaySignReward() | ||
| 373 | - if next(reward) then | ||
| 374 | - self.owner.activity:updateActData("PaySignIn", curData) | ||
| 375 | - reward, change = self.owner:award(reward, {log = {desc = "actPaySign"}}) | ||
| 376 | - end | 368 | +end |
| 369 | + | ||
| 370 | +-- 购买付费签到 按开服时间算奖励 | ||
| 371 | +function Store:onBuyPaySignCard(dur) | ||
| 372 | + local curTs = skynet.timex() | ||
| 377 | 373 | ||
| 378 | - self.owner:log("activity", { | ||
| 379 | - activity_id = 0, -- 活动ID(或活动指定任务的ID) | ||
| 380 | - activity_type = self.owner.activity.ActivityType.PaySignIn, -- 活动类型,见活动类型枚举表 | ||
| 381 | - activity_reward = reward, -- 活动奖励,json格式记录,{'itemid1':123,'itemid2':456,………...} | ||
| 382 | - }) | 374 | + self:SetActGoodsFlag("paySignIn", curTs) |
| 383 | 375 | ||
| 384 | - SendPacket(actionCodes.Activity_actPaySignRewardNtf, MsgPack.pack(self.owner:packReward(reward, change))) | 376 | + --local actGoodsFlag = self:getProperty("actGoodsFlag") or {} |
| 377 | + --local goodsIndex = GetActGoodsIndex("paySignIn") | ||
| 378 | + --if goodsIndex == 0 then | ||
| 379 | + -- print("get act goods index fail :paySignIn") | ||
| 380 | + -- return | ||
| 381 | + --end | ||
| 382 | + --actGoodsFlag[goodsIndex] = 1 | ||
| 383 | + --self:updateProperty({field = "actGoodsFlag", value = actGoodsFlag}) | ||
| 384 | + -- 发钱 | ||
| 385 | + --local change | ||
| 386 | + --local reward, curData = self.owner.activity:getPaySignReward() | ||
| 387 | + --if next(reward) then | ||
| 388 | + -- self.owner.activity:updateActData("PaySignIn", curData) | ||
| 389 | + -- reward, change = self.owner:award(reward, {log = {desc = "actPaySign"}}) | ||
| 390 | + --end | ||
| 391 | + | ||
| 392 | + --self.owner:log("activity", { | ||
| 393 | + -- activity_id = 0, -- 活动ID(或活动指定任务的ID) | ||
| 394 | + -- activity_type = self.owner.activity.ActivityType.PaySignIn, -- 活动类型,见活动类型枚举表 | ||
| 395 | + -- activity_reward = reward, -- 活动奖励,json格式记录,{'itemid1':123,'itemid2':456,………...} | ||
| 396 | + --}) | ||
| 397 | + | ||
| 398 | + --SendPacket(actionCodes.Activity_actPaySignRewardNtf, MsgPack.pack(self.owner:packReward(reward, change))) | ||
| 385 | end | 399 | end |
| 386 | 400 | ||
| 387 | function Store:checkPaySignReward() | 401 | function Store:checkPaySignReward() |
src/utils/CommonFunc.lua
| @@ -161,6 +161,18 @@ function diffFromOpen() | @@ -161,6 +161,18 @@ function diffFromOpen() | ||
| 161 | return math.floor((now - openTime) / DAY_SEC) | 161 | return math.floor((now - openTime) / DAY_SEC) |
| 162 | end | 162 | end |
| 163 | 163 | ||
| 164 | +function diffFromTs(ts) | ||
| 165 | + local now = skynet.timex() | ||
| 166 | + local tm = os.date("*t", ts) | ||
| 167 | + | ||
| 168 | + local time = os.time({year = tm.year, month = tm.month, day = tm.day, hour = RESET_TIME}) | ||
| 169 | + if now < time then | ||
| 170 | + return -1 | ||
| 171 | + end | ||
| 172 | + | ||
| 173 | + return math.floor((now - time) / DAY_SEC) | ||
| 174 | +end | ||
| 175 | + | ||
| 164 | function getServerOpenTs() | 176 | function getServerOpenTs() |
| 165 | local openTime = os.time{ | 177 | local openTime = os.time{ |
| 166 | year = tonum(SERV_OPEN:sub(1,4)), | 178 | year = tonum(SERV_OPEN:sub(1,4)), |
-
mentioned in commit ba6d85edc65900830c7e168102d70671881b5808
-
mentioned in commit ba6d85edc65900830c7e168102d70671881b5808