Commit 460afa6ed62568461352cf56a3926b73669aed66

Authored by liuzujun
1 parent 84cf48b4

付费签到改为主动领取,战斗关卡不一定是当前挂机关卡

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
1 -Subproject commit d54c7ca07fd397022166b38b58b80a78f339f592 1 +Subproject commit 29d26c6e3083676ddaa828f8d0b22cd1d0ee48cf
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)),