Commit fb8917785ba13ed8feb3693fd8bc86f593661417

Authored by liuzujun
2 parents dfa9ae5e 219e9654

fix confict

@@ -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, --高级竞技场
@@ -225,6 +224,7 @@ AdvBackEventType = { @@ -225,6 +224,7 @@ AdvBackEventType = {
225 LinkChooseOver = 26, -- 连锁事件结束 224 LinkChooseOver = 26, -- 连锁事件结束
226 BuffEffect = 27, -- buff 效果 225 BuffEffect = 27, -- buff 效果
227 PassiveEffect = 28, -- 被动 效果 226 PassiveEffect = 28, -- 被动 效果
  227 + ChooseDice = 29, -- 选择点随机效果
228 } 228 }
229 229
230 AdvScoreType = { 230 AdvScoreType = {
@@ -326,6 +326,7 @@ MailId = { @@ -326,6 +326,7 @@ MailId = {
326 PayBackAward = 242, 326 PayBackAward = 242,
327 CBBackAward = 243, 327 CBBackAward = 243,
328 CBBackAward2 = 244, 328 CBBackAward2 = 244,
  329 + ActivityPoolRet = 280,
329 } 330 }
330 331
331 TriggerEventType = { 332 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 -- 跨天登陆事件
@@ -607,9 +608,9 @@ function _M.openTimeBoxRpc(agent, data) @@ -607,9 +608,9 @@ function _M.openTimeBoxRpc(agent, data)
607 local itemData = csvdb["itemCsv"][itemId] 608 local itemData = csvdb["itemCsv"][itemId]
608 local unitTime = globalCsv.box_key_time[itemId] * 60 609 local unitTime = globalCsv.box_key_time[itemId] * 60
609 if quick then 610 if quick then
610 - stopTime = time + globalCsv.box_productLine_time * 3600 611 + stopTime = nowTime + quick
611 local cost_pre = globalCsv.box_timeOpen_diamond:toArray(true, "=") 612 local cost_pre = globalCsv.box_timeOpen_diamond:toArray(true, "=")
612 - local costKey = math.ceil((stopTime - nowTime) / (cost_pre[1] * 60)) * cost_pre[2] 613 + local costKey = math.ceil(quick / (cost_pre[1] * 60)) * cost_pre[2]
613 if not role:checkItemEnough({[ItemId.Diamond] = costKey}) then return 5 end 614 if not role:checkItemEnough({[ItemId.Diamond] = costKey}) then return 5 end
614 role:costItems({[ItemId.Diamond] = costKey}, {log = {desc = "openTimeBox", int1 = slot, int2 = oper}}) 615 role:costItems({[ItemId.Diamond] = costKey}, {log = {desc = "openTimeBox", int1 = slot, int2 = oper}})
615 else 616 else
@@ -1055,6 +1056,10 @@ function _M.chatRpc(agent, data) @@ -1055,6 +1056,10 @@ function _M.chatRpc(agent, data)
1055 result = 1 1056 result = 1
1056 return 1057 return
1057 end 1058 end
  1059 + if role:getProperty("level") < (globalCsv.chat_level or 15) then
  1060 + result = 3
  1061 + return
  1062 + end
1058 1063
1059 role._worldChatLimit = role._worldChatLimit or {start = 0, count = 0, canSayt = 0} --第一次开始说话时间 从第一次说话次数 能说话的时间 1064 role._worldChatLimit = role._worldChatLimit or {start = 0, count = 0, canSayt = 0} --第一次开始说话时间 从第一次说话次数 能说话的时间
1060 1065
@@ -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
@@ -1281,24 +1286,22 @@ local function clickMonster(self, room, block, params) @@ -1281,24 +1286,22 @@ local function clickMonster(self, room, block, params)
1281 return true 1286 return true
1282 end 1287 end
1283 1288
1284 -local function chooseCommon(self, room, block, chooseData, choose, tag)  
1285 - if not choose then return end  
1286 - if not chooseData or not chooseData["button".. choose .."cond"] then return end  
1287 1289
1288 - local conds = chooseData["button".. choose .."cond"]:toTableArray(true) 1290 +local function checkChooseCondFunc(self, condStr, room, block, tag, chooseData)
  1291 + chooseData = chooseData or {}
1289 local checkCond = { 1292 local checkCond = {
1290 -- 没有条件 1293 -- 没有条件
1291 [0] = function() 1294 [0] = function()
1292 return true 1295 return true
1293 end, 1296 end,
1294 -- 拥有道具 1297 -- 拥有道具
1295 - [1] = function(_, itemId, count) 1298 + [1] = function(itemId, count)
1296 if self:cost({[itemId] = count}, {log = {desc = "chooseEvent", key1 = tag, int1 = chooseData.id}}, true) then 1299 if self:cost({[itemId] = count}, {log = {desc = "chooseEvent", key1 = tag, int1 = chooseData.id}}, true) then
1297 return true 1300 return true
1298 end 1301 end
1299 end, 1302 end,
1300 -- xx角色(todo 队长) 1303 -- xx角色(todo 队长)
1301 - [2] = function(_, heroType) 1304 + [2] = function(heroType)
1302 for slot, heroId in pairs(self.owner:getProperty("advTeam").heros) do 1305 for slot, heroId in pairs(self.owner:getProperty("advTeam").heros) do
1303 local hero = self.owner.heros[heroId] 1306 local hero = self.owner.heros[heroId]
1304 if hero and hero:getProperty("type") == heroType then 1307 if hero and hero:getProperty("type") == heroType then
@@ -1318,38 +1321,38 @@ local function chooseCommon(self, room, block, chooseData, choose, tag) @@ -1318,38 +1321,38 @@ local function chooseCommon(self, room, block, chooseData, choose, tag)
1318 return true 1321 return true
1319 end, 1322 end,
1320 --制定属性 1323 --制定属性
1321 - [4] = function(_, attrType, value) 1324 + [4] = function(attrType, value)
1322 if (self.battle.player[AttsEnumEx[attrType]] or 0) >= value then 1325 if (self.battle.player[AttsEnumEx[attrType]] or 0) >= value then
1323 return true 1326 return true
1324 end 1327 end
1325 end, 1328 end,
1326 -- 提交一个物品 1329 -- 提交一个物品
1327 - [5] = function (_, itemId, count) 1330 + [5] = function (itemId, count)
1328 if self:cost({[itemId] = count}, {log = {desc = "chooseEvent", key1 = tag, int1 = chooseData.id}}) then 1331 if self:cost({[itemId] = count}, {log = {desc = "chooseEvent", key1 = tag, int1 = chooseData.id}}) then
1329 self:backCost({[itemId] = count}) 1332 self:backCost({[itemId] = count})
1330 return true 1333 return true
1331 end 1334 end
1332 end, 1335 end,
1333 -- sp 到达指定值 1336 -- sp 到达指定值
1334 - [6] = function(_, value) 1337 + [6] = function(value)
1335 if self.battle.player.sp >= value then 1338 if self.battle.player.sp >= value then
1336 self.battle.player:changeSp(-value) 1339 self.battle.player:changeSp(-value)
1337 return true 1340 return true
1338 end 1341 end
1339 end, 1342 end,
1340 --7=拥有指定buff指定层数 1343 --7=拥有指定buff指定层数
1341 - [7] = function(_, buffId, layer) 1344 + [7] = function(buffId, layer)
1342 local buff = self.battle.player:getBuffById(buffId) 1345 local buff = self.battle.player:getBuffById(buffId)
1343 if buff and buff:getLayer() >= layer then 1346 if buff and buff:getLayer() >= layer then
1344 return true 1347 return true
1345 end 1348 end
1346 end, 1349 end,
1347 --8=拥有x神器 1350 --8=拥有x神器
1348 - [8] = function(_, artifactId) 1351 + [8] = function(artifactId)
1349 return self:isHaveArtifact(artifactId) 1352 return self:isHaveArtifact(artifactId)
1350 end, 1353 end,
1351 -- 9 = 生命值大于x% 1354 -- 9 = 生命值大于x%
1352 - [9] = function (_, value) 1355 + [9] = function (value)
1353 local cost = value / 100 * self.battle.player.hpMax 1356 local cost = value / 100 * self.battle.player.hpMax
1354 if self.battle.player.hp > cost then 1357 if self.battle.player.hp > cost then
1355 self.battle.player:hurt(cost, nil, {hurtType = 6, buffId = -1}) 1358 self.battle.player:hurt(cost, nil, {hurtType = 6, buffId = -1})
@@ -1357,11 +1360,11 @@ local function chooseCommon(self, room, block, chooseData, choose, tag) @@ -1357,11 +1360,11 @@ local function chooseCommon(self, room, block, chooseData, choose, tag)
1357 end 1360 end
1358 end, 1361 end,
1359 -- 10 = 未获得x神器 1362 -- 10 = 未获得x神器
1360 - [10] = function(_, artifactId) 1363 + [10] = function(artifactId)
1361 return not self:isHaveArtifact(artifactId) 1364 return not self:isHaveArtifact(artifactId)
1362 end, 1365 end,
1363 -- 11 = 地图上没有指定id 的怪 1366 -- 11 = 地图上没有指定id 的怪
1364 - [11] = function(_, monsterId, size) 1367 + [11] = function(monsterId, size)
1365 if not size or size == 0 then 1368 if not size or size == 0 then
1366 for _, room in pairs(self:getCurMap().rooms) do 1369 for _, room in pairs(self:getCurMap().rooms) do
1367 for _, block in pairs(room.blocks) do 1370 for _, block in pairs(room.blocks) do
@@ -1386,7 +1389,7 @@ local function chooseCommon(self, room, block, chooseData, choose, tag) @@ -1386,7 +1389,7 @@ local function chooseCommon(self, room, block, chooseData, choose, tag)
1386 return true 1389 return true
1387 end, 1390 end,
1388 -- 12 = 地图上没有指定id 的建筑 1391 -- 12 = 地图上没有指定id 的建筑
1389 - [12] = function(_, buildId, size) 1392 + [12] = function(buildId, size)
1390 if not size or size == 0 then 1393 if not size or size == 0 then
1391 for _, room in pairs(self:getCurMap().rooms) do 1394 for _, room in pairs(self:getCurMap().rooms) do
1392 for _, block in pairs(room.blocks) do 1395 for _, block in pairs(room.blocks) do
@@ -1411,7 +1414,7 @@ local function chooseCommon(self, room, block, chooseData, choose, tag) @@ -1411,7 +1414,7 @@ local function chooseCommon(self, room, block, chooseData, choose, tag)
1411 return true 1414 return true
1412 end, 1415 end,
1413 -- 13 = 地图上没有指定的 选择点 1416 -- 13 = 地图上没有指定的 选择点
1414 - [13] = function(_, chooseId, size) 1417 + [13] = function(chooseId, size)
1415 if not size or size == 0 then 1418 if not size or size == 0 then
1416 for _, room in pairs(self:getCurMap().rooms) do 1419 for _, room in pairs(self:getCurMap().rooms) do
1417 for _, block in pairs(room.blocks) do 1420 for _, block in pairs(room.blocks) do
@@ -1436,138 +1439,175 @@ local function chooseCommon(self, room, block, chooseData, choose, tag) @@ -1436,138 +1439,175 @@ local function chooseCommon(self, room, block, chooseData, choose, tag)
1436 return true 1439 return true
1437 end, 1440 end,
1438 } 1441 }
1439 - for _, cond in ipairs(conds) do 1442 +
  1443 + local status, count = true, 0
  1444 + for _, cond in ipairs(condStr:toTableArray(true)) do
1440 assert(not cond[1] or checkCond[cond[1]], "error cond, event_" .. (tag or "choose") .. "Csv id :" .. block.event.id) 1445 assert(not cond[1] or checkCond[cond[1]], "error cond, event_" .. (tag or "choose") .. "Csv id :" .. block.event.id)
1441 - if cond[1] and not checkCond[cond[1]](table.unpack(cond)) then return end 1446 + if not checkCond[cond[1]](select(2, table.unpack(cond))) then
  1447 + status = false
  1448 + else
  1449 + count = count + 1
  1450 + end
1442 end 1451 end
1443 -  
1444 - local clearBlock = chooseData.keep ~= 1  
1445 - local effects = chooseData["button".. choose .."effect"]:toTableArray(true)  
1446 - for _, effect in ipairs(effects) do  
1447 - local doEffect = {  
1448 - [1] = function() -- 获得某道具N个  
1449 - local count = effect[3] or 1  
1450 - local reward = {}  
1451 - for i = 1, count do  
1452 - local dropData = csvdb["event_dropCsv"][effect[2]]  
1453 - if dropData then  
1454 - local item = dropData["range"]:randWeight(true)  
1455 - reward[item[1]] = (reward[item[1]] or 0) + item[2]  
1456 - else  
1457 - skynet.error(string.format("[ERROR]: event_dropCsv no id %s in %s id: %s", effect[2], tag, chooseData.id))  
1458 - end  
1459 - end  
1460 - self:award(reward, {log = {desc = "chooseEvent", key1 = tag, int1 = chooseData.id}}, {roomId = room.roomId, blockId = block.blockId})  
1461 - end,  
1462 - [2] = function() --获得冒险buff  
1463 - local layer = effect[3] or 1  
1464 - for i = 1, layer do  
1465 - self.battle.player:addBuff(effect[2])  
1466 - end  
1467 - end,  
1468 - [3] = function() --发现怪物  
1469 - self:getCurMap():addNewMonsterRand(effect[2], {room, block})  
1470 - self:pushBackEvent(AdvBackEventType.Monster, {id = effect[2]})  
1471 - clearBlock = false  
1472 - end,  
1473 - [4] = function() --无事发生  
1474 - end,  
1475 - [5] = function() --5=属性枚举=数值;直接增加玩家属性  
1476 - local attr  
1477 - if effect[3] == 0 then  
1478 - attr = "sp" 1452 + return status, count
  1453 +end
  1454 +
  1455 +local function doChooseEffect(self, effectStr, room, block, tag, chooseData)
  1456 + chooseData = chooseData or {}
  1457 + local clearBlock = true
  1458 + local doEffect = {
  1459 + [1] = function(dropId, count) -- 获得某道具N个
  1460 + count = count or 1
  1461 + local reward = {}
  1462 + for i = 1, count do
  1463 + local dropData = csvdb["event_dropCsv"][dropId]
  1464 + if dropData then
  1465 + local item = dropData["range"]:randWeight(true)
  1466 + reward[item[1]] = (reward[item[1]] or 0) + item[2]
1479 else 1467 else
1480 - attr = AttsEnumEx[effect[3]]  
1481 - if not AdvAttsEnum[attr] then return end 1468 + skynet.error(string.format("[ERROR]: event_dropCsv no id %s in %s id: %s", dropId, tag, chooseData.id))
1482 end 1469 end
1483 - self.battle.player:addBaseAttr(attr, effect[4], effect[2])  
1484 - end,  
1485 - [6] = function() -- 商店  
1486 - block:updateEvent({  
1487 - etype = AdvEventType.Trader,  
1488 - id = effect[2]  
1489 - })  
1490 - self:pushBackEvent(AdvBackEventType.Trader, {id = effect[2]})  
1491 - clearBlock = false  
1492 - end,  
1493 - [7] = function() -- 建筑  
1494 - block:updateEvent({  
1495 - etype = AdvEventType.Build,  
1496 - id = effect[2]  
1497 - })  
1498 - clearBlock = false  
1499 - end,  
1500 - [8] = function() -- 选择  
1501 - block:updateEvent({  
1502 - etype = AdvEventType.Choose,  
1503 - id = effect[2]  
1504 - })  
1505 - clearBlock = false  
1506 - end,  
1507 - [9] = function() -- click  
1508 - block:updateEvent({  
1509 - etype = AdvEventType.Click,  
1510 - id = effect[2]  
1511 - })  
1512 - clearBlock = false  
1513 - end,  
1514 - [10] = function() -- 陷阱  
1515 - block:updateEvent({  
1516 - etype = AdvEventType.Trap,  
1517 - id = effect[2]  
1518 - })  
1519 - clearBlock = false  
1520 - end,  
1521 - [11] = function() -- 获得神器  
1522 - self:waitChooseArtifact() --等待获取神器  
1523 - end,  
1524 - [12] = function()  
1525 - -- buffId  
1526 - local targers = self.battle.player:getTeam(2, nil, nil, true)  
1527 - for _, target in pairs(targers) do  
1528 - target:addBuff(effect[2]) 1470 + end
  1471 + self:award(reward, {log = {desc = "chooseEvent", key1 = tag, int1 = chooseData.id}}, {roomId = room.roomId, blockId = block.blockId})
  1472 + end,
  1473 + [2] = function(buffId, layer) --获得冒险buff
  1474 + self.battle.player:addBuff(buffId, nil, layer or 1)
  1475 + end,
  1476 + [3] = function(id) --发现怪物
  1477 + self:getCurMap():addNewMonsterRand(id, {room, block})
  1478 + self:pushBackEvent(AdvBackEventType.Monster, {id = id})
  1479 + clearBlock = false
  1480 + end,
  1481 + [4] = function() --无事发生
  1482 + end,
  1483 + [5] = function(addType, attrType, value) --5=属性枚举=数值;直接增加玩家属性
  1484 + local attr
  1485 + if attrType == 0 then
  1486 + attr = "sp"
  1487 + else
  1488 + attr = AttsEnumEx[attrType]
  1489 + if not AdvAttsEnum[attr] then return end
  1490 + end
  1491 + self.battle.player:addBaseAttr(attr, value, addType)
  1492 + end,
  1493 + [6] = function(id) -- 商店
  1494 + block:updateEvent({
  1495 + etype = AdvEventType.Trader,
  1496 + id = id
  1497 + })
  1498 + self:pushBackEvent(AdvBackEventType.Trader, {id = id})
  1499 + clearBlock = false
  1500 + end,
  1501 + [7] = function(id) -- 建筑
  1502 + block:updateEvent({
  1503 + etype = AdvEventType.Build,
  1504 + id = id
  1505 + })
  1506 + clearBlock = false
  1507 + end,
  1508 + [8] = function(id) -- 选择
  1509 + block:updateEvent({
  1510 + etype = AdvEventType.Choose,
  1511 + id = id
  1512 + })
  1513 + clearBlock = false
  1514 + end,
  1515 + [9] = function(id) -- click
  1516 + block:updateEvent({
  1517 + etype = AdvEventType.Click,
  1518 + id = id
  1519 + })
  1520 + clearBlock = false
  1521 + end,
  1522 + [10] = function(id) -- 陷阱
  1523 + block:updateEvent({
  1524 + etype = AdvEventType.Trap,
  1525 + id = id
  1526 + })
  1527 + clearBlock = false
  1528 + end,
  1529 + [11] = function() -- 获得神器
  1530 + self:waitChooseArtifact() --等待获取神器
  1531 + end,
  1532 + [12] = function(id)
  1533 + -- buffId
  1534 + local targers = self.battle.player:getTeam(2, nil, nil, true)
  1535 + for _, target in pairs(targers) do
  1536 + target:addBuff(id)
  1537 + end
  1538 + end,
  1539 + [13] = function() -- 显示地图
  1540 + self:getCurMap():showMap()
  1541 + self:backMapShow()
  1542 + end,
  1543 + [14] = function(eventType, eventId, count, stage) -- 指定地块召唤 指定类型的id
  1544 + local change = self:getCurMap():layEventToStage(eventType, eventId, count, stage)
  1545 + for _, one in ipairs(change) do
  1546 + if one[1].roomId == room.roomId and one[2].blockId == block.blockId then
  1547 + clearBlock = false
  1548 + else
  1549 + self:backBlockChange(one[1].roomId, one[2].blockId)
1529 end 1550 end
1530 - end,  
1531 - [13] = function() -- 显示地图  
1532 - self:getCurMap():showMap()  
1533 - self:backMapShow()  
1534 - end,  
1535 - [14] = function() -- 指定地块召唤 指定类型的id  
1536 - local change = self:getCurMap():layEventToStage(effect[2], effect[3], effect[4], effect[5])  
1537 - for _, one in ipairs(change) do  
1538 - if one[1].roomId == room.roomId and one[2].blockId == block.blockId then  
1539 - clearBlock = false  
1540 - else  
1541 - self:backBlockChange(one[1].roomId, one[2].blockId)  
1542 - end 1551 + end
  1552 + end,
  1553 + [15] = function(eventType, eventId, count) -- 移除指定事件
  1554 + local change = self:getCurMap():clearEventById(eventType, eventId, count)
  1555 + for _, one in ipairs(change) do
  1556 + if one[1].roomId == room.roomId and one[2].blockId == block.blockId then
  1557 + clearBlock = false
  1558 + else
  1559 + self:backBlockChange(one[1].roomId, one[2].blockId)
1543 end 1560 end
1544 - end,  
1545 - [15] = function() -- 移除指定事件  
1546 - local change = self:getCurMap():clearEventById(effect[2], effect[3], effect[4])  
1547 - for _, one in ipairs(change) do  
1548 - if one[1].roomId == room.roomId and one[2].blockId == block.blockId then  
1549 - clearBlock = false  
1550 - else  
1551 - self:backBlockChange(one[1].roomId, one[2].blockId)  
1552 - end 1561 + end
  1562 + end,
  1563 + [16] = function(eventTypeF, eventIdF, eventTypeT, eventIdT, count) -- 指定事件转移
  1564 + local change = self:getCurMap():eventChangeToOther(eventTypeF, eventIdF, eventTypeT, eventIdT, count)
  1565 + for _, one in ipairs(change) do
  1566 + if one[1].roomId == room.roomId and one[2].blockId == block.blockId then
  1567 + clearBlock = false
  1568 + else
  1569 + self:backBlockChange(one[1].roomId, one[2].blockId)
1553 end 1570 end
1554 - end,  
1555 - [16] = function() -- 指定事件转移  
1556 - local change = self:getCurMap():eventChangeToOther(effect[2], effect[3], effect[4], effect[5], effect[6])  
1557 - for _, one in ipairs(change) do  
1558 - if one[1].roomId == room.roomId and one[2].blockId == block.blockId then  
1559 - clearBlock = false  
1560 - else  
1561 - self:backBlockChange(one[1].roomId, one[2].blockId)  
1562 - end 1571 + end
  1572 + end,
  1573 + [17] = function(eventId)
  1574 + local diceCsv = csvdb["event_choose_diceCsv"][eventId]
  1575 + if not diceCsv then return end
  1576 + local weight = math.randomInt(1, 12)
  1577 + local sum = 0
  1578 + local needEffect = nil
  1579 + local pool = {}
  1580 + for _, v in ipairs(diceCsv) do
  1581 + local status, okCount = checkChooseCondFunc(self, v.cond, room, block, tag .. " dice", chooseData)
  1582 + pool[#pool + 1] = v.weight + okCount * v.weightUp
  1583 + sum = sum + pool[#pool + 1]
  1584 + if sum >= weight and not needEffect then
  1585 + -- 达成效果
  1586 + needEffect = v.effect
1563 end 1587 end
1564 - end,  
1565 - } 1588 + end
  1589 + if needEffect then
  1590 + self:pushBackEvent(AdvBackEventType.ChooseDice, {id = eventId, pool = pool, result = weight})
  1591 + clearBlock = doChooseEffect(self, needEffect, room, block, tag .. " dice", chooseData)
  1592 + end
  1593 + end,
  1594 + }
  1595 +
  1596 + for _, effect in ipairs(effectStr:toTableArray(true)) do
1566 assert(doEffect[effect[1]], "error effect, event_" .. (tag or "choose") .. "Csv id :" .. (block.event and block.event.id or 0) .. "effect " .. effect[1]) 1597 assert(doEffect[effect[1]], "error effect, event_" .. (tag or "choose") .. "Csv id :" .. (block.event and block.event.id or 0) .. "effect " .. effect[1])
1567 - doEffect[effect[1]]() 1598 + doEffect[effect[1]](select(2, table.unpack(effect)))
1568 end 1599 end
1569 - self:scoreChange(AdvScoreType.Event, chooseData.advScore) --增加加分 1600 + return clearBlock
  1601 +end
1570 1602
  1603 +
  1604 +local function chooseCommon(self, room, block, chooseData, choose, tag)
  1605 + if not choose then return end
  1606 + if not chooseData or not chooseData["button".. choose .."cond"] then return end
  1607 + if not checkChooseCondFunc(self, chooseData["button".. choose .."cond"], room, block, tag, chooseData) then return end
  1608 + local clearBlock = chooseData.keep ~= 1
  1609 + clearBlock = clearBlock and doChooseEffect(self, chooseData["button".. choose .."effect"], room, block, tag, chooseData)
  1610 + self:scoreChange(AdvScoreType.Event, chooseData.advScore) --增加加分
1571 return true, clearBlock 1611 return true, clearBlock
1572 end 1612 end
1573 1613
@@ -1821,9 +1861,6 @@ function Adv:clickBlock(roomId, blockId, params) @@ -1821,9 +1861,6 @@ function Adv:clickBlock(roomId, blockId, params)
1821 if not block.isOpen then 1861 if not block.isOpen then
1822 if self.isRelay or checkAroundBlocks() then --开放 1862 if self.isRelay or checkAroundBlocks() then --开放
1823 self:getCurMap():openBlock(roomId, blockId, true, true) 1863 self:getCurMap():openBlock(roomId, blockId, true, true)
1824 - if self.isRelay and self:getCurMap():isAllOpen() then -- 发放翻开的奖励  
1825 - self:passAdvRelay()  
1826 - end  
1827 status = true 1864 status = true
1828 end 1865 end
1829 else 1866 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
@@ -656,6 +656,12 @@ activityFunc[Activity.ActivityType.ActHeroPool] = { @@ -656,6 +656,12 @@ activityFunc[Activity.ActivityType.ActHeroPool] = {
656 local actData = self:getActData(actType) 656 local actData = self:getActData(actType)
657 local cfg = csvdb["activity_ctrlCsv"][actId] 657 local cfg = csvdb["activity_ctrlCsv"][actId]
658 if not cfg then return end 658 if not cfg then return end
  659 + -- 保底次数转换成万能碎片
  660 + --local count = math.ceil(((actData[cfg.condition] or 0) / 100) * 60)
  661 + --if count > 0 then
  662 + -- local gift = {[723] = count}
  663 + -- self.owner:sendMail(MailId.ActivityPoolRet, nil, gift, {})
  664 + --end
659 actData[cfg.condition] = nil 665 actData[cfg.condition] = nil
660 self:updateActData(actType, actData, not notify) 666 self:updateActData(actType, actData, not notify)
661 end, 667 end,
src/models/RolePlugin.lua
@@ -849,9 +849,16 @@ function RolePlugin.bind(Role) @@ -849,9 +849,16 @@ function RolePlugin.bind(Role)
849 return runeSet 849 return runeSet
850 end 850 end
851 851
852 - function Role:getAdvData() 852 + function Role:getAdvData(notNotify)
853 if not self.advData then 853 if not self.advData then
854 self.advData = require("adv.Adv").new(self) 854 self.advData = require("adv.Adv").new(self)
  855 + local status, err = pcall(function()
  856 + self.advData:initByInfo()
  857 + end)
  858 + if not status then
  859 + self.advData:forceOver(notNotify, true)
  860 + skynet.error("getAdvData error adv initByInfo " .. err)
  861 + end
855 end 862 end
856 return self.advData 863 return self.advData
857 end 864 end
@@ -1678,8 +1685,34 @@ function RolePlugin.bind(Role) @@ -1678,8 +1685,34 @@ function RolePlugin.bind(Role)
1678 self:updateProperty({field = "redp", value = redp}) 1685 self:updateProperty({field = "redp", value = redp})
1679 end 1686 end
1680 1687
  1688 + -- 网页支付获取订单号
  1689 + function Role:getPurchaseOrderByPlatform(params)
  1690 + local checkPlatform = {
  1691 + ["mycard"] = "mycard_product_id",
  1692 + }
  1693 + local pidField = checkPlatform[params.payMode or ""]
  1694 + if not pidField or not params.product_id or params.product_id == "" then
  1695 + return "no product"
  1696 + end
  1697 +
  1698 + for k , v in pairs(csvdb["shop_rechargeCsv"]) do
  1699 + if not v[pidField] then return "no product" end
  1700 + if v[pidField] == params.product_id then
  1701 + if v.rmb ~= params.money then
  1702 + return "error money"
  1703 + end
  1704 + -- 发现需要的id
  1705 + local partnerOrderId = self:getPurchaseOrder(k, params.transactionId)
  1706 + if partnerOrderId == "" then
  1707 + return "no product"
  1708 + end
  1709 + return json.encode({order = partnerOrderId})
  1710 + end
  1711 + end
  1712 + end
  1713 +
1681 -- 获取充值订单号 1714 -- 获取充值订单号
1682 - function Role:getPurchaseOrder(rechargeId) 1715 + function Role:getPurchaseOrder(rechargeId, transactionId)
1683 local roleId = self:getProperty("id") 1716 local roleId = self:getProperty("id")
1684 local rechargeData = csvdb["shop_rechargeCsv"][rechargeId] 1717 local rechargeData = csvdb["shop_rechargeCsv"][rechargeId]
1685 if not rechargeData then 1718 if not rechargeData then
@@ -1716,6 +1749,7 @@ function RolePlugin.bind(Role) @@ -1716,6 +1749,7 @@ function RolePlugin.bind(Role)
1716 order = partnerOrderId, 1749 order = partnerOrderId,
1717 rechargeId = rechargeId, 1750 rechargeId = rechargeId,
1718 createTime = skynet.timex(), 1751 createTime = skynet.timex(),
  1752 + transactionId = transactionId,
1719 }) 1753 })
1720 order:create() 1754 order:create()
1721 -- 正在进行中的订单 缓存 1755 -- 正在进行中的订单 缓存
@@ -1794,6 +1828,7 @@ function RolePlugin.bind(Role) @@ -1794,6 +1828,7 @@ function RolePlugin.bind(Role)
1794 request.product_id = data.product_id 1828 request.product_id = data.product_id
1795 request.pay_time = data.pay_time 1829 request.pay_time = data.pay_time
1796 request.transactionId = data.order_no 1830 request.transactionId = data.order_no
  1831 + request.extension_info = data.extension_info
1797 ]] 1832 ]]
1798 function Role:handlePurchase(params) 1833 function Role:handlePurchase(params)
1799 local roleId = self:getProperty("id") 1834 local roleId = self:getProperty("id")
@@ -1824,6 +1859,10 @@ function RolePlugin.bind(Role) @@ -1824,6 +1859,10 @@ function RolePlugin.bind(Role)
1824 }) 1859 })
1825 1860
1826 if not status then 1861 if not status then
  1862 + if params.extension_info == "mycard_web" then
  1863 + -- todo 发邮件
  1864 + skynet.error("mycard_web " .. params.order)
  1865 + end
