xPlayer
- это значение nil
. nil
значения не могут быть проиндексированы. Это приводит к ошибке.
Так что что-либо вроде xPlayer[something]
, xPlayer.something
или xPlayer:something()
недопустимо.
В вашем первом примере
local xPlayer = ESX.GetPlayerFromId(_source)
local sourceItem = xPlayer.getInventoryItem(itemName)
xPlayer
- это nil
, потому что ESX.GetPlayerFromId(_source)
не вернул игрока. Скорее всего, потому что _source
это nil
. По крайней мере, в вашем коде нет ничего, что указывало бы на то, что source
не является nil
.
Прежде чем пытаться проиндексировать возможные значения nil
, проверьте, являются ли они nil
.
Пожалуйста, прочитайте руководство Lua и сделайте учебник для начинающих.