Commit 0889982f67e8650efffbabf5f8929da151b6bcb1
1 parent
1103490d
优化角色技能等级
Showing
4 changed files
with
12 additions
and
55 deletions
Show diff stats
src/ProtocolCode.lua
src/actions/HeroAction.lua
... | ... | @@ -72,24 +72,8 @@ function _M.wakeRpc(agent, data) |
72 | 72 | return 4 |
73 | 73 | end |
74 | 74 | |
75 | - local skills = {} | |
76 | - for _,v in pairs(wakeData.skill:toArray(true,"=") ) do | |
77 | - local skillSet = hero:getSkillData(v) | |
78 | - if skillSet and next(skillSet) then | |
79 | - local skillLv = hero:getSkillLevel(v)+1 | |
80 | - local skillData = skillSet[skillLv] | |
81 | - if skillData and next(skillData) then | |
82 | - skills[v] = skillLv | |
83 | - else | |
84 | - return 5 | |
85 | - end | |
86 | - end | |
87 | - end | |
88 | - | |
89 | 75 | role:costItems(cost, {log = {desc = "heroWake", int1 = msg.id, int2 = hero:getProperty("type")}}) |
90 | - for k,v in pairs(skills) do | |
91 | - hero:updateProperty({field = "skillL", value = hero:getProperty("skillL"):setv(k, v)}) | |
92 | - end | |
76 | + | |
93 | 77 | hero:updateProperty({field = "wakeL", delta = 1}) |
94 | 78 | |
95 | 79 | local curLevel = hero:getProperty("wakeL") |
... | ... | @@ -104,22 +88,6 @@ function _M.wakeRpc(agent, data) |
104 | 88 | return true |
105 | 89 | end |
106 | 90 | |
107 | --- 已取消技能升级功能,觉醒时自动升级技能 | |
108 | -function _M.skillUpRpc(agent, data) | |
109 | - local role = agent.role | |
110 | - local msg = MsgPack.unpack(data) | |
111 | - local index = msg.skillIdx -- 第几个技能 -- 1 2 3 | |
112 | - local hero = role.heros[msg.id] | |
113 | - if not hero then return end | |
114 | - local curLevel = hero:getSkillLevel(index) | |
115 | - if hero:getLSPoint() <= 0 or curLevel >= #hero:getSkillData(index) then return end | |
116 | - hero:updateProperty({field = "skillL", value = hero:getProperty("skillL"):setv(index, curLevel + 1)}) | |
117 | - | |
118 | - hero:log({desc = "skillUp", int1 = index, int2 = curLevel + 1}) | |
119 | - | |
120 | - SendPacket(actionCodes.Hero_skillUpRpc, '') | |
121 | - return true | |
122 | -end | |
123 | 91 | |
124 | 92 | function _M.talentRpc(agent, data) |
125 | 93 | local role = agent.role | ... | ... |
src/models/Hero.lua
... | ... | @@ -9,7 +9,6 @@ Hero.schema = { |
9 | 9 | level = {"number", 1}, -- 等级 |
10 | 10 | breakL = {"number", 0}, -- 突破等级 |
11 | 11 | wakeL = {"number", 1}, -- 觉醒等级 |
12 | - skillL = {"string", ""}, -- 技能等级 1=1 2=1 3=1 | |
13 | 12 | talent = {"string", ""}, -- 0=阶段 1=1 2=1 3=1 4=1 四个天赋当前阶段的等级 阶段默认为1 等级默认为0 |
14 | 13 | battleV = {"number", 0}, -- 保存战斗力 |
15 | 14 | -- loveExp = {"number", 0}, --好感度经验 |
... | ... | @@ -97,7 +96,6 @@ function Hero:data() |
97 | 96 | level = self:getProperty("level"), |
98 | 97 | breakL = self:getProperty("breakL"), |
99 | 98 | wakeL = self:getProperty("wakeL"), |
100 | - skillL = self:getProperty("skillL"), | |
101 | 99 | talent = self:getProperty("talent"), |
102 | 100 | battleV = self:getProperty("battleV"), |
103 | 101 | -- loveExp = self:getProperty("loveExp"), | ... | ... |
src/models/HeroPlugin.lua
... | ... | @@ -18,24 +18,6 @@ function HeroPlugin.bind(Hero) |
18 | 18 | return math.min(#csvdb["unit_expCsv"], csvdb["unit_breakCsv"][self:getProperty("breakL")].levelLimit) |
19 | 19 | end |
20 | 20 | |
21 | - function Hero:getSPoint() | |
22 | - local point = 0 | |
23 | - for i = 0, self:getProperty("wakeL") do | |
24 | - if csvdb["unit_wakeCsv"][i] then | |
25 | - point = point + csvdb["unit_wakeCsv"][i].sp | |
26 | - end | |
27 | - end | |
28 | - return point | |
29 | - end | |
30 | - | |
31 | - function Hero:getLSPoint() | |
32 | - local point = self:getSPoint() | |
33 | - for skill, level in pairs(self:getProperty("skillL"):toNumMap()) do | |
34 | - point = point - (level - 1) | |
35 | - end | |
36 | - return point | |
37 | - end | |
38 | - | |
39 | 21 | --角色属性值 = 基础属性值(unit)* [ 1 + 升级属性(unit_exp)+ 突破属性(unit_break)] * [ 1 + 觉醒属性(unit_wake)+ 天赋属性(unit_talent)] |
40 | 22 | function Hero:getBaseAttrs(params) |
41 | 23 | params = params or {} |
... | ... | @@ -211,7 +193,16 @@ function HeroPlugin.bind(Hero) |
211 | 193 | |
212 | 194 | -- 技能1234 对应必杀技,冒险技,被动技,战斗技 |
213 | 195 | function Hero:getSkillLevel(idx) |
214 | - return self:getProperty("skillL"):getv(idx, 1) | |
196 | + local level = 1 | |
197 | + for wakeL = 1, self:getProperty("wakeL") do | |
198 | + local wakeData = csvdb["unit_wakeCsv"][wakeL] | |
199 | + for _, slot in ipairs(wakeData.skill:toArray(true,"=")) do | |
200 | + if slot == idx then | |
201 | + level = level + 1 | |
202 | + end | |
203 | + end | |
204 | + end | |
205 | + return level | |
215 | 206 | end |
216 | 207 | |
217 | 208 | function Hero:getSkillData(idx) | ... | ... |