Andere Menüs übernehmen

Was ohne Änderung übernommen wird, was einen Stellvertreter braucht und was nicht geht.

ErsetztWieSchalter
esx_menu_defaultdirektBridges.esx.default
esx_menu_listdirektBridges.esx.list
esx_menu_dialogdirektBridges.esx.dialog
esx_contextStellvertreterBridges.context.enabled
qb-menu, EventsdirektBridges.qb
qb-menu, ExportsStellvertreterBridges.qb
ox_libgleiche Form, eigene Exports

ESX-Menüs

ESX legt ein Menü unter einem Typ ab und gibt es an den weiter, der den Typ registriert hat. Wer default registriert, ersetzt also esx_menu_default und kein Script, das ein Menü öffnet, merkt etwas davon.

Stopp die Resource, die du ersetzt. Beide würden denselben Typ registrieren, die zuletzt gestartete gewinnt und nichts sagt es dir: Das Menü geht auf, aber es ist das andere. Der Start-Report nennt genau diesen Fall.

esx.icons ist aus, weil ESX-Menüs nie Icons hatten: esx_inventory schreibt an jedes Item ein Icon, das nie gezeichnet wurde. esx.html ist an, weil ESX-Scripts HTML in Labels schreiben und es so meinen, etwa den grünen Kontostand. Aus nimmt das HTML heraus, statt es als Text zu zeigen.

esx_context

ESX.OpenContext und die anderen rufen exports['esx_context'] auf und es_extended tut das nur, wenn eine Resource mit diesem Namen läuft. bridges/esx_context ist so eine: fünf Exports, die an cs_menu weitergeben.

  • Ein Kontextmenü zur Zeit, ein neues ersetzt das offene.
  • onSelect(menu, element), in menu.eles steht jeder getippte inputValue.
  • Eingaben vom Typ text, number mit inputMin/inputMax und radio.
  • unselectable und disabled, canClose = false, RefreshContext und PreviewContext.
  • Die Taste, die ein Vorschau-Menü fokussiert, ist Bridges.context.focusKey, linke Alt-Taste. Spieler ändern sie unter Einstellungen, Tastenbelegung, FiveM.
  • LocalPlayer.state['context:active'] ist gesetzt, solange eins offen ist.

qb-menu

Zwei Hälften. Die Events gehören niemandem, cs_menu hört sie direkt, auch ohne qb-menu. Läuft das echte qb-menu noch, lässt cs_menu ihm die Events, damit niemand zwei Menüs bekommt. Die Exports gehören der Resource, die sie registriert. exports['qb-menu']:openMenu beantwortet deshalb nur eine Resource namens qb-menu und bridges/qb-menu ist genau das.

Gelesen wird die ganze qb-Form: header, txt, icon, disabled, isMenuHeader und params mit event, args, isServer, isCommand, isQBCommand und isAction.

ox_lib

ox_lib lässt sich nicht übernehmen. lib.registerContext ist eine Funktion in ox_lib selbst, keine andere Resource kann dafür einspringen. cs_menu bietet dieselbe Form auf seinen eigenen Exports an und ein Script stellst du bewusst um: lib. durch exports.cs_menu: ersetzen. Siehe ox_lib-Form.

Frage offen geblieben?

Schreib uns im Discord. Mit Konsolen-Auszug, Framework und Script-Version ist die erste Antwort meistens schon die Lösung.

Zum Support