Fivem Lua客户端Marker绘制脚本报Config全局空值错误求助
Fivem脚本
attempt to index a nil value (global 'Config')报错修复方案 报错根因
客户端逻辑代码执行时,全局Config变量还未完成初始化,本质是资源脚本加载顺序错误或配置文件路径不匹配。
修复步骤
- 第一步:确认配置文件路径正确
检查你__resource.lua中声明的client/config.lua路径是否真实存在,确保config.lua确实放在client文件夹下,路径拼写完全匹配,大小写也需要注意(Linux服务器对大小写敏感)。 - 第二步:调整资源脚本加载顺序
修改__resource.lua配置,确保配置文件优先于客户端逻辑代码加载,参考配置如下:-- 仅服务端需要用到Config时保留shared_script配置 -- shared_script 'client/config.lua' client_scripts { 'client/config.lua', -- 把配置文件放在客户端脚本最前面 'client/main.lua' } server_scripts { 'server/main.lua' } - 第三步:添加加载防御判断
修改客户端逻辑代码,等待Config初始化完成后再执行绘制逻辑,避免重载资源时的瞬时报错:Citizen.CreateThread(function() -- 等待Config加载,最多等待5秒避免异常死循环 local waitCount = 0 while not Config and waitCount < 500 do Citizen.Wait(10) waitCount = waitCount + 1 end if not Config then print("[错误] Config配置加载失败,请检查文件路径") return end -- 原有绘制逻辑 while true do Citizen.Wait(1) DrawMarker(Config.MarkerType, 400.3, -1157.4, 28.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 4.0, 4.0, 4.0, 255, 0, 0, 170, false, true, 2, nil, nil," ", false) end end) - 第四步:检查全局变量覆盖
你在客户端开头声明的ESX = nil不会影响Config变量,排查所有客户端代码中是否存在不小心给Config赋值为nil的逻辑。
内容的提问来源于stack exchange,提问作者Pakuss
相关产品推荐
相关产品推荐

