Commit 279a57733271fe05caa1a08babf782a27781ef9d

Authored by zhouhaihai
2 parents b23cd820 7cd7fd53

Merge branch 'tr/bugfix-qa' into tr/develop

* tr/bugfix-qa:
  获得所有SSR 且满级 满觉醒 同时获得全部满级金色铭文 满精进
  充值mycard
  拾荒bug
  pvp 匹配 和 失败扣减积分
  无论什么方式翻开中继层格子都给奖励
  跨天礼包重置
  月重置
  跨月
  拾荒 失败也记录积分
  编队
  世界聊天等级15判断
  活动卡池结束回馈次数通关邮件折算碎片 功能注释
  第一次通关拾荒章节推送限时礼包,活动卡池结束回馈次数通关邮件折算碎片

# Conflicts:
#	src/adv/Adv.lua
@@ -142,7 +142,6 @@ ItemId = { @@ -142,7 +142,6 @@ ItemId = {
142 TimeReset = { 142 TimeReset = {
143 CrossDay = 1, --通用跨天 143 CrossDay = 1, --通用跨天
144 CrossWeek = 2, --通用跨周 144 CrossWeek = 2, --通用跨周
145 - CrossMonth = 1, --通用跨月 索引使用跨天,在回调方法中判断是否跨越 跨月的前置条件是跨天  
146 DinerRank = 1, -- 餐厅排行榜 145 DinerRank = 1, -- 餐厅排行榜
147 PvpRank = 2, -- pvp排行榜 146 PvpRank = 2, -- pvp排行榜
148 PvpHight = 11, --高级竞技场 147 PvpHight = 11, --高级竞技场
@@ -326,6 +325,7 @@ MailId = { @@ -326,6 +325,7 @@ MailId = {
326 PayBackAward = 242, 325 PayBackAward = 242,
327 CBBackAward = 243, 326 CBBackAward = 243,
328 CBBackAward2 = 244, 327 CBBackAward2 = 244,
  328 + ActivityPoolRet = 280,
329 } 329 }
330 330
331 TriggerEventType = { 331 TriggerEventType = {
src/actions/GmAction.lua
@@ -247,6 +247,7 @@ table.insert(helpDes, {"获得所有零件", "get", "RUNE"}) @@ -247,6 +247,7 @@ table.insert(helpDes, {"获得所有零件", "get", "RUNE"})
247 table.insert(helpDes, {"获得所有碎片", "get", "FRAG"}) 247 table.insert(helpDes, {"获得所有碎片", "get", "FRAG"})
248 table.insert(helpDes, {"获得所有食物", "get", "FOOD"}) 248 table.insert(helpDes, {"获得所有食物", "get", "FOOD"})
249 table.insert(helpDes, {"获得所有角色", "get", "HERO"}) 249 table.insert(helpDes, {"获得所有角色", "get", "HERO"})
  250 +table.insert(helpDes, {"获得满级满觉醒角色,满级满精进铭文", "get", "MAXHERO"})
250 function _M.get(role, pms) 251 function _M.get(role, pms)
251 if pms.pm1 == "ALL" then 252 if pms.pm1 == "ALL" then
252 local reward = {} 253 local reward = {}
@@ -263,7 +264,7 @@ function _M.get(role, pms) @@ -263,7 +264,7 @@ function _M.get(role, pms)
263 end 264 end
264 end 265 end
265 elseif pms.pm1 == "RUNE" then 266 elseif pms.pm1 == "RUNE" then
266 - for itemId = 2000 , 3000 do 267 + for itemId = 10000 , 20000 do
267 if csvdb["itemCsv"][itemId] then 268 if csvdb["itemCsv"][itemId] then
268 role:award({[itemId] = 1}, {log = {desc = "gm"}}) 269 role:award({[itemId] = 1}, {log = {desc = "gm"}})
269 end 270 end
@@ -286,6 +287,36 @@ function _M.get(role, pms) @@ -286,6 +287,36 @@ function _M.get(role, pms)
286 role:award({[itemId] = 1}, {log = {desc = "gm"}}) 287 role:award({[itemId] = 1}, {log = {desc = "gm"}})
287 end 288 end
288 end 289 end
  290 + elseif pms.pm1 == "MAXHERO" then
  291 + -- 给英雄
  292 + for itemId = 400 , 700 do
  293 + if csvdb["itemCsv"][itemId] then
  294 + role:award({[itemId] = 1}, {log = {desc = "gm"}})
  295 + end
  296 + end
  297 + -- 升满级
  298 + for _, hero in ipairs(role.heros) do
  299 + hero:updateProperty({field = "level", value = 140})
  300 + hero:updateProperty({field = "wakeL", value = #csvdb["unit_wakeCsv"]})
  301 + end
  302 +
  303 + -- 添加铭文
  304 + for itemId = 10000 , 20000 do
  305 + if csvdb["itemCsv"][itemId] then
  306 + role:award({[itemId] = 1}, {log = {desc = "gm"}})
  307 + end
  308 + end
  309 + for _, rune in ipairs(role.runeBag) do
  310 + local typ = rune:getProperty("type")
  311 + local id = rune:getProperty("id")
  312 +
  313 + local runeSet = csvdb["runeCsv"][typ]
  314 + if not runeSet then break end
  315 + local runeData = runeSet[id]
  316 + if not runeData then break end
  317 +
  318 + rune:updateProperty({field = "level",value = runeData.lvLimit})
  319 + end
289 else 320 else
290 local itemId = tonum(pms.pm1) 321 local itemId = tonum(pms.pm1)
291 if not csvdb["itemCsv"][itemId] then 322 if not csvdb["itemCsv"][itemId] then
@@ -561,6 +592,12 @@ function _M.ayncPurchase(role, params) @@ -561,6 +592,12 @@ function _M.ayncPurchase(role, params)
561 return role:handlePurchase(params) or "" 592 return role:handlePurchase(params) or ""
562 end 593 end
563 594
  595 +-- 获取订单号
  596 +function _M.getPurchaseOrder(role, params)
  597 + return role:getPurchaseOrderByPlatform(params) or ""
  598 +end
  599 +
  600 +
564 function _M.cz(role, pms) 601 function _M.cz(role, pms)
565 local id = tonum(pms.pm1) 602 local id = tonum(pms.pm1)
566 local csvData = csvdb["shop_rechargeCsv"][id] 603 local csvData = csvdb["shop_rechargeCsv"][id]
src/actions/RoleAction.lua
@@ -157,6 +157,7 @@ function _M.loginRpc( agent, data ) @@ -157,6 +157,7 @@ function _M.loginRpc( agent, data )
157 SERV_OPEN = redisproxy:hget("autoincrement_set", "server_start") 157 SERV_OPEN = redisproxy:hget("autoincrement_set", "server_start")
158 158
159 role:changeStructVersion() -- 数据结构 版本更新 159 role:changeStructVersion() -- 数据结构 版本更新
  160 + role:getAdvData(true) -- 清掉不合格的数据
160 role:advEndlessSeasonCheck(true) -- 冒险赛季更新检查 161 role:advEndlessSeasonCheck(true) -- 冒险赛季更新检查
161 162
162 -- 跨天登陆事件 163 -- 跨天登陆事件
@@ -1052,6 +1053,10 @@ function _M.chatRpc(agent, data) @@ -1052,6 +1053,10 @@ function _M.chatRpc(agent, data)
1052 result = 1 1053 result = 1
1053 return 1054 return
1054 end 1055 end
  1056 + if role:getProperty("level") < (globalCsv.chat_level or 15) then
  1057 + result = 3
  1058 + return
  1059 + end
1055 1060
1056 role._worldChatLimit = role._worldChatLimit or {start = 0, count = 0, canSayt = 0} --第一次开始说话时间 从第一次说话次数 能说话的时间 1061 role._worldChatLimit = role._worldChatLimit or {start = 0, count = 0, canSayt = 0} --第一次开始说话时间 从第一次说话次数 能说话的时间
1057 1062
@@ -20,8 +20,6 @@ function Adv:ctor(owner) @@ -20,8 +20,6 @@ function Adv:ctor(owner)
20 self.advTask = self.owner:getProperty("advTask") 20 self.advTask = self.owner:getProperty("advTask")
21 self.advMTask = self.owner:getProperty("advMTask") 21 self.advMTask = self.owner:getProperty("advMTask")
22 self.advTaskChange = false -- 任务改变才更新 22 self.advTaskChange = false -- 任务改变才更新
23 -  
24 - self:initByInfo(self.owner:getProperty("advInfo"))  
25 end 23 end
26 24
27 function Adv:mylog(contents) 25 function Adv:mylog(contents)
@@ -36,7 +34,8 @@ function Adv:mylog(contents) @@ -36,7 +34,8 @@ function Adv:mylog(contents)
36 end 34 end
37 35
38 --初始化adv 信息 36 --初始化adv 信息
39 -function Adv:initByInfo(advInfo) 37 +function Adv:initByInfo()
  38 + local advInfo = self.owner:getProperty("advInfo")
40 if not next(advInfo) then return end --还没有 开始新地图 39 if not next(advInfo) then return end --还没有 开始新地图
41 40
42 self.chapterId = advInfo.chapterId 41 self.chapterId = advInfo.chapterId
@@ -407,10 +406,9 @@ function Adv:isRunning() @@ -407,10 +406,9 @@ function Adv:isRunning()
407 return false 406 return false
408 end 407 end
409 408
410 --- 强制结束  
411 -function Adv:forceOver(notNotify)  
412 - if self:isRunning() then  
413 - 409 +-- 强制结束 逻辑和adv内部无关
  410 +function Adv:forceOver(notNotify, force)
  411 + if self:isRunning() or force then
414 local advTeam = self.owner:getProperty("advTeam") 412 local advTeam = self.owner:getProperty("advTeam")
415 advTeam.player = nil 413 advTeam.player = nil
416 414
@@ -895,25 +893,27 @@ function Adv:over(success, rewardRatio, overType) @@ -895,25 +893,27 @@ function Adv:over(success, rewardRatio, overType)
895 if not self:isEndless() and self.level >= chapterData.limitlevel then 893 if not self:isEndless() and self.level >= chapterData.limitlevel then
896 self.owner:checkTaskEnter("AdvAllPass", {id = self.chapterId}) 894 self.owner:checkTaskEnter("AdvAllPass", {id = self.chapterId})
897 end 895 end
  896 + end
898 897
899 - local roleId = self.owner:getProperty("id")  
900 - local oldMaxScore = tonum(redisproxy:zscore(self.owner:getAdvRankKey(), roleId))  
901 - if score > oldMaxScore and not self.actid then  
902 - local team = self.owner:getProperty("advTeam")  
903 - local curInfo = {  
904 - name = self.owner:getProperty("name"),  
905 - headId = self.owner:getProperty("headId"),  
906 - lv = self.owner:getProperty("level"),  
907 - batteV = self.owner:getTeamBattleValue(team.heros),  
908 - chapter = self.chapterId,  
909 - format = self.owner:getTeamHerosInfo(team).heros,  
910 - }  
911 - redisproxy:pipelining(function (red)  
912 - red:zadd(self.owner:getAdvRankKey(), score, roleId) --更新分数  
913 - red:hset(RANK_ADV_INFO, roleId, MsgPack.pack(curInfo))  
914 - end)  
915 - end 898 +
  899 + local roleId = self.owner:getProperty("id")
  900 + local oldMaxScore = tonum(redisproxy:zscore(self.owner:getAdvRankKey(), roleId))
  901 + if score > oldMaxScore and not self.actid then
  902 + local team = self.owner:getProperty("advTeam")
  903 + local curInfo = {
  904 + name = self.owner:getProperty("name"),
  905 + headId = self.owner:getProperty("headId"),
  906 + lv = self.owner:getProperty("level"),
  907 + batteV = self.owner:getTeamBattleValue(team.heros),
  908 + chapter = self.chapterId,
  909 + format = self.owner:getTeamHerosInfo(team).heros,
  910 + }
  911 + redisproxy:pipelining(function (red)
  912 + red:zadd(self.owner:getAdvRankKey(), score, roleId) --更新分数
  913 + red:hset(RANK_ADV_INFO, roleId, MsgPack.pack(curInfo))
  914 + end)
916 end 915 end
  916 +
917 -- 通关的时候要把引导步骤设定到成就引导 917 -- 通关的时候要把引导步骤设定到成就引导
918 if not self.owner:checkOverGuide(57) then 918 if not self.owner:checkOverGuide(57) then
919 self.owner:saveGuide(57,1,true) 919 self.owner:saveGuide(57,1,true)
@@ -1224,6 +1224,11 @@ local function clickOut(self, room, block, params, isExit) @@ -1224,6 +1224,11 @@ local function clickOut(self, room, block, params, isExit)
1224 else 1224 else
1225 if self.level > (advPass[self.chapterId] or 0) then 1225 if self.level > (advPass[self.chapterId] or 0) then
1226 self.owner:changeUpdates({{type = "advPass", field = self.chapterId, value = self.level}}) 1226 self.owner:changeUpdates({{type = "advPass", field = self.chapterId, value = self.level}})
  1227 +
  1228 + if (self.level >= csvdb["adv_chapterCsv"][self.chapterId].limitlevel) then --关卡结束
  1229 + self.owner:checkTaskEnter("AdvPassFirst", {id = self.chapterId})
  1230 + end
  1231 +
1227 end 1232 end
1228 end 1233 end
1229 1234
@@ -1821,9 +1826,6 @@ function Adv:clickBlock(roomId, blockId, params) @@ -1821,9 +1826,6 @@ function Adv:clickBlock(roomId, blockId, params)
1821 if not block.isOpen then 1826 if not block.isOpen then
1822 if self.isRelay or checkAroundBlocks() then --开放 1827 if self.isRelay or checkAroundBlocks() then --开放
1823 self:getCurMap():openBlock(roomId, blockId, true, true) 1828 self:getCurMap():openBlock(roomId, blockId, true, true)
1824 - if self.isRelay and self:getCurMap():isAllOpen() then -- 发放翻开的奖励  
1825 - self:passAdvRelay()  
1826 - end  
1827 status = true 1829 status = true
1828 end 1830 end
1829 else 1831 else
src/adv/AdvMap.lua
@@ -272,6 +272,10 @@ function Map:openBlock(roomId, blockId, isPlayer, ignoreBack) @@ -272,6 +272,10 @@ function Map:openBlock(roomId, blockId, isPlayer, ignoreBack)
272 if not ignoreBack then 272 if not ignoreBack then
273 self.adv:backBlockChange(roomId, blockId) 273 self.adv:backBlockChange(roomId, blockId)
274 end 274 end
  275 +
  276 + if self.adv.isRelay and self:isAllOpen() then -- 发放翻开的奖励
  277 + self.adv:passAdvRelay()
  278 + end
275 end 279 end
276 return status 280 return status
277 end 281 end
src/models/Activity.lua
@@ -622,6 +622,12 @@ activityFunc[Activity.ActivityType.ActHeroPool] = { @@ -622,6 +622,12 @@ activityFunc[Activity.ActivityType.ActHeroPool] = {
622 local actData = self:getActData(actType) 622 local actData = self:getActData(actType)
623 local cfg = csvdb["activity_ctrlCsv"][actId] 623 local cfg = csvdb["activity_ctrlCsv"][actId]
624 if not cfg then return end 624 if not cfg then return end
  625 + -- 保底次数转换成万能碎片
  626 + --local count = math.ceil(((actData[cfg.condition] or 0) / 100) * 60)
  627 + --if count > 0 then
  628 + -- local gift = {[723] = count}
  629 + -- self.owner:sendMail(MailId.ActivityPoolRet, nil, gift, {})
  630 + --end
625 actData[cfg.condition] = nil 631 actData[cfg.condition] = nil
626 self:updateActData(actType, actData, not notify) 632 self:updateActData(actType, actData, not notify)
627 end, 633 end,
src/models/RolePlugin.lua
@@ -841,9 +841,16 @@ function RolePlugin.bind(Role) @@ -841,9 +841,16 @@ function RolePlugin.bind(Role)
841 return runeSet 841 return runeSet
842 end 842 end
843 843
844 - function Role:getAdvData() 844 + function Role:getAdvData(notNotify)
845 if not self.advData then 845 if not self.advData then
846 self.advData = require("adv.Adv").new(self) 846 self.advData = require("adv.Adv").new(self)
  847 + local status, err = pcall(function()
  848 + self.advData:initByInfo()
  849 + end)
  850 + if not status then
  851 + self.advData:forceOver(notNotify, true)
  852 + skynet.error("getAdvData error adv initByInfo " .. err)
  853 + end
847 end 854 end
848 return self.advData 855 return self.advData
849 end 856 end
@@ -1670,8 +1677,34 @@ function RolePlugin.bind(Role) @@ -1670,8 +1677,34 @@ function RolePlugin.bind(Role)
1670 self:updateProperty({field = "redp", value = redp}) 1677 self:updateProperty({field = "redp", value = redp})
1671 end 1678 end
1672 1679
  1680 + -- 网页支付获取订单号
  1681 + function Role:getPurchaseOrderByPlatform(params)
  1682 + local checkPlatform = {
  1683 + ["mycard"] = "mycard_product_id",
  1684 + }
  1685 + local pidField = checkPlatform[params.payMode or ""]
  1686 + if not pidField or not params.product_id or params.product_id == "" then
  1687 + return "no product"
  1688 + end
  1689 +
  1690 + for k , v in pairs(csvdb["shop_rechargeCsv"]) do
  1691 + if not v[pidField] then return "no product" end
  1692 + if v[pidField] == params.product_id then
  1693 + if v.rmb ~= params.money then
  1694 + return "error money"
  1695 + end
  1696 + -- 发现需要的id
  1697 + local partnerOrderId = self:getPurchaseOrder(k, params.transactionId)
  1698 + if partnerOrderId == "" then
  1699 + return "no product"
  1700 + end
  1701 + return json.encode({order = partnerOrderId})
  1702 + end
  1703 + end
  1704 + end
  1705 +
1673 -- 获取充值订单号 1706 -- 获取充值订单号
1674 - function Role:getPurchaseOrder(rechargeId) 1707 + function Role:getPurchaseOrder(rechargeId, transactionId)
1675 local roleId = self:getProperty("id") 1708 local roleId = self:getProperty("id")
1676 local rechargeData = csvdb["shop_rechargeCsv"][rechargeId] 1709 local rechargeData = csvdb["shop_rechargeCsv"][rechargeId]
1677 if not rechargeData then 1710 if not rechargeData then
@@ -1708,6 +1741,7 @@ function RolePlugin.bind(Role) @@ -1708,6 +1741,7 @@ function RolePlugin.bind(Role)
1708 order = partnerOrderId, 1741 order = partnerOrderId,
1709 rechargeId = rechargeId, 1742 rechargeId = rechargeId,
1710 createTime = skynet.timex(), 1743 createTime = skynet.timex(),
  1744 + transactionId = transactionId,
1711 }) 1745 })
1712 order:create() 1746 order:create()
1713 -- 正在进行中的订单 缓存 1747 -- 正在进行中的订单 缓存
@@ -1786,6 +1820,7 @@ function RolePlugin.bind(Role) @@ -1786,6 +1820,7 @@ function RolePlugin.bind(Role)
1786 request.product_id = data.product_id 1820 request.product_id = data.product_id
1787 request.pay_time = data.pay_time 1821 request.pay_time = data.pay_time
1788 request.transactionId = data.order_no 1822 request.transactionId = data.order_no
  1823 + request.extension_info = data.extension_info
1789 ]] 1824 ]]
1790 function Role:handlePurchase(params) 1825 function Role:handlePurchase(params)
1791 local roleId = self:getProperty("id") 1826 local roleId = self:getProperty("id")
@@ -1816,6 +1851,10 @@ function RolePlugin.bind(Role) @@ -1816,6 +1851,10 @@ function RolePlugin.bind(Role)
1816 }) 1851 })
1817 1852
1818 if not status then 1853 if not status then
  1854 + if params.extension_info == "mycard_web" then
  1855 + -- todo 发邮件
  1856 + skynet.error("mycard_web " .. params.order)
  1857 + end
