Der NUI-Fokus hängt: der Spieler kann sich nicht bewegen
Ein Menü hat sich geschlossen, aber Maus und Tastatur behalten — der Spieler kann sich weder bewegen noch tippen.
Mach das zuerst
Der Spieler kann sich durch Neu-Joinen befreien. Das Script muss repariert werden, damit es aufhört.
Was es bedeutet
SetNUIFocus(true, true) übergibt Tastatur und Maus an den Browser. Bis sie zurückgegeben werden, kann der Spieler sich nicht bewegen, nicht im Chat schreiben und nichts anderes öffnen. Eine Oberfläche, die sich nur versteckt, aber den Fokus nie freigibt, macht das Spiel unspielbar — bei leerem Bildschirm.
Was es auslöst
Sortiert danach, wie oft es die Antwort ist.
- 1
Der Schließweg gibt den Fokus nicht frei
Die Oberfläche wird per CSS oder Zustandswechsel versteckt, und
SetNUIFocus(false, false)wird nie aufgerufen. - 2
Ein Fehler vor der Freigabe
Der Schließ-Handler wirft auf halbem Weg einen Fehler, und die Freigabezeile läuft nie.
- 3
Zwei Oberflächen gleichzeitig offen
Eine schließt und gibt frei, die andere ist noch offen und nimmt ihn wieder — oder umgekehrt, und die noch offene hat keinen Fokus.
- 4
Die Resource stoppte, während die Oberfläche offen war
Eine Resource neu zu starten stellt den Fokus nicht von selbst wieder her.
- 5
Fokus genommen, aber die Seite kam nie
Der Fokus wurde vor dem Laden der Seite gesetzt, und dann scheiterte die Seite. Zusammen mit einem leeren Bildschirm ist das die schlimmste Variante: unsichtbar und reaktionslos.
Wie du erkennst, welcher deiner ist
Kann er die Kamera noch drehen? Mit SetNUIFocus(true, true) genommener Fokus sperrt beides. Wenn sich der Chat mit T öffnet, wird der Fokus nicht gehalten und es liegt an etwas anderem.
Wo du nachsehen musst
Jeder SetNUIFocus-Aufruf und ob zu jedem true auf allen Ausstiegswegen ein false gehört.
Wie du es behebst
Gib ihn an einer Stelle frei und mach es unmöglich, das zu überspringen:
local function closeUi()
SetNUIFocus(false, false)
SendNUIMessage({ action = 'close' })
end
RegisterNUICallback('close', function(_, cb)
closeUi()
cb({})
end)
-- und ein Sicherheitsnetz
AddEventHandler('onResourceStop', function(res)
if res == GetCurrentResourceName() then SetNUIFocus(false, false) end
end)Hängst du immer noch an deinem eigenen Code?
Diese Seite sagt, was dieser Fehler üblicherweise bedeutet. Füg deine Konsole in Server Fixer ein: es sortiert alles darin und sagt dir, was zuerst dran ist; und wenn du lieber nicht ranwillst, kann ORBIE das Script reparieren und dir die Resource fertig zum Einsetzen zurückgeben.
bug_reportServer Fixer öffnenFür diese Art Fehler Loading Screen Creator baut NUI, die ohne handgeschriebenes HTML funktioniert.