THE ORB
Studio wird gestartet

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.

groupsSpieler hängen fest und können sich nicht bewegencodeBraucht einen Entwickler

Mach das zuerst

Der Spieler kann sich durch Neu-Joinen befreien. Das Script muss repariert werden, damit es aufhört.

bug_reportFüg lieber deine ganze Konsole ein

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. 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. 2

    Ein Fehler vor der Freigabe

    Der Schließ-Handler wirft auf halbem Weg einen Fehler, und die Freigabezeile läuft nie.

  3. 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. 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. 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 öffnen

Für diese Art Fehler Loading Screen Creator baut NUI, die ohne handgeschriebenes HTML funktioniert.

Fehler, die mit diesem zusammen auftreten