Lua попытка выполнить арифметику по глобальному «количеству» (нулевое значение) - PullRequest
0 голосов
/ 14 ноября 2018

, когда я пытаюсь использовать функцию скрипта, появляется эта ошибка:

attempt to perform arithmetic on global 'amount' (a nil value)

это функция:

<>
function openAdvertisements( player, command )
    local advertisements = { } --These will hold our advertisements to send to the client and populate our advertisement tables.

    if not player then player = source end

    --Fetch all of the advertisements from the database --mysql:query("SELECT * FROM 'advertisements' WHERE 1")
    for _, ad in ipairs( call(getResourceFromName("mysql"), "query_free", "UPDATE `accounts` SET `dm`=`dm`-".. amount*2000 .." WHERE `id`=".. tostring(gameAccountID)  .."")  ) do
        if tonumber( ad.expiry ) >= tonumber( getRealTime().timestamp ) then --Check if the advertisement has expired, delete it if so.
            ad.author = exports.mysql:select_one( "characters", { id = ad.created_by } ).charactername
            table.insert( advertisements, ad )
        else
            deleteAdvertisement( ad.id )
        end
    end

    triggerClientEvent( player, resourceName .. ":display_all", root, advertisements, exports.integration:isPlayerAdmin( player ) ) --Send the advertisements to the client to create the GUI.
end

ОШИБКА относится к этой строке:

for _, ad in ipairs( call(getResourceFromName("mysql"), "query_free", "UPDATE `accounts` SET `dm`=`dm`-".. amount*2000 .." WHERE `id`=".. tostring(gameAccountID)  .."")  ) do

1 Ответ

0 голосов
/ 15 ноября 2018

Вы не определили локальную переменную amount, поэтому lua ищет ее в глобальной таблице (_ENV или _G, в зависимости от версии lua), где она тоже не существует (nil для не ключ).

Lua пытается выявить nil*2000, что приводит к этой ошибке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...