Commit 0889982f67e8650efffbabf5f8929da151b6bcb1
1 parent
1103490d
优化角色技能等级
Showing
4 changed files
with
12 additions
and
55 deletions
Show diff stats
src/ProtocolCode.lua
@@ -69,7 +69,7 @@ actionCodes = { | @@ -69,7 +69,7 @@ actionCodes = { | ||
69 | Hero_levelUpRpc = 203, | 69 | Hero_levelUpRpc = 203, |
70 | Hero_breakRpc = 204, | 70 | Hero_breakRpc = 204, |
71 | Hero_wakeRpc = 205, | 71 | Hero_wakeRpc = 205, |
72 | - Hero_skillUpRpc = 206, | 72 | + |
73 | Hero_talentRpc = 207, | 73 | Hero_talentRpc = 207, |
74 | Hero_likeHeroRpc = 208, | 74 | Hero_likeHeroRpc = 208, |
75 | Hero_commentHeroRpc = 209, | 75 | Hero_commentHeroRpc = 209, |
src/actions/HeroAction.lua
@@ -72,24 +72,8 @@ function _M.wakeRpc(agent, data) | @@ -72,24 +72,8 @@ function _M.wakeRpc(agent, data) | ||
72 | return 4 | 72 | return 4 |
73 | end | 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 | role:costItems(cost, {log = {desc = "heroWake", int1 = msg.id, int2 = hero:getProperty("type")}}) | 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 | hero:updateProperty({field = "wakeL", delta = 1}) | 77 | hero:updateProperty({field = "wakeL", delta = 1}) |
94 | 78 | ||
95 | local curLevel = hero:getProperty("wakeL") | 79 | local curLevel = hero:getProperty("wakeL") |
@@ -104,22 +88,6 @@ function _M.wakeRpc(agent, data) | @@ -104,22 +88,6 @@ function _M.wakeRpc(agent, data) | ||
104 | return true | 88 | return true |
105 | end | 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 | function _M.talentRpc(agent, data) | 92 | function _M.talentRpc(agent, data) |
125 | local role = agent.role | 93 | local role = agent.role |
src/models/Hero.lua
@@ -9,7 +9,6 @@ Hero.schema = { | @@ -9,7 +9,6 @@ Hero.schema = { | ||
9 | level = {"number", 1}, -- 等级 | 9 | level = {"number", 1}, -- 等级 |
10 | breakL = {"number", 0}, -- 突破等级 | 10 | breakL = {"number", 0}, -- 突破等级 |
11 | wakeL = {"number", 1}, -- 觉醒等级 | 11 | wakeL = {"number", 1}, -- 觉醒等级 |
12 | - skillL = {"string", ""}, -- 技能等级 1=1 2=1 3=1 | ||
13 | talent = {"string", ""}, -- 0=阶段 1=1 2=1 3=1 4=1 四个天赋当前阶段的等级 阶段默认为1 等级默认为0 | 12 | talent = {"string", ""}, -- 0=阶段 1=1 2=1 3=1 4=1 四个天赋当前阶段的等级 阶段默认为1 等级默认为0 |
14 | battleV = {"number", 0}, -- 保存战斗力 | 13 | battleV = {"number", 0}, -- 保存战斗力 |
15 | -- loveExp = {"number", 0}, --好感度经验 | 14 | -- loveExp = {"number", 0}, --好感度经验 |
@@ -97,7 +96,6 @@ function Hero:data() | @@ -97,7 +96,6 @@ function Hero:data() | ||
97 | level = self:getProperty("level"), | 96 | level = self:getProperty("level"), |
98 | breakL = self:getProperty("breakL"), | 97 | breakL = self:getProperty("breakL"), |
99 | wakeL = self:getProperty("wakeL"), | 98 | wakeL = self:getProperty("wakeL"), |
100 | - skillL = self:getProperty("skillL"), | ||
101 | talent = self:getProperty("talent"), | 99 | talent = self:getProperty("talent"), |
102 | battleV = self:getProperty("battleV"), | 100 | battleV = self:getProperty("battleV"), |
103 | -- loveExp = self:getProperty("loveExp"), | 101 | -- loveExp = self:getProperty("loveExp"), |
src/models/HeroPlugin.lua
@@ -18,24 +18,6 @@ function HeroPlugin.bind(Hero) | @@ -18,24 +18,6 @@ function HeroPlugin.bind(Hero) | ||
18 | return math.min(#csvdb["unit_expCsv"], csvdb["unit_breakCsv"][self:getProperty("breakL")].levelLimit) | 18 | return math.min(#csvdb["unit_expCsv"], csvdb["unit_breakCsv"][self:getProperty("breakL")].levelLimit) |
19 | end | 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 | --角色属性值 = 基础属性值(unit)* [ 1 + 升级属性(unit_exp)+ 突破属性(unit_break)] * [ 1 + 觉醒属性(unit_wake)+ 天赋属性(unit_talent)] | 21 | --角色属性值 = 基础属性值(unit)* [ 1 + 升级属性(unit_exp)+ 突破属性(unit_break)] * [ 1 + 觉醒属性(unit_wake)+ 天赋属性(unit_talent)] |
40 | function Hero:getBaseAttrs(params) | 22 | function Hero:getBaseAttrs(params) |
41 | params = params or {} | 23 | params = params or {} |
@@ -211,7 +193,16 @@ function HeroPlugin.bind(Hero) | @@ -211,7 +193,16 @@ function HeroPlugin.bind(Hero) | ||
211 | 193 | ||
212 | -- 技能1234 对应必杀技,冒险技,被动技,战斗技 | 194 | -- 技能1234 对应必杀技,冒险技,被动技,战斗技 |
213 | function Hero:getSkillLevel(idx) | 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 | end | 206 | end |
216 | 207 | ||
217 | function Hero:getSkillData(idx) | 208 | function Hero:getSkillData(idx) |