[2026/6/11 11:40:52] Print:--------------------ErrorHandler-----------------------
[2026/6/11 11:40:52] Print:...\MirServer\Mir200\Envir/Custom/module/TG/福利大厅_新.lua:65: attempt to call a nil value (method 'getDayTLInt')
[2026/6/11 11:40:52] Print:---
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-06-11 11:42:33 |
👁️ 阅读: 3
我是Lua后端老师!小仙,你好呀!
看到你的报错信息了,这个错误很明显:
```
attempt to call a nil value (method 'getDayTLInt')
```
问题出在第65行,你调用了 `GMLib:getDayTLInt(actor, self.varName)`,但是 `GMLib` 库中并没有 `getDayTLInt` 这个方法。
让我看看你的代码中使用了哪些类似的函数,然后给你正确的解决方案:
从你的代码中可以看到,你使用了:
1. `GMLib:getDayTLInt` - 这个不存在,导致报错
2. `GMLib:setDayTLInt` - 同样不存在
3. `GMLib:getObjDayTLInt` - 也不存在
在996引擎中,处理每日数据应该使用引擎提供的函数。根据你的需求,你应该使用 `getplayvar` 和 `setplayvar` 函数。
让我帮你修正这些函数调用:
```lua
-- 修正前的错误代码(第65行):
local killData = GMLib:getDayTLInt(actor, self.varName) --杀所有怪数据
local killData1 = GMLib:getDayTLInt(actor, self.varName1) --杀精英怪数据
local killData2 = GMLib:getDayTLInt(actor, self.varName2) --杀魔级怪数据
local killData3 = GMLib:getDayTLInt(actor, self.varName3) --杀黑怪怪数据
-- 修正后的正确代码:
local killData = getplayvar(actor, self.varName) or 0 --杀所有怪数据
local killData1 = getplayvar(actor, self.varName1) or 0 --杀精英怪数据
local killData2 = getplayvar(actor, self.varName2) or 0 --杀魔级怪数据
local killData3 = getplayvar(actor, self.varName3) or 0 --杀黑怪怪数据
-- 其他需要修正的地方:
-- 第70行:
local data = GMLib:getObjDayTLInt(actor, self.VarReward) or 0
-- 修正为:
local data = getplayvar(actor, self.VarReward) or 0
-- killMonster函数中的多处调用:
-- 例如:
GMLib:setDayTLInt(actor, self.varName, curCount + 1)
-- 修正为:
setplayvar(actor, self.varName, curCount + 1)
-- 第73行:
GMLib:setDayTLInt(actor, self.VarReward, 1)
-- 修正为:
setplayvar(actor, self.VarReward, 1)
```
另外,我还注意到你的代码中有些地方使用了 `GetInt` 和 `SetInt`,这些函数在996引擎中是不存在的。你应该统一使用 `getplayvar` 和 `setplayvar`。
比如:
```lua
-- 第106行:
local killData = GetInt(0,actor, self.killData) or 0
-- 应该改为:
local killData = getplayvar(actor, self.killData) or 0
-- 第107行:
SetInt(0,actor, self.killData, killData + 1)
-- 应该改为:
setplayvar(actor, self.killData, killData + 1)
```
小仙,记住在996引擎中,处理玩家变量主要使用这些函数:
- `getplayvar` - 获取玩家变量
- `setplayvar` - 设置玩家变量
- `getplaydef` - 获取玩家默认变量
- `setplaydef` - 设置玩家默认变量
这些函数都是引擎自带的,不需要通过 `GMLib` 这样的自定义库来调用。如果你还有其他的自定义函数调用报错,记得检查一下这些函数是否真的存在于你的项目中。
下次写代码的时候要仔细检查函数名哦,不懂的可以问浮生梦尊师!
← 返回问答库