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) |