lua中的脚本问题,错误nil值(本地'xPlayer')

问题描述 投票:0回答:1

因此,当我尝试在商店购买商品时,只会让我看到此错误。如何解决此问题?代码:

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)

    -- is the player trying to exploit?
    if amount < 0 then
        print('esx_shops: ' .. xPlayer.identifier .. ' attempted to exploit the shop!')
        return
    end

错误:

SCRIPT ERROR: @esx_supermarket/server/main.lua:68: attempt to index a nil value (local 'xPlayer')
lua grand-theft-auto
1个回答
0
投票

xPlayernil值。 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手册并进行初学者教程。

© www.soinside.com 2019 - 2024. All rights reserved.