1819 SendPacket(actionCodes.Store_ayncPurchaseRpc, MsgPack.pack({ order = partnerOrderStr, 1858 SendPacket(actionCodes.Store_ayncPurchaseRpc, MsgPack.pack({ order = partnerOrderStr,
1820 result = "success", reward = reward})) 1859 result = "success", reward = reward}))
1821 end 1860 end
src/models/RolePvp.lua
@@ -9,7 +9,7 @@ local PVP_RANK_TIME_SORT_PRECISION = 360 -- 时间精度 每6分钟忽略差异 @@ -9,7 +9,7 @@ local PVP_RANK_TIME_SORT_PRECISION = 360 -- 时间精度 每6分钟忽略差异
9 local PVP_RANK_BASE_SCORE = globalCsv.pvp_base_score -- 初始积分 9 local PVP_RANK_BASE_SCORE = globalCsv.pvp_base_score -- 初始积分
10 10
11 -- 匹配规则改为以排名来匹配 11 -- 匹配规则改为以排名来匹配
12 -local PVP_GET_ROBOT_SCORE = 2400 -- 2400分以下低档位匹配机器人 12 +local PVP_GET_ROBOT_SCORE = 1300 -- 1300分以下低档位匹配机器人
13 local PRE_RANGE_COUNT = 20 -- 每个档位人数 13 local PRE_RANGE_COUNT = 20 -- 每个档位人数
14 local NEED_MATCH = 3 --匹配到多少人 14 local NEED_MATCH = 3 --匹配到多少人
15 15
@@ -73,7 +73,7 @@ function Role:changePvpScoreCommon(matchId, isWin) @@ -73,7 +73,7 @@ function Role:changePvpScoreCommon(matchId, isWin)
73 if isWin then 73 if isWin then
74 local scoreChange = math.ceil(60 / (1 + 10 ^ ((myScore - matchScore) / 400))) 74 local scoreChange = math.ceil(60 / (1 + 10 ^ ((myScore - matchScore) / 400)))
75 myScore = myScore + scoreChange 75 myScore = myScore + scoreChange
76 - matchScore = matchScore - math.ceil(scoreChange / 3) -- 防守方失败时,扣分减为原来的1/3 76 + matchScore = matchScore - math.ceil(scoreChange / 3 * 2) -- 防守方失败时,扣分减为原来的2/3
77 else 77 else
78 local scoreChange = math.ceil(60 / (1 + 10 ^ ((matchScore - myScore) / 400))) 78 local scoreChange = math.ceil(60 / (1 + 10 ^ ((matchScore - myScore) / 400)))
79 myScore = myScore - scoreChange 79 myScore = myScore - scoreChange
@@ -139,7 +139,7 @@ function Role:changePvpScoreHigh(matchId, isWin) @@ -139,7 +139,7 @@ function Role:changePvpScoreHigh(matchId, isWin)
139 if isWin then 139 if isWin then
140 local scoreChange = math.ceil(50 / (1 + 10 ^ ((myScore - matchScore) / 1000))) 140 local scoreChange = math.ceil(50 / (1 + 10 ^ ((myScore - matchScore) / 1000)))
141 myScore = myScore + scoreChange 141 myScore = myScore + scoreChange
142 - matchScore = matchScore - math.ceil(scoreChange / 3) -- 防守方失败时,扣分减为原来的1/3 142 + matchScore = matchScore - math.ceil(scoreChange / 3 * 2) -- 防守方失败时,扣分减为原来的2/3
143 else 143 else
144 local scoreChange = math.ceil(50 / (1 + 10 ^ ((matchScore - myScore) / 1000))) 144 local scoreChange = math.ceil(50 / (1 + 10 ^ ((matchScore - myScore) / 1000)))
145 myScore = myScore - scoreChange 145 myScore = myScore - scoreChange
@@ -530,7 +530,7 @@ function Role:changeCrossServerPvpSelfInfo(cType) @@ -530,7 +530,7 @@ function Role:changeCrossServerPvpSelfInfo(cType)
530 return 530 return
531 end 531 end
532 change.battleV = self:getProperty("pvpTBVH") 532 change.battleV = self:getProperty("pvpTBVH")
533 - change.heros = self:getProperty("pvpTSH") 533 + change.team = self:getProperty("pvpTSH")
534 change.battleInfo = self:getProperty("pvpTBH") 534 change.battleInfo = self:getProperty("pvpTBH")
535 end 535 end
536 536
src/models/RoleTask.lua
@@ -53,6 +53,7 @@ local TaskType = { @@ -53,6 +53,7 @@ local TaskType = {
53 AdvMineLayer = 414, -- 宝藏洞激活 53 AdvMineLayer = 414, -- 宝藏洞激活
54 AdvKillBoss = 415, -- 拾荒击杀boss 54 AdvKillBoss = 415, -- 拾荒击杀boss
55 AdvHangHeroCnt = 416, -- 拾荒人数 55 AdvHangHeroCnt = 416, -- 拾荒人数
  56 + AdvPassFirst = 417, -- 冒险首次通关 - id
56 57
57 --爬塔相关 58 --爬塔相关
58 TowerPass = 501, -- 爬塔通关 - level 59 TowerPass = 501, -- 爬塔通关 - level
@@ -249,7 +250,7 @@ local StoreListener = { @@ -249,7 +250,7 @@ local StoreListener = {
249 [TaskType.HangPass] = {{TriggerEventType.HangPass, f("id")}}, 250 [TaskType.HangPass] = {{TriggerEventType.HangPass, f("id")}},
250 [TaskType.RoleLevelUp] = {{TriggerEventType.LevelUp, f("level")}}, 251 [TaskType.RoleLevelUp] = {{TriggerEventType.LevelUp, f("level")}},
251 [TaskType.TowerPass] = {{TriggerEventType.TowerPass, f("level")}}, 252 [TaskType.TowerPass] = {{TriggerEventType.TowerPass, f("level")}},
252 - [TaskType.AdvPass] = {{TriggerEventType.AdvPass, f("id")}}, 253 + [TaskType.AdvPassFirst] = {{TriggerEventType.AdvPass, f("id")}},
253 [TaskType.AddHero] = {{TriggerEventType.AddNewHero, f("heroType")}, {TriggerEventType.SSRCount, f("ssrCount")}}, 254 [TaskType.AddHero] = {{TriggerEventType.AddNewHero, f("heroType")}, {TriggerEventType.SSRCount, f("ssrCount")}},
254 } 255 }
255 } 256 }
@@ -886,4 +887,4 @@ function RoleTask.bind(Role) @@ -886,4 +887,4 @@ function RoleTask.bind(Role)
886 887
887 end 888 end
888 889
889 -return RoleTask  
890 \ No newline at end of file 890 \ No newline at end of file
  891 +return RoleTask
