local Util = require("common.Util") local CombatDefine = require("combat.CombatDefine") local SkillExcel = require("excel.skill").skill local BufferExcel = require("excel.buffer").buffer local MoshouExcel = require("excel.moshou") local MoshouGrid = require("moshou.MoshouGrid") local CombatImpl = require("combat.CombatImpl") local MoshouLogic = require("moshou.MoshouLogic") local function calcHurt(skillConf,lv) local hurt = skillConf.hurtRate[1] local hurtRateGrow = skillConf.hurtRateGrow hurt = hurt + hurtRateGrow * (lv - 1) return hurt end local function calcArgs(skillConf,lv) local args = Util.copyTable(skillConf.args) local argsGrow = skillConf.argsGrow local cmd = skillConf.cmd if #argsGrow > 0 then if cmd == "attr" then for i = 1,#args do local v1 = args[i] local v2 = argsGrow[i] v1[2] = v1[2] + math.ceil((lv / v2[2]) * v2[1]) end elseif cmd == "hp" or cmd == "hpHurt" or cmd == "hurt" or cmd == "jobHurt" or cmd == "jobHurt" then local v2 = argsGrow[1] args[2] = args[2] + math.ceil((lv / v2[2]) * v2[1]) elseif cmd == "mp" then local v2 = argsGrow[1] args[1] = args[1] + math.ceil((lv / v2[2]) * v2[1]) end end return args end function calcGrowArgs(pet) local skillID = pet.skillList[1][1] local skillConf = SkillExcel[skillID] if skillConf.type == CombatDefine.SKILL_TYPE4 then pet.hurt = calcHurt(skillConf, pet.lv) pet.args = calcArgs(skillConf, pet.lv) end end function clacBuffArgs(pet) local skillID = pet.skillList[1][1] local skillConf = SkillExcel[skillID] if not skillConf then return end pet.buffers = pet.buffers or {} local lv = pet.lv local len = 0 for i = 1,#skillConf.buffers do local bufLv = lv - 1 local bufferId = skillConf.buffers[i][1] local buffConf = BufferExcel[bufferId] if buffConf and #buffConf.args > 0 then pet.buffers[bufferId] = pet.buffers[bufferId] or {} if buffConf.cmd == "attr" or buffConf.cmd == "attrQusan" then local bugArg = {} for j = 1,#buffConf.args do local attrId = buffConf.args[j][1] local val = buffConf.args[j][2] local growRate = 0 if buffConf.argsGrow[j] then local growLv = buffConf.argsGrow[j][2] if bufLv >= growLv then growRate = buffConf.argsGrow[j][1] growRate = math.floor(bufLv/growLv) * growRate end table.insert(bugArg, {attrId,growRate+val}) end end pet.buffers[bufferId].args = bugArg len = len + 1 elseif #buffConf.args > 0 then local bugArg = {} local attrId = buffConf.args[1] local val = buffConf.args[2] or 0 local growRate = 0 if #buffConf.argsGrow > 0 then local growLv = buffConf.argsGrow[1][2] if bufLv >= growLv then growRate = buffConf.argsGrow[1][1] growRate = math.floor(bufLv/growLv) * growRate end end --print(" bufferId attrId , val + growRate ", bufferId , attrId, val + growRate) bugArg = {attrId, val + growRate} pet.buffers[bufferId].args = bugArg len = len + 1 end end end pet.buffers[0] = len end