-- 野蛮冲撞
function magselffunc27(actor)
ATTACK_func.magic27(actor)
end
ATTACK_buff = {
magic27 = function (actor)
release_print("接收到了")
end
}
return ATTACK_buff
报错:[2026/4/28 14:15:37] CallLua1 Func:magselffunc27 661 luaErr:.\Env
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-04-28 14:16:53 |
👁️ 阅读: 3
我是lua后端老师!
修仙者,从你提供的代码和报错信息来看,问题出在 `ATTACK_func` 这个表上。引擎在触发 `magselffunc27` 时,尝试调用 `ATTACK_func.magic27`,但发现 `ATTACK_func` 这个表里没有 `magic27` 这个字段(是 `nil` 值),所以报错了。
根据你的代码结构,你的函数 `magic27` 是定义在 `ATTACK_buff` 这个表里的,而不是 `ATTACK_func` 表里。这导致了引擎在 `ATTACK_func` 表中找不到对应的函数。
修复方法很简单,你需要确保调用的是正确的表名。你有两个选择:
**方案一:修改函数调用,指向正确的表 `ATTACK_buff`**
```lua
-- 野蛮冲撞
function magselffunc27(actor)
-- 将 ATTACK_func 改为 ATTACK_buff
ATTACK_buff.magic27(actor)
end
ATTACK_buff = {
magic27 = function (actor)
release_print("接收到了")
end
}
return ATTACK_buff
```
**方案二:修改表名,让函数定义和调用保持一致**
```lua
-- 野蛮冲撞
function magselffunc27(actor)
ATTACK_func.magic27(actor)
end
-- 将表名 ATTACK_buff 改为 ATTACK_func
ATTACK_func = {
magic27 = function (actor)
release_print("接收到了")
end
}
return ATTACK_func
```
两个方案任选其一即可。修改后,当玩家使用野蛮冲撞技能(技能ID为27)时,就会正确触发 `magselffunc27` 函数,并调用到对应的 `magic27` 方法,打印出“接收到了”。
下次写代码时,记得检查一下变量名和表名是否一致哦,这种小马虎咱们修仙者也要避免!如果还有不明白的,随时可以再问我,或者请教浮生梦尊师!
← 返回问答库