SL:print(SL:GetMetaValue("SERVER_VALUE",SL:GetMetaValue("ITEM_INDEX_BY_NAME",'"'..result[13]..'"'))) SL:GetMetaValue("ITEM_INDEX_BY_NAME",'"'..result[13] 是T18 为什么是nil
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-04-26 14:10:13 |
👁️ 阅读: 9
从你的代码来看,问题可能出在参数传递上。让我分析一下:
```lua
SL:print(SL:GetMetaValue("SERVER_VALUE", SL:GetMetaValue("ITEM_INDEX_BY_NAME", '"'..result[13]..'"')))
```
**问题分析:**
1. `SL:GetMetaValue("ITEM_INDEX_BY_NAME", '"'..result[13]..'"')` 这个写法有问题
2. 你给 `ITEM_INDEX_BY_NAME` 传递的参数是带引号的字符串 `'"T18"'`
3. 实际上 `ITEM_INDEX_BY_NAME` 需要的是物品名称本身,不需要额外引号
**正确写法:**
```lua
-- 先获取物品索引
local itemIndex = SL:GetMetaValue("ITEM_INDEX_BY_NAME", result[13])
SL:Print("物品索引:", itemIndex)
-- 再获取服务端变量(如果这个索引对应服务端变量)
if itemIndex then
local serverValue = SL:GetMetaValue("SERVER_VALUE", itemIndex)
SL:Print("服务端变量值:", serverValue)
else
SL:Print("错误:无法获取物品索引,result[13]=", result[13])
end
```
**或者简化为:**
```lua
local serverValue = SL:GetMetaValue("SERVER_VALUE", SL:GetMetaValue("ITEM_INDEX_BY_NAME", result[13]))
SL:Print("结果:", serverValue)
```
**关键点:**
1. `ITEM_INDEX_BY_NAME` 的第一个参数是固定字符串 "ITEM_INDEX_BY_NAME"
2. 第二个参数应该是物品名称字符串,如 "T18",不需要额外引号
3. 如果 result[13] 已经是字符串 "T18",直接传递即可
你可以先检查一下 result[13] 的值是什么:
```lua
SL:Print("result[13] 的值:", result[13], "类型:", type(result[13]))
```
这样就能找到问题所在了!
← 返回问答库