Commit 94449a7845a03a6c2d73bcc79db4e9eafb986ee4

Authored by chenyueqi
1 parent c1928949

英雄升级和突破增加关卡限制

Showing 1 changed file with 22 additions and 4 deletions   Show diff stats
src/actions/HeroAction.lua
@@ -35,10 +35,19 @@ function _M.levelUpRpc( agent, data ) @@ -35,10 +35,19 @@ function _M.levelUpRpc( agent, data )
35 local hero = role.heros[msg.id] 35 local hero = role.heros[msg.id]
36 if not hero then return 1 end 36 if not hero then return 1 end
37 37
38 - if hero:getProperty("level") >= hero:getMaxLevel() then return 2 end  
39 - local curData = csvdb["unit_expCsv"][hero:getProperty("level")] 38 + local level = hero:getProperty("level")
  39 + if level >= hero:getMaxLevel() then return 2 end
  40 + local curData = csvdb["unit_expCsv"][level]
40 local cost = {[ItemId.Exp] = curData.exp, [ItemId.Gold] = curData.gold} 41 local cost = {[ItemId.Exp] = curData.exp, [ItemId.Gold] = curData.gold}
41 if not role:checkItemEnough(cost) then return 3 end 42 if not role:checkItemEnough(cost) then return 3 end
  43 +
  44 + -- 通过指定关卡后才能升级英雄等级
  45 + local pass = globalCsv.unit_exp_level_pass[level + 1]
  46 + if pass then
  47 + local hangPass = self:getProperty("hangPass")
  48 + if not hangPass[pass] then return 4 end
  49 + end
  50 +
42 role:costItems(cost, {log = {desc = "heroLevelUp", int1 = msg.id, int2 = hero:getProperty("type")}}) 51 role:costItems(cost, {log = {desc = "heroLevelUp", int1 = msg.id, int2 = hero:getProperty("type")}})
43 52
44 local oldAttr = hero:getTotalAttrs() 53 local oldAttr = hero:getTotalAttrs()
@@ -69,12 +78,21 @@ function _M.breakRpc( agent, data ) @@ -69,12 +78,21 @@ function _M.breakRpc( agent, data )
69 local hero = role.heros[msg.id] 78 local hero = role.heros[msg.id]
70 if not hero then return 1 end 79 if not hero then return 1 end
71 80
  81 + local breakL = hero:getProperty("breakL")
72 if hero:getProperty("level") < hero:getMaxLevel() then return 2 end 82 if hero:getProperty("level") < hero:getMaxLevel() then return 2 end
73 - if hero:getProperty("breakL") >= #csvdb["unit_breakCsv"] then return 3 end  
74 - local curData = csvdb["unit_breakCsv"][hero:getProperty("breakL")] 83 + if breakL >= #csvdb["unit_breakCsv"] then return 3 end
  84 + local curData = csvdb["unit_breakCsv"][breakL]
75 if hero:getProperty("wakeL") < curData["starLimit"] then return 4 end 85 if hero:getProperty("wakeL") < curData["starLimit"] then return 4 end
76 local cost = {[ItemId.BreakCost] = curData.cost, [ItemId.Gold] = curData.gold} 86 local cost = {[ItemId.BreakCost] = curData.cost, [ItemId.Gold] = curData.gold}
77 if not role:checkItemEnough(cost) then return 4 end 87 if not role:checkItemEnough(cost) then return 4 end
  88 +
  89 + -- 通过指定关卡后才能突破英雄
  90 + local pass = globalCsv.unit_break_level_pass[breakL + 1]
  91 + if pass then
  92 + local hangPass = self:getProperty("hangPass")
  93 + if not hangPass[pass] then return 4 end
  94 + end
  95 +
78 role:costItems(cost, {log = {desc = "heroBreak", int1 = msg.id, int2 = hero:getProperty("type")}}) 96 role:costItems(cost, {log = {desc = "heroBreak", int1 = msg.id, int2 = hero:getProperty("type")}})
79 local oldAttr = hero:getTotalAttrs() 97 local oldAttr = hero:getTotalAttrs()
80 hero:updateProperty({field = "breakL", delta = 1}) 98 hero:updateProperty({field = "breakL", delta = 1})