Lua 尝试执行全局变量 'amount' 上的算术运算(一个空值)

当我尝试使用脚本函数时,出现以下错误:

尝试执行全局变量 'amount' 上的算术运算(一个空值)

这是该函数:

<>
function openAdvertisements( player, command )
    local advertisements = { } -- 这些将保存我们要发送到客户端并填充我们广告表的广告。

    如果没有播放器,就用 source 替代

    -- 从数据库中获取所有广告 --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
        如果 tonumber( ad.expiry ) >= tonumber( getRealTime().timestamp ) then -- 检查广告是否过期,如果是,则将其删除。
            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 ) ) -- 向客户端发送广告以创建 GUI。
end

ERROR 涉及以下行:

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

你没有定义本地变量 amount,因此 Lua 在全局表中查找它(根据 Lua 版本不同,可能是 _ENV_G),但在那里也不存在(没有非存在键的 nil)。

Lua试图执行 nil*2000,导致出现了这个错误。

2018-11-15 09:06:40