Commit 6732f756a424c34a98e24e787f796f15edde31cc

Authored by zhouhaihai
1 parent 286a8f95

玩家升级

Showing 2 changed files with 27 additions and 2 deletions   Show diff stats
src/adv/Adv.lua
... ... @@ -604,7 +604,7 @@ function Adv:enemyDead(roomId, blockId, escape)
604 604 local enemyId = block.event.id
605 605 local monsterData = csvdb["event_monsterCsv"][enemyId]
606 606 self:scoreChange(AdvScoreType.Kill, monsterData.type)
607   -
  607 + self.battle.player:addExp(monsterData.exp)
608 608 local item = block.event.item
609 609 if not item then
610 610 local dropData = csvdb["event_dropCsv"][monsterData.dropid]
... ...
src/adv/AdvPlayer.lua
... ... @@ -431,7 +431,32 @@ function Player:initData(data)
431 431 end
432 432  
433 433 function Player:addExp(value)
434   - -- todo
  434 + local newExp = self.exp + value
  435 + local level = self.level
  436 + if level >= #csvdb["adv_levelCsv"] then return end
  437 + while true do
  438 + local curData = csvdb["adv_levelCsv"][level]
  439 + if newExp < curData.exp then break end
  440 + level = level + 1
  441 + newExp = newExp - curData.exp
  442 + if level >= #csvdb["adv_levelCsv"] then break end
  443 + end
  444 + local delta = level - self.level
  445 + if delta > 0 then
  446 + local baseAttr = csvdb["adv_unitCsv"][self.battle.adv.chapterId]
  447 + for _, attr in pairs(AttsEnumEx) do
  448 + if baseAttr[attr] then
  449 + self[attr] = self[attr] + baseAttr[attr] * self.growth * delta
  450 + if attr == "hp" then
  451 + self.hpMax = self.hpMax + baseAttr[attr] * self.growth * delta
  452 + else
  453 + self["_" .. attr] = self["_" .. attr] + baseAttr[attr] * self.growth * delta
  454 + end
  455 + end
  456 + end
  457 + end
  458 + self.level = level
  459 + self.exp = newExp
435 460 end
436 461  
437 462 --cType 0 or nil 值 1 百分比
... ...