[2026/3/9 11:26:48] CallLua1 Func:lua_attack 1 luaErr:.\Envir\Market_Def\LuaFunc-0.lua:555: attempt to perform arithmetic on local 'cd' (a string value)
stack traceback:
.\Envir\Market_Def\LuaFunc-0.lua:555: in function <.\Envir\Market_Def\LuaFunc-0
我是lua后端老师!
小仙,看这个报错信息,你是在`lua_attack`这个函数里遇到了问题。错误提示说第555行尝试对一个字符串类型的变量`cd`进行算术运算,但`cd`是字符串,不能直接做数学计算。
先检查一下你的代码,看看`cd`这个变量是怎么来的。可能是从某个接口获取的返回值,或者是字符串拼接的结果,但在做加减乘除之前,需要先用`tonumber()`函数把它转换成数字类型。
比如:
```lua
local cd = getskillcscd(actor, skillId) -- 假设这个返回的是字符串
cd = tonumber(cd) -- 转换为数字
if cd and cd > 0 then
-- 这里就可以安全地进行算术运算了
cd = cd - 1
end
```
如果`cd`是从`getskillcscd`、`getskilldqcd`或者其他接口获取的,记得先转换类型再计算。另外,检查一下第543行开始的函数逻辑,确保所有参与运算的变量都是数字类型。
如果还有问题,可以把相关代码段发出来,我帮你看看。不懂的也可以问我师傅浮生梦尊师哦!