lua 脚本问题,错误:空值(本地 'xPlayer')

当我在商店购买物品时,就会出现这个错误。如何修复? 代码:

RegisterServerEvent('esx_shops:buyItem')
AddEventHandler('esx_shops:buyItem', function(itemName, amount, zone)
    local _source = source
    local xPlayer = ESX.GetPlayerFromId(_source)
    local sourceItem = xPlayer.getInventoryItem(itemName)

    amount = ESX.Round(amount)

    -- 是玩家试图利用漏洞吗?
    if amount < 0 then
        print('esx_shops: ' .. xPlayer.identifier .. ' 试图利用商店!')
        return
    end

错误:

SCRIPT ERROR: @esx_supermarket/server/main.lua:68: attempt to index a nil value (local 'xPlayer')
点赞
用户2858170
用户2858170

xPlayer是一个nil值。 无法对nil值进行索引。 这样做会导致错误。

因此,任何类似于xPlayer [something]xPlayer.somethingxPlayer:something()的内容都是不允许的。

在您的第一个示例中

local xPlayer = ESX.GetPlayerFromId(_source)
    local sourceItem = xPlayer.getInventoryItem(itemName)

xPlayernil,因为ESX.GetPlayerFromId(_source)没有返回玩家。 最有可能是因为_sourcenil。 至少在您的代码中没有任何迹象表明source不是nil

在尝试索引可能是nil值之前,请检查它们是否为nil

请阅读Lua手册并进行初学者教程。

2020-01-20 07:14:30