Un evento del framework no existe
Un script llamó a otro y no contestó nadie. Muchas veces no hay error ninguno: la función simplemente no pasa.
Haz esto primero
Comprueba que los dos scripts estén corriendo y que sean versiones pensadas la una para la otra.
Qué significa
El código disparó un evento que nadie escucha. FiveM no da error por eso: el disparo no hace nada en silencio, y el síntoma es una función que nunca se ejecuta en vez de una línea roja. Cuando sí aparece un mensaje, normalmente es el propio framework quejándose.
Qué lo provoca
Ordenado por la frecuencia con la que es la respuesta.
- 1
El evento se renombró entre versiones del framework
esx:getSharedObjectse quitó en ESX Legacy.QBCore:Server:OnPlayerLoadedyQBCore:Client:OnPlayerLoadedson eventos distintos para lados distintos. - 2
El recurso que escucha no está arrancado
El manejador existe pero no está registrado porque su recurso está caído.
- 3
Nunca se llamó a RegisterNetEvent
Un evento de red necesita tanto
RegisterNetEventcomo un manejador.AddEventHandlersolo no acepta un disparo que venga de la red. - 4
Confusión entre cliente y servidor
TriggerEventes local a ese lado.TriggerServerEventyTriggerClientEventcruzan la frontera. Usar el local para un manejador remoto dispara al vacío. - 5
Una errata
El nombre del evento es una cadena, así que nada lo comprueba.
Cómo saber cuál es el tuyo
Poné un print dentro del manejador. Si no se ejecuta nunca, el disparo no le está llegando. Después buscá el nombre exacto del evento en todos los recursos:
grep -rn "esx:playerLoaded" resources/
Si lo único que aparece es el disparo, no lo escucha nadie.
Dónde mirar
Los dos lados: el disparo y el manejador al que iba dirigido.
Cómo arreglarlo
-- servidor
RegisterNetEvent('myres:buy')
AddEventHandler('myres:buy', function(item)
local src = source
end)
-- cliente
TriggerServerEvent('myres:buy', item)¿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.