Commit e5d884a51e91820ea967021d4255376a50a0a08b

Authored by liuzujun
2 parents ca8736e2 a6898231

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

* tr/bugfix:
  兑换活动上线检测是否需要刷新
  修复存在的冒险进不去的玩家
  兑换商店不刷新bug
  新增倍数
  bugfix
  同单号充值输出
src/GlobalVar.lua
... ... @@ -16,6 +16,7 @@ TIME_ZONE = math.floor(os.difftime(START_RESET_TIME_BASE, os.time(os.date("!*t",
16 16  
17 17 START_RESET_TIME = START_RESET_TIME_BASE - TIME_ZONE * 3600
18 18  
  19 +STRUCT_VERSION = 3 -- 数据结构版本
19 20  
20 21 MAX_ROLE_NUM = 1000000
21 22 -- 属性枚举
... ...
src/actions/AdvAction.lua
... ... @@ -962,6 +962,9 @@ function _M.roleFormatRpc(agent , data)
962 962 local index = msg.index -- 阵容索引
963 963 local title = msg.title -- 阵容名称
964 964 local team = {}
  965 +
  966 + if role:getAdvData():isRunning() then return 3 end
  967 +
965 968 for slot, heroId in pairs(msg.heros) do
966 969 if not role.heros[heroId] then
967 970 return 1
... ... @@ -1004,6 +1007,9 @@ function _M.selectTeamRpc(agent, data)
1004 1007 local role = agent.role
1005 1008 local msg = MsgPack.unpack(data)
1006 1009 local index = msg.index -- 阵容索引
  1010 +
  1011 + if role:getAdvData():isRunning() then return 1 end
  1012 +
1007 1013 local team = role:getAdvTeamFormat(index)
1008 1014 if not next(team) then return end
1009 1015 team["index"] = index
... ...
src/adv/Adv.lua
... ... @@ -420,7 +420,7 @@ function Adv:forceOver(notNotify)
420 420 reward[itemId] = math.ceil(count * globalCsv.adv_fail_reward_ratio / 100) -- 奖励相当于失败
421 421 end
422 422 end
423   - self.owner:award(reward, {log = {desc = "advOver", int1 = self.chapterId}})
  423 + self.owner:award(reward, {log = {desc = "advOver", int1 = self.chapterId}, notNotify = notNotify})
424 424  
425 425 self:clear()
426 426 self.owner:updateProperties({
... ... @@ -991,7 +991,7 @@ function Adv:award(gift, params, backRewardParams)
991 991  
992 992 local autoUse = {}
993 993 for itemId, count in pairs(tgift) do
994   - if count > 0 then
  994 + if count > 0 and self.battle.player then
995 995 local buffAdd = self.battle.player:getRewardChange(itemId)
996 996 count = math.floor(math.max(0, (count + buffAdd[0]) * (1 + buffAdd[1]))) --附加 buff 的影响
997 997 self:checkTask(Adv.TaskType.Item, count, itemId)
... ...
src/adv/AdvBlock.lua
... ... @@ -60,9 +60,9 @@ function Block:updateEvent(event, isInit)
60 60 end
61 61 self:randomEvent()
62 62 end
63   - self:quickDrop()
64 63  
65 64 if not isInit and self.isOpen then
  65 + self:quickDrop()
66 66 local newet = self:getEventType()
67 67 if oldet ~= newet then
68 68 local em = {}
... ...
src/adv/AdvPassive.lua
... ... @@ -532,7 +532,7 @@ function Passive:effect8(dropId)
532 532 end
533 533  
534 534 --9=直接获得item(可在结算触发时使用)
535   -function Passive:effect9(itemId, triggerPms, ratio, max)
  535 +function Passive:effect9(itemId, triggerPms, ratio, ratio2, max)
536 536 local cond = nil
537 537 if self.passiveData.value == 0 then
538 538 cond = triggerPms.score
... ... @@ -542,7 +542,7 @@ function Passive:effect9(itemId, triggerPms, ratio, max)
542 542 return
543 543 end
544 544 if not cond then return end
545   - self.owner.battle.adv:award({[itemId] = math.floor(math.max(0, math.min(max, cond / ratio)))}, {log = {desc = "passive", int1 = self.id}}, {roomId = self.owner.roomId, blockId = self.owner.blockId})
  545 + self.owner.battle.adv:award({[itemId] = math.floor(math.max(0, math.min(max, cond / ratio * ratio2)))}, {log = {desc = "passive", int1 = self.id}}, {roomId = self.owner.roomId, blockId = self.owner.blockId})
546 546 end
547 547  
548 548 --10=战斗额外掉落次数
... ...
1   -Subproject commit c820a5807bf24a342c40fcbb5def8a31899cc664
  1 +Subproject commit 34a04e7f3c37fcb088e46c2c5a05fe558cb67946
... ...
src/models/Activity.lua
... ... @@ -492,6 +492,9 @@ activityFunc[Activity.ActivityType.Exchange] = {
492 492 actData[actId] = {}
493 493 self:updateActData(actType, actData, not notify)
494 494 end,
  495 + ["login"] = function(self, actType, actId)
  496 + activityFunc[Activity.ActivityType.Sign]["crossDay"](self, actType, true, actId)
  497 + end,
495 498 ["crossDay"] = function(self, actType, notify, actId)
496 499 local actData = self:getActData(actType) or {}
497 500 local lastTs = actData["ts"] or 0
... ... @@ -500,14 +503,14 @@ activityFunc[Activity.ActivityType.Exchange] = {
500 503 if not cfg then return end
501 504 local refreshTimes = cfg.condition2:toArray(false, "=")
502 505 for i = 1, #refreshTimes do
503   - local rt = toUnixtime(refreshTimes[1]..string_format("%02x", RESET_TIME))
  506 + local rt = toUnixtime(refreshTimes[i]..string_format("%02x", RESET_TIME))
504 507 if timeNow >= rt and rt > lastTs then
505 508 lastTs = rt
506 509 actData = {}
507 510 end
508 511 end
509   - if next(actData) then
510   - actData["ts"] = lastTs
  512 + if not next(actData) then
  513 + actData["ts"] = timeNow
511 514 self:updateActData(actType, actData, not notify)
512 515 end
513 516 end,
... ...
src/models/Role.lua
... ... @@ -57,7 +57,7 @@ Role.schema = {
57 57 ltime = {"number", 0}, -- 最后登录时间
58 58 ctime = {"number", skynet.timex()}, -- 创建时间
59 59 ignoreMt = {"number", 0}, -- 忽略维护拦截
60   - sversion = {"number", globalCsv.StructVersion or 0}, -- 重整数据版本
  60 + sversion = {"number", STRUCT_VERSION or 0}, -- 重整数据版本
61 61 timeReset = {"table", {}}, --重置轮回记录
62 62 diamond = {"number", 0},
63 63 reDiamond = {"number", 0},
... ...
src/models/RoleChangeStruct.lua
... ... @@ -31,6 +31,7 @@ local awardGift = createVersionFunc(VersionType.Override ,function(role, params)
31 31 print("awardGift" .. " >>> " .. params)
32 32 end)
33 33  
  34 +
34 35 local bugFixSuduku = createVersionFunc(VersionType.DoOnly, function(role, params)
35 36 local sudoku = role:getProperty("sudoku")
36 37 local phase = sudoku[-1] or 1
... ... @@ -65,12 +66,21 @@ local bugFixRune = createVersionFunc(VersionType.DoOnly, function(role, params)
65 66 -- 补偿
66 67 end
67 68 end)
  69 +
  70 +-- 清除 player 消失 的冒险
  71 +local bugFixAdvPlayer = createVersionFunc(VersionType.Override, function(role, params)
  72 + if role:getAdvData():isRunning() and not role:getProperty("advTeam").player then
  73 + role:getAdvData():forceOver(true)
  74 + end
  75 +end)
  76 +
68 77 ---------------------版本方法 end ----------------------
69 78  
70 79 -- version 罗列start
71 80 local versionList = {} -- version 列表
72 81 versionList[1] = {bugFixSuduku, {}}
73 82 versionList[2] = {bugFixRune, {}}
  83 +versionList[3] = {bugFixAdvPlayer, {}}
74 84 -- versionList[2] = {clearActivity, {5, 7}}
75 85 -- versionList[3] = {changeStructF, "test1"}
76 86 -- versionList[4] = {changeStructF, "test2"}
... ... @@ -87,11 +97,11 @@ function RoleChangeStruct.bind(Role)
87 97  
88 98 function Role:changeStructVersion()
89 99 local curVersion = self:getProperty("sversion")
90   - if not globalCsv.StructVersion or curVersion >= globalCsv.StructVersion then return end
  100 + if not STRUCT_VERSION or curVersion >= STRUCT_VERSION then return end
91 101  
92 102 local jumpVersion = {}
93 103 local versionTemp = {}
94   - for version = curVersion + 1, globalCsv.StructVersion do
  104 + for version = curVersion + 1, STRUCT_VERSION do
95 105 local versionData = versionList[version]
96 106 if versionData then
97 107 if versionData[1].vType == VersionType.DoOnly then
... ... @@ -124,7 +134,7 @@ function RoleChangeStruct.bind(Role)
124 134 end
125 135 end
126 136  
127   - for version = curVersion + 1, globalCsv.StructVersion do
  137 + for version = curVersion + 1, STRUCT_VERSION do
128 138 if not jumpVersion[version] then
129 139 local versionData = versionList[version]
130 140 if versionData[1].vType == VersionType.DoOnly or versionData[1].vType == VersionType.Override then
... ... @@ -134,7 +144,7 @@ function RoleChangeStruct.bind(Role)
134 144 end
135 145 end
136 146 end
137   - self:setProperty("sversion", globalCsv.StructVersion)
  147 + self:setProperty("sversion", STRUCT_VERSION)
138 148 end
139 149  
140 150 end
... ...
src/models/RolePlugin.lua
... ... @@ -289,7 +289,7 @@ function RolePlugin.bind(Role)
289 289 print("addPlayExp no log ", debug.traceback())
290 290 end
291 291  
292   - self:updateProperties({level = level, exp = newExp})
  292 + self:updateProperties({level = level, exp = newExp}, params.notNotify)
293 293 self:changeCrossServerPvpSelfInfo("level")
294 294 end
295 295  
... ... @@ -421,7 +421,7 @@ function RolePlugin.bind(Role)
421 421 end
422 422  
423 423 if update then
424   - self:updateProperty({field = "boxL", value = boxL})
  424 + self:updateProperty({field = "boxL", value = boxL, notNotify = pms.notNotify})
425 425 end
426 426 end
427 427  
... ... @@ -1738,6 +1738,9 @@ function RolePlugin.bind(Role)
1738 1738 local dataSet = csvdb["shop_rechargeCsv"][rechargeId]
1739 1739  
1740 1740 if orderObject:getProperty("finishTime") > 0 then
  1741 + skynet.error(string.format("[recharge] is a finish order cpOrder: %s, platformOrder : %s, hadPlatformOrder: %s, id: %s, overTime : %s",
  1742 + partnerOrderStr, platformOrder, orderObject:getProperty("transactionId"), rechargeId, orderObject:getProperty("finishTime")
  1743 + ))
1741 1744 return false, "finsh"
1742 1745 end
1743 1746  
... ... @@ -1786,7 +1789,6 @@ function RolePlugin.bind(Role)
1786 1789 local roleId = self:getProperty("id")
1787 1790 local partnerOrderStr = params.order
1788 1791  
1789   -
1790 1792 local status, back = self:updatePurchaseOrder(partnerOrderStr, params.transactionId, "finsh")
1791 1793 if not status then
1792 1794 if back == "finsh" then
... ...