local config = {
[1] = {11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27},
[2] = {28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44}
}
function main(actor,num)
if num == '' or num == nil then
num = 1
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-04-01 20:25:23 |
👁️ 阅读: 0
我是lua后端老师!
小仙,你好!看了你的代码,问题出在 `str2` 的拼接逻辑上。
你的循环中,`config[2][i]` 和 `config[1][i]` 都是数字,但在拼接字符串时,你直接用了 `..xianshi..`,而 `xianshi` 是数字,这会导致 `xianshi` 被转为字符串,但你的 `config` 表中,`config[2]` 和 `config[1]` 的索引是从 1 开始的,而 `config[2]` 只有两个元素(28 到 44),但循环 `i` 最大是 `#config[1]`(即 17)。
当 `i` 大于 2 时,`config[2][i]` 是 `nil`,所以 `xianshi` 会变成 `nil`,`nil` 拼接进字符串就会变成 `"nil"`,导致图片路径错误(比如 `xixi/yidalu/xunzhangshenjiang/nil.png`)。
你需要检查 `config[2][i]` 是否存在,如果不存在,就使用默认值(比如 `config[1][i]`)。
修正后的循环部分:
```lua
for i = 1, #config[1] do
local xianshi
if i == num * 1 then
xianshi = config[2][i] or config[1][i] -- 如果 config[2][i] 不存在,就用 config[1][i]
else
xianshi = config[1][i]
end
str2 = str2 .. [[<Button|id=a]] .. i .. [[|x=65.0|y=67.0|nimg=xixi/yidalu/xunzhangshenjiang/]] .. xianshi .. [[.png|size=18|link=@dianjixunzhang,]] .. i .. [[>]]
end
```
这样 `str2` 就不会出现 `nil` 值,图片路径也就正常了。
另外,你的 `config` 表里 `config[2]` 只有 17 个元素(28 到 44),但 `config[1]` 有 17 个元素(11 到 27),所以当 `i` 超过 2 时,`config[2][i]` 确实是 `nil`,需要处理。
如果还有问题,可以再问我,或者请教浮生梦尊师!
我是lua后端老师!
小仙,你好!看了你的代码,问题出在 `str2` 的拼接逻辑上。
你的循环中,`config[2][i]` 和 `config[1][i]` 都是数字,但在拼接字符串时,你直接用了 `..xianshi..`,而 `xianshi` 是数字,这会导致 `xianshi` 被转为字符串,但你的 `config` 表中,`config[2]` 和 `config[1]` 的索引是从 1 开始的,而 `config[2]` 只有两个元素(28 到 44),但循环 `i` 最大是 `#config[1]`(即 17)。
当 `i` 大于 2 时,`config[2][i]` 是 `nil`,所以 `xianshi` 会变成 `nil`,`nil` 拼接进字符串就会变成 `"nil"`,导致图片路径错误(比如 `xixi/yidalu/xunzhangshenjiang/nil.png`)。
你需要检查 `config[2][i]` 是否存在,如果不存在,就使用默认值(比如 `config[1][i]`)。
修正后的循环部分:
```lua
for i = 1, #config[1] do
local xianshi
if i == num * 1 then
xianshi = config[2][i] or config[1][i] -- 如果 config[2][i] 不存在,就用 config[1][i]
else
xianshi = config[1][i]
end
str2 = str2 .. [[<Button|id=a]] .. i .. [[|x=65.0|y=67.0|nimg=xixi/yidalu/xunzhangshenjiang/]] .. xianshi .. [[.png|size=18|link=@dianjixunzhang,]] .. i .. [[>]]
end
```
这样 `str2` 就不会出现 `nil` 值,图片路径也就正常了。
另外,你的 `config` 表里 `config[2]` 只有 17 个元素(28 到 44),但 `config[1]` 有 17 个元素(11 到 27),所以当 `i` 超过 2 时,`config[2][i]` 确实是 `nil`,需要处理。
如果还有问题,可以再问我,或者请教浮生梦尊师!
← 返回问答库