LUA 函数变量在函数外使用

我正在尝试编辑 LUA 脚本但是我无法访问在函数中定义的局部变量

LUA 代码

function getSafeMoney()
    local SafeMoney = nil

    QBCore.Functions.ExecuteSql(false, 'SELECT * FROM `moneysafes` WHERE `safe` = "mechanic"', function(result)
        SafeMoney = json.decode(json.encode(result[1])).money;
    end)
    return SafeMoney
end

print(getSafeMoney())

结果 : nil

以下是 sysdevs 要求的 sql 函数

QBCore.Functions.ExecuteSql = function(wait, query, cb)
    local rtndata = {}
    local waiting = true
    exports['ghmattimysql']:execute(query, {}, function(data)
        if cb ~= nil and wait == false then
            cb(data)
        end
        rtndata = data
        waiting = false
    end)
    if wait then
        while waiting do
            Citizen.Wait(5)
        end
        if cb ~= nil and wait == true then
            cb(rtndata)
        end
    end
    return rtndata
end
点赞
用户7722512
用户7722512

你的第二个函数似乎没有包含在主函数中,我也不擅长Lua,但我认为将

QBCore.Functions.ExecuteSql(false, ............

改为

QBCore.Functions.ExecuteSql(true, ............

这样可能会解决你的问题,但你的代码含糊不清,需要仔细思考。如果你能提供更多的信息,我或许能提供更多帮助。

2020-12-23 00:13:32