1827 SendPacket(actionCodes.Store_ayncPurchaseRpc, MsgPack.pack({ order = partnerOrderStr, 1866 SendPacket(actionCodes.Store_ayncPurchaseRpc, MsgPack.pack({ order = partnerOrderStr,
1828 result = "success", reward = reward})) 1867 result = "success", reward = reward}))
1829 end 1868 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
@@ -55,6 +55,7 @@ local TaskType = { @@ -55,6 +55,7 @@ local TaskType = {
55 AdvKillBoss = 415, -- 拾荒击杀boss 55 AdvKillBoss = 415, -- 拾荒击杀boss
56 AdvHangHeroCnt = 416, -- 拾荒人数 56 AdvHangHeroCnt = 416, -- 拾荒人数
57 AdvCostPower = 417, -- 消耗体力 57 AdvCostPower = 417, -- 消耗体力
  58 + AdvPassFirst = 418, -- 冒险首次通关 - id
58 59
59 --爬塔相关 60 --爬塔相关
60 TowerPass = 501, -- 爬塔通关 - level 61 TowerPass = 501, -- 爬塔通关 - level
@@ -254,7 +255,7 @@ local StoreListener = { @@ -254,7 +255,7 @@ local StoreListener = {
254 [TaskType.HangPass] = {{TriggerEventType.HangPass, f("id")}}, 255 [TaskType.HangPass] = {{TriggerEventType.HangPass, f("id")}},
255 [TaskType.RoleLevelUp] = {{TriggerEventType.LevelUp, f("level")}}, 256 [TaskType.RoleLevelUp] = {{TriggerEventType.LevelUp, f("level")}},
256 [TaskType.TowerPass] = {{TriggerEventType.TowerPass, f("level")}}, 257 [TaskType.TowerPass] = {{TriggerEventType.TowerPass, f("level")}},
257 - [TaskType.AdvPass] = {{TriggerEventType.AdvPass, f("id")}}, 258 + [TaskType.AdvPassFirst] = {{TriggerEventType.AdvPass, f("id")}},
258 [TaskType.AddHero] = {{TriggerEventType.AddNewHero, f("heroType")}, {TriggerEventType.SSRCount, f("ssrCount")}}, 259 [TaskType.AddHero] = {{TriggerEventType.AddNewHero, f("heroType")}, {TriggerEventType.SSRCount, f("ssrCount")}},
259 } 260 }
260 } 261 }
@@ -881,4 +882,4 @@ function RoleTask.bind(Role) @@ -881,4 +882,4 @@ function RoleTask.bind(Role)
881 882
882 end 883 end
883 884
884 -return RoleTask  
885 \ No newline at end of file 885 \ No newline at end of file
  886 +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")
