Lua 尝试为无值项编制索引(帮助!)

Lua 尝试为无值项编制索引(帮助!),lua,lua-table,fivem,Lua,Lua Table,Fivem,所以我犯了这个错误,所以我知道这里可能有一些问题我必须解决,但我不知道如何解决。谢谢 脚本错误:@gcphone/server/server.lua:205:尝试索引nil值(本地“项”) 第205行的代码 ESX.RegisterServerCallback('crew-phone:phone-check', function(source, cb) local xPlayer = ESX.GetPlayerFromId(source) if not xPlayer then

所以我犯了这个错误,所以我知道这里可能有一些问题我必须解决,但我不知道如何解决。谢谢

脚本错误:@gcphone/server/server.lua:205:尝试索引nil值(本地“项”)

第205行的代码

ESX.RegisterServerCallback('crew-phone:phone-check', function(source, cb)
    local xPlayer = ESX.GetPlayerFromId(source)
    if not xPlayer then return; end
    for k, v in pairs(Config.Phones) do
        local items = xPlayer.getInventoryItem(v)
        if items.count > 0 then
            cb(v)
            return
        end
    end
    cb(nil)
end)

ESX.RegisterServerCallback('crew-phone:item-check', function(source, cb, data)
    local xPlayer = ESX.GetPlayerFromId(source)
    if not xPlayer then return; end
    local items = xPlayer.getInventoryItem(data)
    cb(items.count)
end)

此错误告诉您items是一个nil值,Lua对此表示不满,因为您试图将其作为
items.count中的索引。如果
items
nil
这就像参考一本不存在的书的书页

localitems
nil
因为
xPlayer.getInventoryItem(data)
返回
nil

检查本地脚本是否在触发服务器事件时为
数据提供字符串,以及xPlayer是否确实有类似的项

同时检查您的
注册表服务器回调
。在那里定义的函数是回调函数。为什么那个函数参数中还有另一个回调?我认为你把事情弄糊涂了,可能应该再看一下手册

getInventoryItem()
返回
nil