Commit e50d0caef26bc42b9c45b6be88fcf1f1763197cc

Authored by chenyueqi
1 parent 03c619fb

计算电波塔层数的加成效果

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