Commit e50d0caef26bc42b9c45b6be88fcf1f1763197cc
1 parent
03c619fb
计算电波塔层数的加成效果
Showing
3 changed files
with
49 additions
and
12 deletions
Show diff stats
src/actions/GmAction.lua
@@ -483,13 +483,25 @@ function _M.advit(role, pms) | @@ -483,13 +483,25 @@ function _M.advit(role, pms) | ||
483 | end | 483 | end |
484 | 484 | ||
485 | 485 | ||
486 | -table.insert(helpDes, {"爬塔到指定层", "tower", "层数"}) | 486 | +table.insert(helpDes, {"爬塔到指定层", "tower", "塔id", "层数"}) |
487 | function _M.tower(role, pms) | 487 | function _M.tower(role, pms) |
488 | - local level = tonum(pms.pm1, 1) | ||
489 | - if not csvdb["tower_battleCsv"][level] then return "不存在" end | ||
490 | - role:updateProperty({field = "towerInfo", value = {c = globalCsv.tower_count_limit, l = level}}) | ||
491 | - | ||
492 | - role:mylog("gm_action", {desc = "tower", int1 = level, key1 = pms.sender}) | 488 | + local tType = tonum(pms.pm1, 1) |
489 | + local level = tonum(pms.pm2, 1) | ||
490 | + local layer = (tType - 1) * 10000 + level | ||
491 | + if not csvdb["tower_battleCsv"][tType][level] then return "不存在" end | ||
492 | + local values = role:getProperty("towerInfo") | ||
493 | + if tType == 1 then | ||
494 | + values.l = level | ||
495 | + elseif tType == 2 then | ||
496 | + values.l1 = level | ||
497 | + elseif tType == 3 then | ||
498 | + values.l2 = level | ||
499 | + elseif tType == 4 then | ||
500 | + values.l3 = level | ||
501 | + end | ||
502 | + role:updateProperty({field = "towerInfo", value = values}) | ||
503 | + | ||
504 | + role:mylog("gm_action", {desc = "tower", int1 = tType, int2 = layer, key1 = pms.sender}) | ||
493 | 505 | ||
494 | return "成功" | 506 | return "成功" |
495 | end | 507 | end |
src/actions/TowerAction.lua
@@ -185,7 +185,7 @@ function _M.activeTowerBonusRpc(agent, data) | @@ -185,7 +185,7 @@ function _M.activeTowerBonusRpc(agent, data) | ||
185 | local tType = msg.tower | 185 | local tType = msg.tower |
186 | local id = msg.id | 186 | local id = msg.id |
187 | 187 | ||
188 | - local bnousCsv = csvdb["tower_bnousCsv"] | 188 | + local bnousCsv = csvdb["tower_battle_additionCsv"] |
189 | 189 | ||
190 | if not tType or not id or not bnousCsv[tType] then return 0 end | 190 | if not tType or not id or not bnousCsv[tType] then return 0 end |
191 | local bnousData = bnousCsv[tType][id] | 191 | local bnousData = bnousCsv[tType][id] |
src/models/RolePlugin.lua
@@ -2168,15 +2168,40 @@ function RolePlugin.bind(Role) | @@ -2168,15 +2168,40 @@ function RolePlugin.bind(Role) | ||
2168 | local towerInfo = role:getProperty("towerInfo") | 2168 | local towerInfo = role:getProperty("towerInfo") |
2169 | local towerLevel = {towerInfo.l or 1, towerInfo.l1 or 10001, towerInfo.l2 or 20001, towerInfo.l3 or 30001} | 2169 | local towerLevel = {towerInfo.l or 1, towerInfo.l1 or 10001, towerInfo.l2 or 20001, towerInfo.l3 or 30001} |
2170 | local towerBnous = self:getProperty("towerBnous") | 2170 | local towerBnous = self:getProperty("towerBnous") |
2171 | - local bnousCsv = csvdb["tower_bnousCsv"] | 2171 | + local bnousCsv = csvdb["tower_battle_additionCsv"] |
2172 | self.towerBnousActive = {} | 2172 | self.towerBnousActive = {} |
2173 | - for towerIdx, Set in ipairs(towerLevel) do | ||
2174 | - for id, data in pairs(Set) do | ||
2175 | - if (towerLevel[towerIdx] - 1) >= data.level then | ||
2176 | - self.towerBnousActive[data.type] = (self.towerBnousActive[data.type] or 0) + data.value | 2173 | + |
2174 | + for towerIdx, Set in pairs(towerBnous) do | ||
2175 | + for id, _ in pairs(Set) do | ||
2176 | + local data = bnousCsv[towerIdx][id] | ||
2177 | + local effects = data.effect:toTableArray(true) | ||
2178 | + for _, effect in pairs(effects) do | ||
2179 | + local pm1, pm2 = effect[1], effect[2] | ||
2180 | + if not self.towerBnousActive[pm1] then | ||
2181 | + self.towerBnousActive[pm1] = {} | ||
2182 | + end | ||
2183 | + if pm1 == SystemBnousType.TowerBuff then | ||
2184 | + if not self.towerBnousActive[pm1][pm2] then | ||
2185 | + self.towerBnousActive[pm1][pm2] = {} | ||
2186 | + end | ||
2187 | + table.insert(self.towerBnousActive[pm1][pm2],effect[3]) | ||
2188 | + elseif pm1 == SystemBnousType.Adv then | ||
2189 | + if not self.towerBnousActive[pm1][effect[4]] then | ||
2190 | + self.towerBnousActive[pm1][effect[4]] = {} | ||
2191 | + end | ||
2192 | + self.towerBnousActive[pm1][effect[4]][pm2] = (self.towerBnousActive[pm1][effect[4]][pm2] or 0) + effect[3] | ||
2193 | + elseif pm1 == SystemBnousType.HangTime then | ||
2194 | + if type(self.towerBnousActive[pm1]) == "table" then | ||
2195 | + self.towerBnousActive[pm1] = 0 | ||
2196 | + end | ||
2197 | + self.towerBnousActive[pm1] = self.towerBnousActive[pm1] + pm2 | ||
2198 | + else | ||
2199 | + self.towerBnousActive[pm1][pm2] = (self.towerBnousActive[pm1][pm2] or 0) + effect[3] | ||
2200 | + end | ||
2177 | end | 2201 | end |
2178 | end | 2202 | end |
2179 | end | 2203 | end |
2204 | + | ||
2180 | return self.towerBnousActive | 2205 | return self.towerBnousActive |
2181 | end | 2206 | end |
2182 | 2207 |