Anpassung
Fast alles befindet sich in config.lua. Der Rest sind Texte, Daten und die schmale Schicht, die mit deinem Framework kommuniziert.
Welche Datei entscheidet was
Abschnitt betitelt „Welche Datei entscheidet was“| Datei | Was sie bestimmt | Bearbeitbar |
|---|---|---|
config.lua | Framework, Sprache, wer lackieren darf, Items, Befehlsnamen, Lackiererei-Marker | Ja |
locales/*.lua | Jede Benachrichtigung und Chat-Vorschlag, eine Datei pro Sprache | Ja |
locales/main.lua | Die Funktion, die den Text passend zu Config.Locale auswählt | Ja |
bridge/server.lua | Framework-Erkennung, Benachrichtigungen, Admin-Prüfung, Jobs, nutzbare Items, Items entfernen | Ja |
bridge/client.lua | Framework-Erkennung und Benachrichtigungen auf Spielerseite | Ja |
items/ox.lua, items/qb.lua, items/sql.sql | Fertige Item-Definitionen zum Kopieren in dein Inventar | Ja |
permissions.json | Die Steam-IDs mit Menü-Berechtigung. Wird von den Give- und Remove-Befehlen geschrieben | Ja |
vehicle_original_colors.json | Originalfarbe jedes lackierten Fahrzeugs vor dem ersten Lackieren nach Modell und Kennzeichen | Ja |
html/ui.html, html/style.css, html/script.js | Das Menü: Titel, Farbmuster und Aussehen | — |
data/, stream/ | Lackdefinitionen und Ramp-Texturen für die Farben 223 bis 242 | Unverändert lassen |
client/main.lua, server/main.lua | Die Logik | Escrowed |
Allgemein
Abschnitt betitelt „Allgemein“| Option | Was sie tut | Standard |
|---|---|---|
Config.Framework | "auto", "esx" oder "qbcore". Auto nutzt das jeweils aktive aus es_extended und qb-core; QBox zählt dank QBCore-Kompatibilität als qb-core. Festgelegt nutzt QBox "qbcore" | "auto" |
Config.Locale | Sprache aller Meldungen. Siehe Sprachen unten | "es" |
Config.PermissionFile | Name der JSON-Datei, die die Berechtigungsliste speichert | "permissions.json" |
Wer das Menü öffnen darf
Abschnitt betitelt „Wer das Menü öffnen darf“| Option | Was sie tut | Standard |
|---|---|---|
Config.Permissions | Nutzt die Berechtigungsliste in permissions.json | true |
Config.UseJobs | Erlaubt den Jobs in Config.AuthorizedJobs ebenfalls das Menü | true |
Config.AuthorizedJobs | Erlaubte Jobnamen, wenn UseJobs aktiv ist | mechanic, police |
Die beiden Schalter kombinieren sich wie folgt:
Permissions | UseJobs | Wer das Menü öffnen darf |
|---|---|---|
| an | an | Spieler auf der Liste und jeder, dessen Job in AuthorizedJobs steht |
| an | aus | Nur Spieler auf der Liste |
| aus | an oder aus | Jeder |
Die Liste basiert auf dem Steam-Identifikator. Ein Spieler ohne aktives Steam kann nicht hinzugefügt werden; der Give-Befehl meldet dann, dass sein Steam-Identifikator nicht ermittelt werden konnte.
| Option | Was sie tut | Standard |
|---|---|---|
Config.UseItems | Registriert die 82 Lack-Items und das Reset-Item als nutzbar | true |
Config.ItemsRequirePermission | Lässt die Lack-Items denselben Regeln wie das Menü folgen. Aus: Jeder mit einem Item kann es nutzen | false |
Das Reset-Item verlangt niemals eine Berechtigung. Die Itemnamen und der Speicherort der Definitionen stehen unter Installation.
Befehle
Abschnitt betitelt „Befehle“Jeder Name wird in config.lua ohne Schrägstrich festgelegt.
| Option | Standard | Wer | Was er tut |
|---|---|---|---|
Config.Chameleon | /chameleon | Jeder nach den obigen Zugangsregeln Berechtigte | Öffnet das Menü. Du musst in einem Fahrzeug sitzen |
Config.ChameleonReset | /chameleonreset | Jeder | Setzt das aktuelle Auto auf die Originalfarbe zurück |
Config.ChameleonGive | /chameleongive [ID] | Admins | Fügt die Steam-ID des Spielers zur Berechtigungsliste hinzu |
Config.ChameleonRemove | /chameleonremove [ID] | Admins | Entfernt sie wieder |
“Admin” bedeutet auf ESX die Gruppe admin oder superadmin, auf QBCore die Berechtigung admin oder god. Beide Abfragen befinden sich in bridge/server.lua, falls deine Bezeichnungen abweichen.
Lackiererei-Marker
Abschnitt betitelt „Lackiererei-Marker“Config.Locations ist eine Liste; füge beliebig viele Einträge hinzu. Jeder Eintrag enthält:
| Feld | Was es tut | Standardwert |
|---|---|---|
coords | Wo sich der Marker befindet | Zwei Beispiel-Punkte nahe Burton |
radius | Wie nah in Metern du sein musst, damit der Hinweis erscheint | 3.0 |
markerType | Der gezeichnete FiveM-Marker | 1 (ein Kreis auf dem Boden) |
markerColor | Rot, Grün, Blau und Alpha (Deckkraft) | Rot bei einem, Grün beim anderen, Alpha 100 |
markerScale | Seine Größe | 2.0 × 2.0 × 1.0 |
notification | Der Hilfetext, der innerhalb des Radius angezeigt wird | Press ~INPUT_CONTEXT~ to open the Chameleon menu |
Der Marker wird ab 10 Metern Entfernung gezeichnet. Die Anzeige erscheint nur innerhalb von radius und in einem Fahrzeug; E öffnet dann das Menü mit derselben Berechtigungsprüfung wie der Befehl.
Der Text von notification steht direkt in config.lua, nicht in den Sprachdateien, übersetze ihn also dort.
Das Menü
Abschnitt betitelt „Das Menü“html/ui.html enthält die Farbmuster — eines pro Farb-ID von 161 bis 242 — und den Titel des Menüs, “Chameleon Paintings”, der direkt in der HTML-Seite steht statt aus den Locales geladen zu werden. html/style.css verleiht jedem Farbmuster seine Vorschaufarbe.
Sprachen
Abschnitt betitelt „Sprachen“Neun Sprachen werden in locales/ mitgeliefert: en, es, fr, de, it, pt, pl, ru und tr. Trage einen dieser Codes in Config.Locale ein.
Um eine Sprache hinzuzufügen:
- Kopiere
locales/en.luain eine neue Datei, zum Beispiellocales/nl.lua. - Ändere den Sprachcode oben in der neuen Datei auf
nlund übersetze die Texte. - Füge
locales/nl.luainfxmanifest.luasowohl zuclient_scriptsals auch zuserver_scriptsneben den anderen Sprachdateien hinzu. - Setze
Config.Locale = "nl", führerefreshaus und starte die Ressource neu.
Ein fehlender Textschlüssel wird als Translation [key] does not exist ausgegeben, ohne Abstürze zu verursachen, wodurch sich unvollständige Dateien leicht erkennen lassen.
Die Bridge
Abschnitt betitelt „Die Bridge“Zwei Dateien in bridge/ sind die einzigen Schnittstellen der Ressource zu deinem Framework.
| Datei | Was sie tut |
|---|---|
bridge/server.lua | Ermittelt das Framework, sendet Benachrichtigungen (esx:showNotification oder QBCore:Notify), prüft Admin-Rechte, liest Spielerjobs, registriert nutzbare Items und entfernt verbrauchte Items |
bridge/client.lua | Ermittelt das Framework auf Spielerseite und zeigt Benachrichtigungen an (ESX.ShowNotification oder QBCore.Functions.Notify) |
Wird kein Framework gefunden, weichen die Benachrichtigungen auf Chat-Nachrichten aus.
Anpassung. Für ein eigenes Benachrichtigungssystem ersetzt du den Inhalt von Bridge.Notify in beiden Dateien. Für ein eigenes Admin-System passt du Bridge.IsAdmin an. Für ein anderes Framework als ESX, QBCore oder QBox implementierst du die jeweiligen Bridge.-Funktionen in bridge/server.lua (Framework-Erkennung, Notify, IsAdmin, GetPlayerJob, RegisterUsableItem und RemoveItem) — mehr benötigt die Ressource nicht.