esx:getSharedObject no se dispara nunca
Un script usa una forma vieja de conectarse a ESX que el ESX moderno quitó. No da error: sencillamente nunca funciona.
Haz esto primero
Al script hay que cambiarle una línea. Pídele al vendedor una versión para ESX Legacy.
Qué significa
TriggerEvent('esx:getSharedObject', cb) fue durante años la forma en que todos los scripts de ESX conseguían el objeto del core. ESX Legacy quitó el evento. El disparo no da error: nadie lo escucha, así que el callback sencillamente no se ejecuta nunca y ESX se queda en nil para siempre.
Una función que nunca se inicializa en silencio es peor que un error, y esta es la causa más común de «el script no hace nada y en la consola no hay nada».
Qué lo provoca
Ordenado por la frecuencia con la que es la respuesta.
- 1
Un script escrito para ESX 1.1 corriendo sobre ESX Legacy
De lejos lo más común. Miles de scripts publicados todavía lo usan.
- 2
El patrón copiado de un tutorial viejo
Casi todos los tutoriales de FiveM que hay en internet son anteriores a Legacy.
- 3
Un recurso migrado a medias
Un archivo actualizado al export, otro todavía usando el evento.
Cómo saber cuál es el tuyo
grep -rn "getSharedObject" mi-script/
Si aparece como un TriggerEvent, es el patrón viejo. Si ESX es nil Y no hay ningún error en la consola, casi seguro que es esto.
Dónde mirar
La cabecera de cada archivo de cliente y de servidor del recurso.
Cómo arreglarlo
-- viejo, no hace nada en ESX Legacy
ESX = nil
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
-- actual
ESX = exports['es_extended']:getSharedObject()El export es síncrono, así que la línea de abajo ya puede usar ESX.
¿Sigues atascado en tu propio código?
Esta página es lo que suele significar este error. Pega tu consola en Server Fixer y ordenará todo lo que haya en ella y te dirá qué hacer primero; y si prefieres no tocarlo, ORBIE puede reparar el script y devolverte el recurso listo para soltar.
bug_reportAbrir el Server FixerPara este tipo de error, el Conversor de scripts traduce un recurso entre ESX, QBCore y Qbox.