Commit 94449a7845a03a6c2d73bcc79db4e9eafb986ee4
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}) |