LUA 遇到“)”意外符号

fivem

local loaded = false

function loadTxd(source, args, raw)
    local txd = CreateRuntimeTxd('duiTxd')
    local duiObj = CreateDui('https://media.discordapp.net/attachments/813996951066116097/854844624114548786/lcd_sign1.gif', 4096, 1024)
    _G.duiObj = duiObj
    local dui = GetDuiHandle(duiObj)
    local tx = CreateRuntimeTextureFromDuiHandle(txd, 'duiTex', dui)
    AddReplaceTexture('bus', 'lcd_sign_1', 'duiTxd', 'duiTex')
end)

Citizen.CreateThread function loadTxd(source, args, raw)
    while loaded == false do
        Wait(0)
        local playerCar = GetVehiclePedIsIn(GetPlayerPed(-1))
        if playerCar ~= 0 then
            if GetEntityModel(playerCar) == GetHashKey('bus') then
                loadTxd()
                loaded = true
            end
        end
        if not loaded then
            local veh = nil
            for veh in EnumerateVehicles() do
                if GetEntityModel(playerCar) == GetHashKey('bus') then
                    loadTxd()
                    loaded = true
                    break
                end
            end
        end
    end
end)

说它是 lua5.3: ...Desktop/rextester_linux_2.0/usercode/29524824/source.lua:10: 遇到意外符号“)”,但我在任何地方都找不到它,我甚至试着删除整个第10行并将所有代码粘贴回去,然后在第10行放上end)。

点赞
用户1175455
用户1175455

这里有一些语法错误:

  • 第 10 行 end 后多了一个 ),这就是你看到的错误。
  • Citizen.CreateThread 后缺少一个开括号。
  • 当你写 function foo(...) 时,相当于写了 foo = function(...)。当你像你在传递给 Citizen.CreateThread 的函数一样在内联中使用它时,你不能给函数命名。

因此,为了修复语法错误,你的代码中间部分(第 10~12 行)应该为:

...
end

Citizen.CreateThread(function(source, args, raw)
...
2021-06-16 23:18:31