Commit 3666c3fa658a170d97d3662a20b4844434524809
Merge branch 'tr/bugfix' into tr/publish/release
* tr/bugfix: 计算英雄战斗力,天赋,信赖 错误的 多队挂机 电台任务英雄也不能重用 冒险次数 取消特权卡餐厅加速获得额外道具功能 # Conflicts: # src/csvdata
Showing
4 changed files
with
45 additions
and
42 deletions
Show diff stats
src/actions/AdvAction.lua
... | ... | @@ -57,6 +57,15 @@ local function checkFormat(role, format, checkAdvTeam) |
57 | 57 | end |
58 | 58 | end |
59 | 59 | |
60 | + -- 多队挂机 电台任务英雄也不能重用 | |
61 | + local radioTask = role:getProperty("radioTask") | |
62 | + for id, taskInfo in pairs(radioTask) do | |
63 | + local heros = taskInfo["heros"] or {} | |
64 | + for _, heroId in ipairs(heros) do | |
65 | + hadHero[heroId] = true | |
66 | + end | |
67 | + end | |
68 | + | |
60 | 69 | if not format.leader then return end |
61 | 70 | if format.leader2 == format.leader then return end |
62 | 71 | local hadLeader = false |
... | ... | @@ -102,6 +111,8 @@ function _M.startAdvRpc( agent, data ) |
102 | 111 | |
103 | 112 | local advPass = role:getProperty("advPass") |
104 | 113 | |
114 | + if not checkFormat(role) then return 7 end | |
115 | + | |
105 | 116 | if AdvCommon.isEndless(chapterId) then -- 无尽模式判断 |
106 | 117 | |
107 | 118 | if chapterId ~= role.advElChapter then return end -- 不是当前进行的章节 |
... | ... | @@ -118,37 +129,23 @@ function _M.startAdvRpc( agent, data ) |
118 | 129 | if not relayData then return 14 end -- 不是中继层 |
119 | 130 | if advElM < relayData.unlockfloor then return 15 end --未解锁 |
120 | 131 | end |
132 | + | |
133 | + role.dailyData:updateProperty({field = "advElC", delta = 1}) | |
121 | 134 | else -- 普通模式判断 |
122 | - if not role:checkAdvCount(chapterData.limitlevel) then return 2 end -- 是否有体力 | |
123 | 135 | if layer >= chapterData.limitlevel then return 4 end |
124 | - -- 关卡开放判断 | |
125 | - if not role:advChapterIsOpen(chapterId) then return 5 end | |
126 | 136 | |
137 | + local relayData = role:getAdvData():isHaveRelay(layer, chapterId, true) | |
138 | + if not relayData then return 6 end -- 不是中继层 | |
127 | 139 | if layer ~= 1 then |
128 | - local relayData = role:getAdvData():isHaveRelay(layer, chapterId) | |
129 | - if not relayData then return 6 end -- 不是中继层 | |
130 | 140 | if (advPass[chapterId] or 0) < relayData.floor then return 21 end |
131 | 141 | end |
132 | - end | |
133 | - | |
134 | - if not checkFormat(role) then return 7 end | |
135 | - | |
136 | - --local advTeam = role:getProperty("advTeam") | |
137 | - --table.clear(advTeam) | |
142 | + if not role:checkAdvCount(relayData.supply) then return 2 end -- 是否有体力 | |
143 | + -- 关卡开放判断 | |
144 | + if not role:advChapterIsOpen(chapterId) then return 5 end | |
138 | 145 | |
139 | - --advTeam.heros = {} | |
140 | - --for slot, heroId in pairs(format.heros) do | |
141 | - -- advTeam.heros[slot] = heroId | |
142 | - --end | |
143 | - --advTeam.leader = format.leader | |
144 | - --advTeam.leader2 = format.leader2 | |
145 | - --role:updateProperty({field = "advTeam", value = advTeam}) | |
146 | - if AdvCommon.isEndless(chapterId) then | |
147 | - role.dailyData:updateProperty({field = "advElC", delta = 1}) | |
148 | - else | |
149 | - role:changeAdvCount(chapterData.limitlevel) | |
146 | + role:changeAdvCount(relayData.supply) | |
150 | 147 | end |
151 | - | |
148 | + | |
152 | 149 | local support = {} -- 支援效果 |
153 | 150 | if AdvCommon.isEndless(chapterId) then |
154 | 151 | -- 选择的支援效果 |
... | ... | @@ -168,6 +165,7 @@ function _M.startAdvRpc( agent, data ) |
168 | 165 | end |
169 | 166 | end |
170 | 167 | end |
168 | + | |
171 | 169 | role:getAdvData():initByChapter({ |
172 | 170 | chapterId = chapterId, |
173 | 171 | level = layer, |
... | ... | @@ -175,6 +173,7 @@ function _M.startAdvRpc( agent, data ) |
175 | 173 | isEnter = true, |
176 | 174 | support = support, |
177 | 175 | }) |
176 | + | |
178 | 177 | role:checkTaskEnter("AdvStart", {id = chapterId}) |
179 | 178 | role:checkTaskEnter("AdvStartSelf", {id = chapterId}) |
180 | 179 | role:getAdvData():popBackEvents() -- 清一下事件 |
... | ... | @@ -236,7 +235,8 @@ function _M.startHangRpc(agent, data) |
236 | 235 | + 0.226 * player["hit"] |
237 | 236 | + 0.26 * player["miss"] |
238 | 237 | |
239 | - if battleV < campSiteData.idleValue then return 9 end -- 战斗力是否满足 | |
238 | + --print(math.ceil(battleV), campSiteData.idleValue) | |
239 | + if math.ceil(battleV) < campSiteData.idleValue then return 9 end -- 战斗力是否满足 | |
240 | 240 | |
241 | 241 | local info = {} |
242 | 242 | info.format = {} | ... | ... |
src/actions/DinerAction.lua
... | ... | @@ -305,7 +305,7 @@ function _M.expediteSellRpc( agent, data ) |
305 | 305 | local gift = reward:toNumMap() |
306 | 306 | |
307 | 307 | -- 特权卡获取加速获得额外道具 |
308 | - local coef = role.storeData:getProduceItemSpeedCoef() | |
308 | + local coef = 1 --role.storeData:getProduceItemSpeedCoef() | |
309 | 309 | for k, v in pairs(gift) do |
310 | 310 | if coef > 1 then |
311 | 311 | v = math.floor(v * coef) | ... | ... |
src/adv/Adv.lua
... | ... | @@ -61,10 +61,10 @@ function Adv:initByInfo(advInfo) |
61 | 61 | self:initBattle(advInfo) |
62 | 62 | end |
63 | 63 | -- 找出level 是否存在中继层 |
64 | -function Adv:isHaveRelay(level, chapterId) | |
64 | +function Adv:isHaveRelay(level, chapterId, force) | |
65 | 65 | level = level or self.level |
66 | 66 | chapterId = chapterId or self.chapterId |
67 | - if level == 1 then return end | |
67 | + if level == 1 and not force then return end | |
68 | 68 | |
69 | 69 | local campsiteCsv = csvdb["adv_chapter_campsiteCsv"][chapterId] |
70 | 70 | for _, campsite in ipairs(campsiteCsv) do | ... | ... |
src/models/HeroPlugin.lua
... | ... | @@ -53,22 +53,25 @@ function HeroPlugin.bind(Hero) |
53 | 53 | local talentAttrS = {} |
54 | 54 | |
55 | 55 | -- 四个基础属性 |
56 | - local curData = csvdb["unit_talentCsv"][talent:getv(0, 1)] | |
57 | - local curTalentLvl = 0 | |
58 | - if not curData then -- 已经满阶段了 | |
59 | - local cfgName = "unit_talent_"..heroCfgId.."Csv" | |
60 | - curData = csvdb[cfgName][#csvdb[cfgName]] | |
61 | - else | |
62 | - curTalentLvl = talent:getv(1, 1) | |
63 | - end | |
64 | - for lvl, cfg in pairs(curData) do | |
65 | - if lvl < curTalentLvl or curTalentLvl == 0 then | |
66 | - if cfg.effect ~= 99 then | |
67 | - local curVal = talentAttrS[cfg.effect] or 0 | |
68 | - if curVal < cfg.strength then | |
69 | - talentAttrS[cfg.effect] = cfg.strength | |
56 | + local cfgName = "unit_talent_"..heroCfgId.."Csv" | |
57 | + local curRank = talent:getv(0, 1) | |
58 | + local curLv = talent:getv(1,1) - 1 | |
59 | + for i, value in ipairs(csvdb[cfgName]) do | |
60 | + if i <= curRank then | |
61 | + for lv, cfg in ipairs(value) do | |
62 | + if i < curRank or lv <= curLv then | |
63 | + if cfg.effect ~= 99 then | |
64 | + if not talentAttrS[cfg.effect] then | |
65 | + talentAttrS[AttsEnumEx[cfg.effect]] = 0 | |
66 | + end | |
67 | + talentAttrS[AttsEnumEx[cfg.effect]] = cfg.strength | |
68 | + end | |
69 | + else | |
70 | + break | |
70 | 71 | end |
71 | 72 | end |
73 | + else | |
74 | + break | |
72 | 75 | end |
73 | 76 | end |
74 | 77 | |
... | ... | @@ -85,7 +88,7 @@ function HeroPlugin.bind(Hero) |
85 | 88 | for lvl = 1, #faithConfig do |
86 | 89 | if faith >= faithConfig[lvl].exp then |
87 | 90 | local add = faithConfig[lvl]["position_"..unitData.position]:toArray(true, "=") |
88 | - faithAttr[add[1]] = (faithAttr[add[1]] or 0) + add[2] | |
91 | + faithAttr[AttsEnumEx[add[1]]] = (faithAttr[AttsEnumEx[add[1]]] or 0) + add[2] | |
89 | 92 | end |
90 | 93 | end |
91 | 94 | for _, attrName in pairs(AttsEnumEx) do | ... | ... |