Commit 47343863a009f732cb87bcfa1bb154f3516d1670

Authored by zhangqijia
1 parent bbaa6be7

fix: 天赋点自动升级,重置觉醒技能增加消耗品

1. 升级到五星,觉醒技能自动升级
2. 重置觉醒技能增加消耗品
3. 六星设置四星觉醒技,5星的觉醒技能自动升级
src/actions/HeroAction.lua
@@ -151,6 +151,10 @@ function _M.wakeRpc(agent, data) @@ -151,6 +151,10 @@ function _M.wakeRpc(agent, data)
151 if curLevel == 3 then -- 解锁cg 151 if curLevel == 3 then -- 解锁cg
152 role:checkTaskEnter("WakeCG", {heroType = typ}) 152 role:checkTaskEnter("WakeCG", {heroType = typ})
153 end 153 end
  154 +
  155 + if curLevel >= 4 then --自动觉醒技能
  156 + hero:increGeniusTree()
  157 + end
154 hero:mylog({desc = "wake", int1 = hero:getProperty("wakeL")}) 158 hero:mylog({desc = "wake", int1 = hero:getProperty("wakeL")})
155 159
156 role:log("hero_rise", { 160 role:log("hero_rise", {
@@ -1292,8 +1296,6 @@ function _M.saveGeniusTreeRpc(agent, data) @@ -1292,8 +1296,6 @@ function _M.saveGeniusTreeRpc(agent, data)
1292 genius = "" 1296 genius = ""
1293 end 1297 end
1294 hero:updateProperty({field="genius", value=genius}) 1298 hero:updateProperty({field="genius", value=genius})
1295 - print("genius:")  
1296 - print(#genius)  
1297 SendPacket(actionCodes.Hero_saveGeniusTreeRpc, MsgPack.pack({genius = genius})) 1299 SendPacket(actionCodes.Hero_saveGeniusTreeRpc, MsgPack.pack({genius = genius}))
1298 return true 1300 return true
1299 end 1301 end
src/models/HeroPlugin.lua
@@ -394,12 +394,10 @@ function HeroPlugin.bind(Hero) @@ -394,12 +394,10 @@ function HeroPlugin.bind(Hero)
394 local geniusTree = genius:toNumMap() 394 local geniusTree = genius:toNumMap()
395 local tmpgenius = "" 395 local tmpgenius = ""
396 for wakeL, val in pairs(geniusTree) do 396 for wakeL, val in pairs(geniusTree) do
397 - print("wakeL:")  
398 - print(wakeL)  
399 if wakeL < 4 then return maxWakeL end 397 if wakeL < 4 then return maxWakeL end
400 if wakeL % 2 == 0 then 398 if wakeL % 2 == 0 then
401 if geniusTree[wakeL+1] and geniusTree[wakeL+1] ~= val then 399 if geniusTree[wakeL+1] and geniusTree[wakeL+1] ~= val then
402 - return 0 400 + return 0, 0, tmpgenius
403 end 401 end
404 end 402 end
405 maxWakeL = math.max(maxWakeL, wakeL) 403 maxWakeL = math.max(maxWakeL, wakeL)
@@ -409,16 +407,44 @@ function HeroPlugin.bind(Hero) @@ -409,16 +407,44 @@ function HeroPlugin.bind(Hero)
409 tmpgenius = string.format("%s %s=%s", tmpgenius, tostring(wakeL), tostring(val)) 407 tmpgenius = string.format("%s %s=%s", tmpgenius, tostring(wakeL), tostring(val))
410 end 408 end
411 end 409 end
412 - return tonumber(maxWakeL),tmpgenius 410 + return tonumber(maxWakeL), tonumber(geniusTree[maxWakeL]), tmpgenius
  411 + end
  412 +
  413 + function Hero:increGeniusTree()
  414 + local genius = self:getProperty("genius")
  415 + local wakeL = self:getProperty("wakeL")
  416 + local maxWakeL, awake
  417 + maxWakeL, awake, genius = self:checkGeniusTree(genius)
  418 + if maxWakeL >= 4 and wakeL > maxWakeL and maxWakeL % 2 == 0 then
  419 + maxWakeL = maxWakeL + 1
  420 + if #genius == 0 then
  421 + genius = string.format("%s=%s", tostring(maxWakeL), tostring(awake))
  422 + else
  423 + genius = string.format("%s %s=%s", genius, tostring(maxWakeL), tostring(awake))
  424 + end
  425 + end
  426 + return genius
  427 + end
  428 +
  429 + function Hero:resetGeniusTree()
  430 + local unit_starTalent_reset = globalCsv["unit_starTalent_reset"]
  431 + local cost = unit_starTalent_reset:toNumMap()
  432 + if not self.owner:checkItemEnough(cost) then return false end
  433 +
  434 + self.owner:costItems(cost, {log = {desc = "heroGenius", int1 = self:getProperty("id"), int2 = self:getProperty("type")}})
  435 + return true
413 end 436 end
414 437
415 function Hero:saveGeniusTree(wakeL, awake) 438 function Hero:saveGeniusTree(wakeL, awake)
416 local genius = self:getProperty("genius") 439 local genius = self:getProperty("genius")
417 - local tid = self:getProperty("type")  
418 - if not wakeL and not awake then return "" end 440 + local typ = self:getProperty("type")
  441 + local curWakeL = self:getProperty("wakeL")
  442 + if not wakeL or not awake then
  443 + if self:resetGeniusTree() == true then return "" end
  444 + return genius
  445 + end
419 446
420 -  
421 - local heroUnit = csvdb["unitCsv"][tid] 447 + local heroUnit = csvdb["unitCsv"][typ]
422 if not heroUnit then return genius end 448 if not heroUnit then return genius end
423 if not heroUnit.awake_1 or not heroUnit.awake_2 then return genius end 449 if not heroUnit.awake_1 or not heroUnit.awake_2 then return genius end
424 450
@@ -428,9 +454,16 @@ function HeroPlugin.bind(Hero) @@ -428,9 +454,16 @@ function HeroPlugin.bind(Hero)
428 genius = string.format("%s %s=%s", genius, tostring(wakeL), tostring(awake)) 454 genius = string.format("%s %s=%s", genius, tostring(wakeL), tostring(awake))
429 end 455 end
430 456
431 - local maxWakeL, genius = self:checkGeniusTree(genius) 457 + local maxWakeL
  458 + maxWakeL, _, genius = self:checkGeniusTree(genius)
432 if maxWakeL ~= wakeL then 459 if maxWakeL ~= wakeL then
433 genius = self:getProperty("genius") 460 genius = self:getProperty("genius")
  461 + else
  462 +
  463 + if curWakeL > maxWakeL and maxWakeL % 2 == 0 then --自动升一级,举例,6星设置4星觉醒技能。自动升级到5星
  464 + genius = string.format("%s %s=%s", genius, tostring(maxWakeL + 1), tostring(awake))
  465 + maxWakeL, _, genius = self:checkGeniusTree(genius)
  466 + end
434 end 467 end
435 return genius 468 return genius
436 end 469 end
src/models/RoleLog.lua
@@ -136,6 +136,7 @@ local ItemReason = { @@ -136,6 +136,7 @@ local ItemReason = {
136 changeSpark = 1213, -- 穿戴火花 136 changeSpark = 1213, -- 穿戴火花
137 sparkLvlUp = 1214, -- 火花强化 137 sparkLvlUp = 1214, -- 火花强化
138 sparkQualityUp = 1215, -- 火花升华 138 sparkQualityUp = 1215, -- 火花升华
  139 + heroGenius = 1216, -- 英雄天赋点
139 140
140 -- pvp 141 -- pvp
141 pvpCHead = 1301, -- pvp 跨服竞技场头像 142 pvpCHead = 1301, -- pvp 跨服竞技场头像