计算公式放配置
故事背景,数值要求属性计算公式写配置第一版是这样的 formula = formula = "function(self)\nreturn self.hp_develop*(1+self.hp_outbattle_mul)+self.hp_outbattle_adj\nend",
load会报错,而且还有换行符,直接改成formula = "return self.hp_develop*(1+self.hp_outbattle_mul)+self.hp_outbattle_adj"
-- 修改配置中的公式为表达式形式
local config = {formula = "self.hitrate_outbattle*(1+self.hitrate_inbattle_mul)+self.hitrate_inbattle_adj"
}-- 解析函数调整为
local function parseFormula(formula_str)local func, err = load("return function(self) return " .. formula_str .. " end")if not func thenprint("加载公式错误:", err)return nilendreturn func()
endlocal formula_func = parseFormula(config.formula)local player = {hitrate_outbattle = 0.75,hitrate_inbattle_mul = 0.2,hitrate_inbattle_adj = 0.1
}
local hitrate = formula_func(player)
print(hitrate)
print(0.75*(1+0.2)+0.1)