src/models/RoleTimeReset.lua
@@ -23,6 +23,11 @@ ResetFunc[&quot;CrossDay&quot;] = function(self, notify, response, now) @@ -23,6 +23,11 @@ ResetFunc[&quot;CrossDay&quot;] = function(self, notify, response, now)
23 end 23 end
24 self:setProperty("advMine", advMine) 24 self:setProperty("advMine", advMine)
25 25
  26 + local ltime = self:getProperty("ltime")
  27 + if isCrossMonth(ltime, now) then
  28 + self.storeData:resetStoreReored(3) --商店跨月重置 time_reset表关联id
  29 + end
  30 +
26 response.dTask = {} 31 response.dTask = {}
27 response.advSup = self:getProperty("advSup") 32 response.advSup = self:getProperty("advSup")
28 self:log("onLogin") 33 self:log("onLogin")
@@ -43,13 +48,6 @@ ResetFunc[&quot;CrossWeek&quot;] = function(self, notify, response) @@ -43,13 +48,6 @@ ResetFunc[&quot;CrossWeek&quot;] = function(self, notify, response)
43 response.dinerS = {} 48 response.dinerS = {}
44 end 49 end
45 50
46 -ResetFunc["CrossMonth"] = function(self, notify, response)  
47 - local ltime = self:getProperty("ltime")  
48 - if isCrossMonth(ltime, skynet.timex()) then  
49 - self.storeData:resetStoreReored(3) --商店跨月重置 time_reset表关联id  
50 - end  
51 -end  
52 -  
53 51
54 ResetFunc["DinerRank"] = function(self, notify, response) 52 ResetFunc["DinerRank"] = function(self, notify, response)
55 self.dinerData:rankResetData(notify) 53 self.dinerData:rankResetData(notify)
@@ -89,13 +87,10 @@ function Role:updateTimeReset(now, notify) @@ -89,13 +87,10 @@ function Role:updateTimeReset(now, notify)
89 ResetFunc[funcName](self, notify, response, now) 87 ResetFunc[funcName](self, notify, response, now)
90 resetMode[funcName] = true 88 resetMode[funcName] = true
91 end 89 end
92 - if needResetId[resetId] then  
93 - -- 充值商城购买记录  
94 - self.storeData:resetStoreReored(resetId)  
95 - end  
96 end 90 end
97 91
98 for resetId, round in pairs(needResetId) do 92 for resetId, round in pairs(needResetId) do
  93 + self.storeData:resetStoreReored(resetId)
99 timeReset[resetId] = round 94 timeReset[resetId] = round
100 end 95 end
101 self:setProperties({timeReset = timeReset, ltime = now}) 96 self:setProperties({timeReset = timeReset, ltime = now})
src/utils/CommonFunc.lua
@@ -100,7 +100,7 @@ end @@ -100,7 +100,7 @@ end
100 -- 判断是不是同一个月 100 -- 判断是不是同一个月
101 function isCrossMonth(target, now) 101 function isCrossMonth(target, now)
102 now = now or skynet.timex() 102 now = now or skynet.timex()
103 - local tarTm = os.date("*t", target) 103 + local tarTm = os.date("*t", target - RESET_TIME * 3600)
104 local nowTm = os.date("*t", now - RESET_TIME * 3600) 104 local nowTm = os.date("*t", now - RESET_TIME * 3600)
105 if tarTm.year == nowTm.year and tarTm.month == nowTm.month then 105 if tarTm.year == nowTm.year and tarTm.month == nowTm.month then
106 return false 106 return false