Commit f0272ad826b3eae490a633ecb35527355dececc6
Merge branch 'tr/bugfix' into tr/publish/preview
Showing
10 changed files
with
39 additions
and
17 deletions
Show diff stats
src/GlobalVar.lua
@@ -16,6 +16,7 @@ TIME_ZONE = math.floor(os.difftime(START_RESET_TIME_BASE, os.time(os.date("!*t", | @@ -16,6 +16,7 @@ TIME_ZONE = math.floor(os.difftime(START_RESET_TIME_BASE, os.time(os.date("!*t", | ||
16 | 16 | ||
17 | START_RESET_TIME = START_RESET_TIME_BASE - TIME_ZONE * 3600 | 17 | START_RESET_TIME = START_RESET_TIME_BASE - TIME_ZONE * 3600 |
18 | 18 | ||
19 | +STRUCT_VERSION = 3 -- 数据结构版本 | ||
19 | 20 | ||
20 | MAX_ROLE_NUM = 1000000 | 21 | MAX_ROLE_NUM = 1000000 |
21 | -- 属性枚举 | 22 | -- 属性枚举 |
src/actions/AdvAction.lua
@@ -963,6 +963,9 @@ function _M.roleFormatRpc(agent , data) | @@ -963,6 +963,9 @@ function _M.roleFormatRpc(agent , data) | ||
963 | local index = msg.index -- 阵容索引 | 963 | local index = msg.index -- 阵容索引 |
964 | local title = msg.title -- 阵容名称 | 964 | local title = msg.title -- 阵容名称 |
965 | local team = {} | 965 | local team = {} |
966 | + | ||
967 | + if role:getAdvData():isRunning() then return 3 end | ||
968 | + | ||
966 | for slot, heroId in pairs(msg.heros) do | 969 | for slot, heroId in pairs(msg.heros) do |
967 | if not role.heros[heroId] then | 970 | if not role.heros[heroId] then |
968 | return 1 | 971 | return 1 |
@@ -1005,6 +1008,9 @@ function _M.selectTeamRpc(agent, data) | @@ -1005,6 +1008,9 @@ function _M.selectTeamRpc(agent, data) | ||
1005 | local role = agent.role | 1008 | local role = agent.role |
1006 | local msg = MsgPack.unpack(data) | 1009 | local msg = MsgPack.unpack(data) |
1007 | local index = msg.index -- 阵容索引 | 1010 | local index = msg.index -- 阵容索引 |
1011 | + | ||
1012 | + if role:getAdvData():isRunning() then return 1 end | ||
1013 | + | ||
1008 | local team = role:getAdvTeamFormat(index) | 1014 | local team = role:getAdvTeamFormat(index) |
1009 | if not next(team) then return end | 1015 | if not next(team) then return end |
1010 | team["index"] = index | 1016 | team["index"] = index |
src/adv/Adv.lua
@@ -408,7 +408,7 @@ function Adv:forceOver(notNotify) | @@ -408,7 +408,7 @@ function Adv:forceOver(notNotify) | ||
408 | for itemId, count in pairs(reward) do | 408 | for itemId, count in pairs(reward) do |
409 | reward[itemId] = math.ceil(count * globalCsv.adv_fail_reward_ratio / 100) -- 奖励相当于失败 | 409 | reward[itemId] = math.ceil(count * globalCsv.adv_fail_reward_ratio / 100) -- 奖励相当于失败 |
410 | end | 410 | end |
411 | - self.owner:award(reward, {log = {desc = "advOver", int1 = self.chapterId}}) | 411 | + self.owner:award(reward, {log = {desc = "advOver", int1 = self.chapterId}, notNotify = notNotify}) |
412 | 412 | ||
413 | self:clear() | 413 | self:clear() |
414 | self.owner:updateProperties({ | 414 | self.owner:updateProperties({ |
@@ -971,7 +971,7 @@ function Adv:award(gift, params, backRewardParams) | @@ -971,7 +971,7 @@ function Adv:award(gift, params, backRewardParams) | ||
971 | 971 | ||
972 | local autoUse = {} | 972 | local autoUse = {} |
973 | for itemId, count in pairs(tgift) do | 973 | for itemId, count in pairs(tgift) do |
974 | - if count > 0 then | 974 | + if count > 0 and self.battle.player then |
975 | local buffAdd = self.battle.player:getRewardChange(itemId) | 975 | local buffAdd = self.battle.player:getRewardChange(itemId) |
976 | count = math.floor(math.max(0, (count + buffAdd[0]) * (1 + buffAdd[1]))) --附加 buff 的影响 | 976 | count = math.floor(math.max(0, (count + buffAdd[0]) * (1 + buffAdd[1]))) --附加 buff 的影响 |
977 | self:checkTask(Adv.TaskType.Item, count, itemId) | 977 | self:checkTask(Adv.TaskType.Item, count, itemId) |
src/adv/AdvBlock.lua
@@ -60,9 +60,9 @@ function Block:updateEvent(event, isInit) | @@ -60,9 +60,9 @@ function Block:updateEvent(event, isInit) | ||
60 | end | 60 | end |
61 | self:randomEvent() | 61 | self:randomEvent() |
62 | end | 62 | end |
63 | - self:quickDrop() | ||
64 | 63 | ||
65 | if not isInit and self.isOpen then | 64 | if not isInit and self.isOpen then |
65 | + self:quickDrop() | ||
66 | local newet = self:getEventType() | 66 | local newet = self:getEventType() |
67 | if oldet ~= newet then | 67 | if oldet ~= newet then |
68 | local em = {} | 68 | local em = {} |
src/adv/AdvPassive.lua
@@ -532,7 +532,7 @@ function Passive:effect8(dropId) | @@ -532,7 +532,7 @@ function Passive:effect8(dropId) | ||
532 | end | 532 | end |
533 | 533 | ||
534 | --9=直接获得item(可在结算触发时使用) | 534 | --9=直接获得item(可在结算触发时使用) |
535 | -function Passive:effect9(itemId, triggerPms, ratio, max) | 535 | +function Passive:effect9(itemId, triggerPms, ratio, ratio2, max) |
536 | local cond = nil | 536 | local cond = nil |
537 | if self.passiveData.value == 0 then | 537 | if self.passiveData.value == 0 then |
538 | cond = triggerPms.score | 538 | cond = triggerPms.score |
@@ -542,7 +542,7 @@ function Passive:effect9(itemId, triggerPms, ratio, max) | @@ -542,7 +542,7 @@ function Passive:effect9(itemId, triggerPms, ratio, max) | ||
542 | return | 542 | return |
543 | end | 543 | end |
544 | if not cond then return end | 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 | end | 546 | end |
547 | 547 | ||
548 | --10=战斗额外掉落次数 | 548 | --10=战斗额外掉落次数 |
src/models/Activity.lua
@@ -482,6 +482,9 @@ activityFunc[Activity.ActivityType.Exchange] = { | @@ -482,6 +482,9 @@ activityFunc[Activity.ActivityType.Exchange] = { | ||
482 | actData[actId] = {} | 482 | actData[actId] = {} |
483 | self:updateActData(actType, actData, not notify) | 483 | self:updateActData(actType, actData, not notify) |
484 | end, | 484 | end, |
485 | + ["login"] = function(self, actType, actId) | ||
486 | + activityFunc[Activity.ActivityType.Exchange]["crossDay"](self, actType, true, actId) | ||
487 | + end, | ||
485 | ["crossDay"] = function(self, actType, notify, actId) | 488 | ["crossDay"] = function(self, actType, notify, actId) |
486 | local actData = self:getActData(actType) or {} | 489 | local actData = self:getActData(actType) or {} |
487 | local lastTs = actData["ts"] or 0 | 490 | local lastTs = actData["ts"] or 0 |
@@ -490,14 +493,14 @@ activityFunc[Activity.ActivityType.Exchange] = { | @@ -490,14 +493,14 @@ activityFunc[Activity.ActivityType.Exchange] = { | ||
490 | if not cfg then return end | 493 | if not cfg then return end |
491 | local refreshTimes = cfg.condition2:toArray(false, "=") | 494 | local refreshTimes = cfg.condition2:toArray(false, "=") |
492 | for i = 1, #refreshTimes do | 495 | for i = 1, #refreshTimes do |
493 | - local rt = toUnixtime(refreshTimes[1]..string_format("%02x", RESET_TIME)) | 496 | + local rt = toUnixtime(refreshTimes[i]..string_format("%02x", RESET_TIME)) |
494 | if timeNow >= rt and rt > lastTs then | 497 | if timeNow >= rt and rt > lastTs then |
495 | lastTs = rt | 498 | lastTs = rt |
496 | actData = {} | 499 | actData = {} |
497 | end | 500 | end |
498 | end | 501 | end |
499 | - if next(actData) then | ||
500 | - actData["ts"] = lastTs | 502 | + if not next(actData) then |
503 | + actData["ts"] = timeNow | ||
501 | self:updateActData(actType, actData, not notify) | 504 | self:updateActData(actType, actData, not notify) |
502 | end | 505 | end |
503 | end, | 506 | end, |
src/models/Role.lua
@@ -57,7 +57,7 @@ Role.schema = { | @@ -57,7 +57,7 @@ Role.schema = { | ||
57 | ltime = {"number", 0}, -- 最后登录时间 | 57 | ltime = {"number", 0}, -- 最后登录时间 |
58 | ctime = {"number", skynet.timex()}, -- 创建时间 | 58 | ctime = {"number", skynet.timex()}, -- 创建时间 |
59 | ignoreMt = {"number", 0}, -- 忽略维护拦截 | 59 | ignoreMt = {"number", 0}, -- 忽略维护拦截 |
60 | - sversion = {"number", globalCsv.StructVersion or 0}, -- 重整数据版本 | 60 | + sversion = {"number", STRUCT_VERSION or 0}, -- 重整数据版本 |
61 | timeReset = {"table", {}}, --重置轮回记录 | 61 | timeReset = {"table", {}}, --重置轮回记录 |
62 | diamond = {"number", 0}, | 62 | diamond = {"number", 0}, |
63 | reDiamond = {"number", 0}, | 63 | reDiamond = {"number", 0}, |
src/models/RoleChangeStruct.lua
@@ -31,6 +31,7 @@ local awardGift = createVersionFunc(VersionType.Override ,function(role, params) | @@ -31,6 +31,7 @@ local awardGift = createVersionFunc(VersionType.Override ,function(role, params) | ||
31 | print("awardGift" .. " >>> " .. params) | 31 | print("awardGift" .. " >>> " .. params) |
32 | end) | 32 | end) |
33 | 33 | ||
34 | + | ||
34 | local bugFixSuduku = createVersionFunc(VersionType.DoOnly, function(role, params) | 35 | local bugFixSuduku = createVersionFunc(VersionType.DoOnly, function(role, params) |
35 | local sudoku = role:getProperty("sudoku") | 36 | local sudoku = role:getProperty("sudoku") |
36 | local phase = sudoku[-1] or 1 | 37 | local phase = sudoku[-1] or 1 |
@@ -65,12 +66,21 @@ local bugFixRune = createVersionFunc(VersionType.DoOnly, function(role, params) | @@ -65,12 +66,21 @@ local bugFixRune = createVersionFunc(VersionType.DoOnly, function(role, params) | ||
65 | -- 补偿 | 66 | -- 补偿 |
66 | end | 67 | end |
67 | end) | 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 | ---------------------版本方法 end ---------------------- | 77 | ---------------------版本方法 end ---------------------- |
69 | 78 | ||
70 | -- version 罗列start | 79 | -- version 罗列start |
71 | local versionList = {} -- version 列表 | 80 | local versionList = {} -- version 列表 |
72 | versionList[1] = {bugFixSuduku, {}} | 81 | versionList[1] = {bugFixSuduku, {}} |
73 | versionList[2] = {bugFixRune, {}} | 82 | versionList[2] = {bugFixRune, {}} |
83 | +versionList[3] = {bugFixAdvPlayer, {}} | ||
74 | -- versionList[2] = {clearActivity, {5, 7}} | 84 | -- versionList[2] = {clearActivity, {5, 7}} |
75 | -- versionList[3] = {changeStructF, "test1"} | 85 | -- versionList[3] = {changeStructF, "test1"} |
76 | -- versionList[4] = {changeStructF, "test2"} | 86 | -- versionList[4] = {changeStructF, "test2"} |
@@ -87,11 +97,11 @@ function RoleChangeStruct.bind(Role) | @@ -87,11 +97,11 @@ function RoleChangeStruct.bind(Role) | ||
87 | 97 | ||
88 | function Role:changeStructVersion() | 98 | function Role:changeStructVersion() |
89 | local curVersion = self:getProperty("sversion") | 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 | local jumpVersion = {} | 102 | local jumpVersion = {} |
93 | local versionTemp = {} | 103 | local versionTemp = {} |
94 | - for version = curVersion + 1, globalCsv.StructVersion do | 104 | + for version = curVersion + 1, STRUCT_VERSION do |
95 | local versionData = versionList[version] | 105 | local versionData = versionList[version] |
96 | if versionData then | 106 | if versionData then |
97 | if versionData[1].vType == VersionType.DoOnly then | 107 | if versionData[1].vType == VersionType.DoOnly then |
@@ -124,7 +134,7 @@ function RoleChangeStruct.bind(Role) | @@ -124,7 +134,7 @@ function RoleChangeStruct.bind(Role) | ||
124 | end | 134 | end |
125 | end | 135 | end |
126 | 136 | ||
127 | - for version = curVersion + 1, globalCsv.StructVersion do | 137 | + for version = curVersion + 1, STRUCT_VERSION do |
128 | if not jumpVersion[version] then | 138 | if not jumpVersion[version] then |
129 | local versionData = versionList[version] | 139 | local versionData = versionList[version] |
130 | if versionData[1].vType == VersionType.DoOnly or versionData[1].vType == VersionType.Override then | 140 | if versionData[1].vType == VersionType.DoOnly or versionData[1].vType == VersionType.Override then |
@@ -134,7 +144,7 @@ function RoleChangeStruct.bind(Role) | @@ -134,7 +144,7 @@ function RoleChangeStruct.bind(Role) | ||
134 | end | 144 | end |
135 | end | 145 | end |
136 | end | 146 | end |
137 | - self:setProperty("sversion", globalCsv.StructVersion) | 147 | + self:setProperty("sversion", STRUCT_VERSION) |
138 | end | 148 | end |
139 | 149 | ||
140 | end | 150 | end |
src/models/RolePlugin.lua
@@ -286,7 +286,7 @@ function RolePlugin.bind(Role) | @@ -286,7 +286,7 @@ function RolePlugin.bind(Role) | ||
286 | print("addPlayExp no log ", debug.traceback()) | 286 | print("addPlayExp no log ", debug.traceback()) |
287 | end | 287 | end |
288 | 288 | ||
289 | - self:updateProperties({level = level, exp = newExp}) | 289 | + self:updateProperties({level = level, exp = newExp}, params.notNotify) |
290 | self:changeCrossServerPvpSelfInfo("level") | 290 | self:changeCrossServerPvpSelfInfo("level") |
291 | end | 291 | end |
292 | 292 | ||
@@ -387,7 +387,7 @@ function RolePlugin.bind(Role) | @@ -387,7 +387,7 @@ function RolePlugin.bind(Role) | ||
387 | end | 387 | end |
388 | 388 | ||
389 | if update then | 389 | if update then |
390 | - self:updateProperty({field = "boxL", value = boxL}) | 390 | + self:updateProperty({field = "boxL", value = boxL, notNotify = pms.notNotify}) |
391 | end | 391 | end |
392 | end | 392 | end |
393 | 393 | ||
@@ -1705,6 +1705,9 @@ function RolePlugin.bind(Role) | @@ -1705,6 +1705,9 @@ function RolePlugin.bind(Role) | ||
1705 | local dataSet = csvdb["shop_rechargeCsv"][rechargeId] | 1705 | local dataSet = csvdb["shop_rechargeCsv"][rechargeId] |
1706 | 1706 | ||
1707 | if orderObject:getProperty("finishTime") > 0 then | 1707 | if orderObject:getProperty("finishTime") > 0 then |
1708 | + skynet.error(string.format("[recharge] is a finish order cpOrder: %s, platformOrder : %s, hadPlatformOrder: %s, id: %s, overTime : %s", | ||
1709 | + partnerOrderStr, platformOrder, orderObject:getProperty("transactionId"), rechargeId, orderObject:getProperty("finishTime") | ||
1710 | + )) | ||
1708 | return false, "finsh" | 1711 | return false, "finsh" |
1709 | end | 1712 | end |
1710 | 1713 | ||
@@ -1753,7 +1756,6 @@ function RolePlugin.bind(Role) | @@ -1753,7 +1756,6 @@ function RolePlugin.bind(Role) | ||
1753 | local roleId = self:getProperty("id") | 1756 | local roleId = self:getProperty("id") |
1754 | local partnerOrderStr = params.order | 1757 | local partnerOrderStr = params.order |
1755 | 1758 | ||
1756 | - | ||
1757 | local status, back = self:updatePurchaseOrder(partnerOrderStr, params.transactionId, "finsh") | 1759 | local status, back = self:updatePurchaseOrder(partnerOrderStr, params.transactionId, "finsh") |
1758 | if not status then | 1760 | if not status then |
1759 | if back == "finsh" then | 1761 | if back == "finsh" then |