Le focus NUI est bloqué : le joueur ne peut plus bouger
Un menu s'est fermé mais a gardé le contrôle de la souris et du clavier : le joueur ne peut ni bouger ni écrire.
Faites d'abord ceci
Le joueur peut se reconnecter pour se libérer. Le script doit être corrigé pour que cela cesse.
Ce que ça veut dire
SetNUIFocus(true, true) confie le clavier et la souris au navigateur. Tant qu'ils ne sont pas rendus, le joueur ne peut ni bouger, ni écrire dans le chat, ni ouvrir quoi que ce soit. Une interface qui s'est masquée sans relâcher le focus rend le jeu injouable, écran vide.
Ce qui la provoque
Classé par fréquence : la cause la plus probable en premier.
- 1
Le chemin de fermeture ne relâche pas le focus
L'interface est masquée en CSS ou par un changement d'état et
SetNUIFocus(false, false)n'est jamais appelé. - 2
Une erreur avant la libération
Le gestionnaire de fermeture échoue à mi-chemin, et la ligne de libération ne s'exécute jamais.
- 3
Deux interfaces ouvertes en même temps
L'une se ferme et relâche, l'autre reste ouverte et reprend le focus — ou l'inverse, et celle qui reste ouverte n'a pas le focus.
- 4
La ressource s'est arrêtée alors que l'interface était ouverte
Redémarrer une ressource ne restaure pas le focus tout seul.
- 5
Focus pris mais la page n'est jamais apparue
Le focus a été pris avant le chargement de la page, puis la page a échoué. Combiné à un écran blanc, c'est la pire version : invisible et sans réaction.
Comment savoir laquelle est la vôtre
Peut-il encore tourner la caméra ? Un focus pris avec SetNUIFocus(true, true) verrouille les deux. Si le chat s'ouvre avec T, le focus n'est pas retenu et le problème est ailleurs.
Où regarder
Chaque appel à SetNUIFocus, et si chaque true a son false sur tous les chemins de sortie.
Comment la corriger
Relâchez à un seul endroit, et rendez l'oubli impossible :
local function closeUi()
SetNUIFocus(false, false)
SendNUIMessage({ action = 'close' })
end
RegisterNUICallback('close', function(_, cb)
closeUi()
cb({})
end)
-- et un filet de sécurité
AddEventHandler('onResourceStop', function(res)
if res == GetCurrentResourceName() then SetNUIFocus(false, false) end
end)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 Loading Screen Creator construit une NUI qui marche sans HTML écrit à la main.