@@ -45,13 +50,6 @@ ResetFunc[&quot;CrossWeek&quot;] = function(self, notify, response) @@ -45,13 +50,6 @@ ResetFunc[&quot;CrossWeek&quot;] = function(self, notify, response)
45 self.activity:refreshWeekData(notify) 50 self.activity:refreshWeekData(notify)
46 end 51 end
47 52
48 -ResetFunc["CrossMonth"] = function(self, notify, response)  
49 - local ltime = self:getProperty("ltime")  
50 - if isCrossMonth(ltime, skynet.timex()) then  
51 - self.storeData:resetStoreReored(3) --商店跨月重置 time_reset表关联id  
52 - end  
53 -end  
54 -  
55 53
56 ResetFunc["DinerRank"] = function(self, notify, response) 54 ResetFunc["DinerRank"] = function(self, notify, response)
57 self.dinerData:rankResetData(notify) 55 self.dinerData:rankResetData(notify)
@@ -91,13 +89,10 @@ function Role:updateTimeReset(now, notify) @@ -91,13 +89,10 @@ function Role:updateTimeReset(now, notify)
91 ResetFunc[funcName](self, notify, response, now) 89 ResetFunc[funcName](self, notify, response, now)
92 resetMode[funcName] = true 90 resetMode[funcName] = true
93 end 91 end
94 - if needResetId[resetId] then  
95 - -- 充值商城购买记录  
96 - self.storeData:resetStoreReored(resetId)  
97 - end  
98 end 92 end
99 93
100 for resetId, round in pairs(needResetId) do 94 for resetId, round in pairs(needResetId) do
  95 + self.storeData:resetStoreReored(resetId)
101 timeReset[resetId] = round 96 timeReset[resetId] = round
102 end 97 end
103 self:setProperties({timeReset = timeReset, ltime = now}) 98 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