diff --git a/src/ProtocolCode.lua b/src/ProtocolCode.lua index 836d293..b8810a9 100644 --- a/src/ProtocolCode.lua +++ b/src/ProtocolCode.lua @@ -69,7 +69,7 @@ actionCodes = { Hero_levelUpRpc = 203, Hero_breakRpc = 204, Hero_wakeRpc = 205, - Hero_skillUpRpc = 206, + Hero_talentRpc = 207, Hero_likeHeroRpc = 208, Hero_commentHeroRpc = 209, diff --git a/src/actions/HeroAction.lua b/src/actions/HeroAction.lua index a44a4a6..727dbac 100644 --- a/src/actions/HeroAction.lua +++ b/src/actions/HeroAction.lua @@ -72,24 +72,8 @@ function _M.wakeRpc(agent, data) return 4 end - local skills = {} - for _,v in pairs(wakeData.skill:toArray(true,"=") ) do - local skillSet = hero:getSkillData(v) - if skillSet and next(skillSet) then - local skillLv = hero:getSkillLevel(v)+1 - local skillData = skillSet[skillLv] - if skillData and next(skillData) then - skills[v] = skillLv - else - return 5 - end - end - end - role:costItems(cost, {log = {desc = "heroWake", int1 = msg.id, int2 = hero:getProperty("type")}}) - for k,v in pairs(skills) do - hero:updateProperty({field = "skillL", value = hero:getProperty("skillL"):setv(k, v)}) - end + hero:updateProperty({field = "wakeL", delta = 1}) local curLevel = hero:getProperty("wakeL") @@ -104,22 +88,6 @@ function _M.wakeRpc(agent, data) return true end --- 已取消技能升级功能,觉醒时自动升级技能 -function _M.skillUpRpc(agent, data) - local role = agent.role - local msg = MsgPack.unpack(data) - local index = msg.skillIdx -- 第几个技能 -- 1 2 3 - local hero = role.heros[msg.id] - if not hero then return end - local curLevel = hero:getSkillLevel(index) - if hero:getLSPoint() <= 0 or curLevel >= #hero:getSkillData(index) then return end - hero:updateProperty({field = "skillL", value = hero:getProperty("skillL"):setv(index, curLevel + 1)}) - - hero:log({desc = "skillUp", int1 = index, int2 = curLevel + 1}) - - SendPacket(actionCodes.Hero_skillUpRpc, '') - return true -end function _M.talentRpc(agent, data) local role = agent.role diff --git a/src/models/Hero.lua b/src/models/Hero.lua index 13f497f..37ac7b7 100644 --- a/src/models/Hero.lua +++ b/src/models/Hero.lua @@ -9,7 +9,6 @@ Hero.schema = { level = {"number", 1}, -- 等级 breakL = {"number", 0}, -- 突破等级 wakeL = {"number", 1}, -- 觉醒等级 - skillL = {"string", ""}, -- 技能等级 1=1 2=1 3=1 talent = {"string", ""}, -- 0=阶段 1=1 2=1 3=1 4=1 四个天赋当前阶段的等级 阶段默认为1 等级默认为0 battleV = {"number", 0}, -- 保存战斗力 -- loveExp = {"number", 0}, --好感度经验 @@ -97,7 +96,6 @@ function Hero:data() level = self:getProperty("level"), breakL = self:getProperty("breakL"), wakeL = self:getProperty("wakeL"), - skillL = self:getProperty("skillL"), talent = self:getProperty("talent"), battleV = self:getProperty("battleV"), -- loveExp = self:getProperty("loveExp"), diff --git a/src/models/HeroPlugin.lua b/src/models/HeroPlugin.lua index 527cf29..dda60d2 100644 --- a/src/models/HeroPlugin.lua +++ b/src/models/HeroPlugin.lua @@ -18,24 +18,6 @@ function HeroPlugin.bind(Hero) return math.min(#csvdb["unit_expCsv"], csvdb["unit_breakCsv"][self:getProperty("breakL")].levelLimit) end - function Hero:getSPoint() - local point = 0 - for i = 0, self:getProperty("wakeL") do - if csvdb["unit_wakeCsv"][i] then - point = point + csvdb["unit_wakeCsv"][i].sp - end - end - return point - end - - function Hero:getLSPoint() - local point = self:getSPoint() - for skill, level in pairs(self:getProperty("skillL"):toNumMap()) do - point = point - (level - 1) - end - return point - end - --角色属性值 = 基础属性值(unit)* [ 1 + 升级属性(unit_exp)+ 突破属性(unit_break)] * [ 1 + 觉醒属性(unit_wake)+ 天赋属性(unit_talent)] function Hero:getBaseAttrs(params) params = params or {} @@ -211,7 +193,16 @@ function HeroPlugin.bind(Hero) -- 技能1234 对应必杀技,冒险技,被动技,战斗技 function Hero:getSkillLevel(idx) - return self:getProperty("skillL"):getv(idx, 1) + local level = 1 + for wakeL = 1, self:getProperty("wakeL") do + local wakeData = csvdb["unit_wakeCsv"][wakeL] + for _, slot in ipairs(wakeData.skill:toArray(true,"=")) do + if slot == idx then + level = level + 1 + end + end + end + return level end function Hero:getSkillData(idx) -- libgit2 0.21.2