example
example

教程 新老插件兼容性问题插件启动后esx服务端无限刷-error-getsharedobject-解决方案

BIG桃

活跃的用户
论坛元老
高级用户
认证用户
这种报错一般出现在新版esx端中
56b4c02df02ed12b5e930ca9eda356b86c4e5a42_2_690x388.jpeg
打开插件的client.lua 找到

ESX = nil

Citizen.CreateThread(function()
while ESX == nil do
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
Citizen.Wait(0)
end
end)



将其更改为ESX = exports["es_extended"]:getSharedObject()

同样打开server.lua

找到ESX = nil

TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)

更改为ESX = exports["es_extended"]:getSharedObject()



一般来说更改完这两个插件就可以正常启用了 如果还不行的话可以尝试在

__resource.lua/fxmanifest.lua

当中加入

shared_script '@es_extended/imports.lua'
 

Yann

站长
管理成员
GTAOS管理组
认证卖家
认证用户
本 月 名 人 榜 最 佳
感谢分享
 

?丁宇?

用户
高级用户
认证用户
第二种办法:
首先前往 es_extended - client - common.lua 文件, 找到下方代码
lua:
AddEventHandler("esx:getSharedObject", function()
    local Invoke = GetInvokingResource()
    print(("[^1ERROR^7] Resource ^5%s^7 Used the ^5getSharedObject^7 Event, this event ^1no longer exists!^7 Visit https://documentation.esx-framework.org/tutorials/tutorials-esx/sharedevent for how to fix!"):format(Invoke))
end)
将其替换为:
lua:
AddEventHandler('esx:getSharedObject', function(cb)
    cb(ESX)
end)
之后前往 es_extended - server - common.lua 文件, 同样找到下方代码
lua:
AddEventHandler("esx:getSharedObject", function()
    local Invoke = GetInvokingResource()
    print(("[^1ERROR^7] Resource ^5%s^7 Used the ^5getSharedObject^7 Event, this event ^1no longer exists!^7 Visit https://documentation.esx-framework.org/tutorials/tutorials-esx/sharedevent for how to fix!"):format(Invoke))
end)
将其替换为:
lua:
AddEventHandler('esx:getSharedObject', function(cb)
  cb(ESX)
end)
 

渐变_

用户
认证用户
大佬, 是改某代码里的某一个位置,还是把这段代码都改成ESX = exports["es_extended"]:getSharedObject(),找到地方,但不知道怎么改了.
 

附件

  • 7a57ec40-2714-4c93-8053-1f78767e85e6.png
    7a57ec40-2714-4c93-8053-1f78767e85e6.png
    117 KB · 查看: 8
最后编辑:

BIG桃

活跃的用户
论坛元老
高级用户
认证用户
大佬, 是改某代码里的某一个位置,还是把这段代码都改成ESX = exports["es_extended"]:getSharedObject(),找到地方,但不知道怎么改了.
我觉得我这个教学够详细了啊
 

BIG桃

活跃的用户
论坛元老
高级用户
认证用户
大佬, 是改某代码里的某一个位置,还是把这段代码都改成ESX = exports["es_extended"]:getSharedObject(),找到地方,但不知道怎么改了.
ESX = nil

Citizen.CreateThread(function()
while ESX == nil do
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
Citizen.Wait(0)
end
end)全部改了
 
顶部