esx:getSharedObject ne se déclenche jamais
Un script utilise une ancienne façon de se connecter à ESX que l'ESX moderne a supprimée. Il n'y a pas d'erreur : ça ne marche simplement jamais.
Faites d'abord ceci
Il faut changer une ligne dans le script. Demandez au vendeur une version pour ESX Legacy.
Ce que ça veut dire
TriggerEvent('esx:getSharedObject', cb) a été pendant des années la façon dont tous les scripts ESX obtenaient l'objet du core. ESX Legacy a supprimé l'événement. Le déclenchement ne renvoie pas d'erreur : personne n'écoute, donc le callback ne s'exécute jamais et ESX reste nil pour toujours.
Une fonctionnalité qui ne s'initialise jamais en silence est pire qu'une erreur, et c'est la cause la plus fréquente de « le script ne fait rien et la console est vide ».
Ce qui la provoque
Classé par fréquence : la cause la plus probable en premier.
- 1
Un script écrit pour ESX 1.1 tournant sur ESX Legacy
De loin le plus courant. Des milliers de scripts publiés l'utilisent encore.
- 2
Le motif copié d'un vieux tutoriel
La plupart des tutoriels FiveM en ligne sont antérieurs à Legacy.
- 3
Une ressource migrée à moitié
Un fichier passé à l'export, un autre encore sur l'événement.
Comment savoir laquelle est la vôtre
grep -rn "getSharedObject" mon-script/
S'il apparaît comme un TriggerEvent, c'est l'ancien motif. Si ESX est nil ET qu'il n'y a aucune erreur en console, c'est presque sûrement ça.
Où regarder
Le haut de chaque fichier client et serveur de la ressource.
Comment la corriger
-- ancien, ne fait rien sur ESX Legacy
ESX = nil
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
-- actuel
ESX = exports['es_extended']:getSharedObject()L'export est synchrone, donc la ligne suivante peut déjà utiliser ESX.
Toujours bloqué sur votre propre code ?
Cette page explique ce que cette erreur signifie en général. Collez votre console dans Server Fixer : il classera tout ce qui s'y trouve et vous dira quoi faire en premier ; et si vous préférez ne pas y toucher, ORBIE peut réparer le script et vous rendre la ressource prête à déposer.
bug_reportOuvrir le Server FixerPour ce type d'erreur, le Convertisseur de scripts traduit une ressource entre ESX, QBCore et Qbox.