function fentian.upmain()
local ui = fentian.parent._ui
local cfgs = fentian.parent.cfg
local first_cfg = cfgs[1]
--获取装备位
local pos = lib:getstditeminfo(first_cfg.name, 88)
local equip_data = lib:equippos(pos)
if not equi
看起来你的代码在获取当前装备配置时遇到了问题。错误信息显示在第45行尝试对 `nil` 值的 `level` 字段进行算术运算。
主要问题在于 `gbl_fentian[equip_data.Name]` 可能返回 `nil`,导致 `cur_cfg` 为 `nil`,然后访问 `cur_cfg.level` 就会报错。
让我帮你分析一下:
```lua
function fentian.upmain()
local ui = fentian.parent._ui
local cfgs = fentian.parent.cfg
local first_cfg = cfgs[1]
-- 获取装备位
local pos = lib:getstditeminfo(first_cfg.name, 88)
local equip_data = lib:equippos(pos)
if not equip_data or not next(equip_data) then
lib:msg("请穿戴焚天装备")
GUI:Win_Close(fentian.parent._parent)
return
end
-- 这里需要检查 equip_data.Name 是否存在
if not equip_data.Name then
lib:msg("装备数据异常")
GUI:Win_Close(fentian.parent._parent)
return
end
local cur_cfg = gbl_fentian[equip_data.Name]
-- 添加详细的调试信息
SL:Print("当前装备名称:", equip_data.Name)
SL:Print("gbl_fentian 表内容:")
for k, v in pairs(gbl_fentian) do
SL:Print(" " .. k)
end
if not cur_cfg then
lib:msg("装备未配置,装备名:" .. (equip_data.Name or "未知"))
GUI:Win_Close(fentian.parent._parent)
return
end
-- 检查 cur_cfg.level 是否存在
if not cur_cfg.level then
lib:msg("装备配置缺少level字段")
GUI:Win_Close(fentian.parent._parent)
return
end
local next_level = cur_cfg.level + 1
local next_cfg = cfgs[next_level]
if not next_cfg then
lib:msg("焚天已满级!")
GUI:Win_Close(fentian.parent._parent)
return
end
-- 继续后续逻辑...
end
```
可能的问题原因:
1. `equip_data.Name` 返回的装备名称与 `gbl_fentian` 表中的键名不匹配
2. `gbl_fentian` 表没有正确初始化
3. 装备名称可能有空格或其他特殊字符
建议你先添加调试信息,看看 `equip_data.Name` 到底是什么,以及 `gbl_fentian` 表中都有哪些键名。这样就能找到不匹配的原因了。
如果还有问题,可以把调试信息发给我,我帮你进一步分析!