Zum Inhalt springen

Anpassung

Was jedes Item bewirkt, wird im Menü zusammengestellt und in der Datenbank gespeichert. Die Dateien regeln den Rest: den Befehl, Tastenbelegungen, Darstellung und die Kommunikation mit deinem Framework.


DateiWas sie bestimmtOffen?
config.luaSprache, Befehl, Abbruchtaste, Interaktion mit platzierten Props, Bildpfad, FortschrittsbalkenJa
bridge/client_bridge.luaBenachrichtigungen, Leben, Rüstung, Stress, Hunger und Durst, Item-Anzahl, Jobs, Target, ProgressbarJa
bridge/server_bridge.luaFramework-Erkennung, benutzbare Items, Items geben/nehmen, Jobs, Benachrichtigungen, ItemlisteJa
locales/*.luaAlle Texte, im Spiel und im MenüJa
data/*.luaDie Listen hinter den AuswahlmenüsJa
html/Das Menü (HTML, CSS, JS)Lesbar
client/, server/Item-LogikVerschlüsselt (Escrow)

OptionWas sie machtStandard
Config.LocaleSprache des Menüs und der Nachrichten. Siehe Sprachen'en'
Config.CommandBefehl zum Öffnen und Schließen des Menüs'itemcreator'
Config.CommandDescriptionName dieses Befehls in FiveMs Tastenbelegung, wo eine Taste zugewiesen werden kann. Standardmäßig keine belegt'Open Item Creator Menu'
Config.CancelKeyStandardtaste zum Abbrechen von Aktionen, die durch ein Item gestartet wurden. Siehe unten'X'
Config.InteractionWie ein platziertes Prop aufgehoben wird: 'drawtext', 'ox_target' oder 'qb-target'. Bei beiden Target-Werten nutzt die Bridge das laufende System (ox_target/qb-target)'drawtext'
Config.ImageInventoryPathPfad zu den Itembildern als <path><item name>.png'nui://ox_inventory/web/images/'
Config.ProgressBar'custom' für die integrierte Leiste, 'ox_lib' für ox_lib. Läuft ox_lib nicht, wird automatisch die integrierte Leiste genutzt'custom'

Kein ox_inventory im Einsatz? Setze Config.ImageInventoryPath auf den Bilderordner deines Inventars, z. B. nui://qb-inventory/html/images/.


BefehlStandardtasteWas er bewirkt
/itemcreatorkeineÖffnet oder schließt das Menü. Erfordert ACE-Permission mic_itemcreator.open
/cancelitemanimConfig.CancelKey (X)Stoppt Animation, Szenario oder Gehstil, setzt Geschwindigkeit zurück, beendet Superkräfte und entfernt ein angeheftetes Prop

Beim Positionieren eines Attach Prop gelten diese Tasten. Jede Taste ist in FiveMs Tastenbelegung unter einem „Placement:“-Namen gelistet, sodass Spieler sie anpassen können:

TasteFunktion
← → ↑ ↓Prop nach links, rechts, vor, zurück bewegen
Bild auf / Bild abNach oben oder unten bewegen
Numpad 4 / 6Gieren (Yaw)
Numpad 8 / 5Nicken (Pitch)
Numpad 7 / 9Rollen (Roll)
XAnimation in der Vorschau abspielen
EBestätigen
RücktasteAbbrechen

Alles, was im Menü aus einer Liste ausgewählt werden kann, stammt aus data/. Du kannst jede Datei erweitern:

DateiInhalt
data/animations.luaAnimationen
data/scenarios.luaSzenarien
data/walkingstyles.luaGehstile
data/bones.luaBones, an denen ein Prop angeheftet werden kann
data/particles.luaPartikeleffekte
data/screeneffects.luaBildschirmeffekte
data/sounds.luaSounds
data/cars.luaFahrzeuge nach Label und Modell
data/peds.luaPed-Modelle
data/clothing.luaAnimationen beim Anziehen von Kleidungsstücken oder Props

Behalte das Format vorhandener Einträge bei. Das Menü liest diese Dateien beim Öffnen ein; nach Änderungen starte die Ressource neu.


Neun Dateien sind in locales/ enthalten:

Config.LocaleSprache
enEnglisch
esSpanisch
deDeutsch
frFranzösisch
itItalienisch
ptPortugiesisch
ruRussisch
ch-znChinesisch
jpJapanisch

Der Kommentar in config.lua nennt auch tr und ch; keine von beiden existiert. Verwende die obigen Codes.

Dieselbe Datei übersetzt die Ingame-Nachrichten und das Menü, es gibt also nur einen einzigen Ort für Anpassungen.

Neue Sprache hinzufügen:

  1. Kopiere locales/en.lua in eine neue Datei, z. B. locales/pl.lua.
  2. Ändere darin Locales['en'] zu deinem Sprachcode und übersetze den Text auf der rechten Seite. Behalte Schlüssel und alle %s exakt bei.
  3. Füge die Datei in fxmanifest.lua unter shared_scripts oberhalb von locales/lib.lua hinzu.
  4. Setze Config.Locale auf deinen Code, führe refresh aus und starte neu.

Ein fehlender Schlüssel erzeugt in der Konsole Translation key "…" not found und zeigt den Schlüssel direkt im UI an.


Zwei offene Dateien in bridge/. Ändere keine Funktionsnamen — der Rest der Ressource ruft sie namentlich auf.

bridge/server_bridge.lua

FunktionVerwendungszweck
(Erkennung)Nutzt ESX, wenn es_extended läuft, andernfalls QBCore, wenn qb-core läuft. QBox wird über seine QBCore-Kompatibilität als qb-core erkannt
Bridge.RegisterUsableItemRegistriert jedes konfigurierte Item als benutzbar bei deinem Framework
Bridge.AddItem, Bridge.RemoveItem, Bridge.GetItemCountItems: Bundles, Aufheben, benötigte Items, Remove on Use
Bridge.GetPlayerJob, Bridge.GetPlayerJobGradeJob-Einschränkung
Bridge.NotifyServerseitige Benachrichtigungen
Bridge.GetAllItemsItemliste im Menü: aus ox_inventory, dann ESX-registrierte Items, dann QBCores Shared Items

bridge/client_bridge.lua

FunktionVerwendungszweck
Bridge.NotifyJede Benachrichtigung. Fällt ohne Framework auf den GTA-Feed zurück
Bridge.AddHealth, Bridge.AddArmorLeben/Rüstung
Bridge.AddFoodThirstEssen/Trinken: esx_status unter ESX; unter QBCore die Events consumables:server:addHunger und addThirst
Bridge.AddStressStress: esx_status unter ESX; consumables:server:addStress unter QBCore
Bridge.GetItemCountAlways Attached Prop: Anzahl aus ox_inventory, falls aktiv, andernfalls Spielerdaten
Bridge.AddTargetEntityAufhebe-Option an platzierten Props für ox_target oder qb-target
Bridge.ProgressBarFortschrittsbalken: ox_lib oder integriert. Enthält eine markierte Stelle mit Beispiel zum Hinzufügen weiterer Progressbar-Ressourcen

Dein HUD nutzt andere Events für Hunger, Durst oder Stress? Passe sie in Bridge.AddFoodThirst und Bridge.AddStress an. Anderes Benachrichtigungssystem? Ersetze den Inhalt von Bridge.Notify. Anderes Framework oder Inventar? Implementiere die entsprechenden Funktionen in beiden Dateien.


Network im Menü zeigt Item-Konfigurationen, die andere Serverbetreiber geteilt haben. Import fragt ab, welches deiner eigenen Items diese Konfiguration erhalten soll, und öffnet sie anschließend zur Anpassung und zum Speichern. Um ein eigenes Item zu teilen, exportiere es aus deiner Itemliste mit einem öffentlichen Namen, einer Beschreibung und einem Autorennamen — es wird sofort für alle Server im Netzwerk sichtbar.

Die Liste wird von GitHub bezogen; dein Server benötigt daher ausgehenden Internetzugriff, um die Einträge zu laden.