Zum Inhalt springen

Anpassung

Fast alles befindet sich in config.lua. Der Rest sind Texte, Daten und die schmale Schicht, die mit deinem Framework kommuniziert.


DateiWas sie bestimmtBearbeitbar
config.luaFramework, Sprache, wer lackieren darf, Items, Befehlsnamen, Lackiererei-MarkerJa
locales/*.luaJede Benachrichtigung und Chat-Vorschlag, eine Datei pro SpracheJa
locales/main.luaDie Funktion, die den Text passend zu Config.Locale auswähltJa
bridge/server.luaFramework-Erkennung, Benachrichtigungen, Admin-Prüfung, Jobs, nutzbare Items, Items entfernenJa
bridge/client.luaFramework-Erkennung und Benachrichtigungen auf SpielerseiteJa
items/ox.lua, items/qb.lua, items/sql.sqlFertige Item-Definitionen zum Kopieren in dein InventarJa
permissions.jsonDie Steam-IDs mit Menü-Berechtigung. Wird von den Give- und Remove-Befehlen geschriebenJa
vehicle_original_colors.jsonOriginalfarbe jedes lackierten Fahrzeugs vor dem ersten Lackieren nach Modell und KennzeichenJa
html/ui.html, html/style.css, html/script.jsDas Menü: Titel, Farbmuster und Aussehen—
data/, stream/Lackdefinitionen und Ramp-Texturen für die Farben 223 bis 242Unverändert lassen
client/main.lua, server/main.luaDie LogikEscrowed

OptionWas sie tutStandard
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.LocaleSprache aller Meldungen. Siehe Sprachen unten"es"
Config.PermissionFileName der JSON-Datei, die die Berechtigungsliste speichert"permissions.json"

OptionWas sie tutStandard
Config.PermissionsNutzt die Berechtigungsliste in permissions.jsontrue
Config.UseJobsErlaubt den Jobs in Config.AuthorizedJobs ebenfalls das Menütrue
Config.AuthorizedJobsErlaubte Jobnamen, wenn UseJobs aktiv istmechanic, police

Die beiden Schalter kombinieren sich wie folgt:

PermissionsUseJobsWer das Menü öffnen darf
ananSpieler auf der Liste und jeder, dessen Job in AuthorizedJobs steht
anausNur Spieler auf der Liste
ausan oder ausJeder

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.


OptionWas sie tutStandard
Config.UseItemsRegistriert die 82 Lack-Items und das Reset-Item als nutzbartrue
Config.ItemsRequirePermissionLässt die Lack-Items denselben Regeln wie das Menü folgen. Aus: Jeder mit einem Item kann es nutzenfalse

Das Reset-Item verlangt niemals eine Berechtigung. Die Itemnamen und der Speicherort der Definitionen stehen unter Installation.


Jeder Name wird in config.lua ohne Schrägstrich festgelegt.

OptionStandardWerWas er tut
Config.Chameleon/chameleonJeder nach den obigen Zugangsregeln BerechtigteÖffnet das Menü. Du musst in einem Fahrzeug sitzen
Config.ChameleonReset/chameleonresetJederSetzt das aktuelle Auto auf die Originalfarbe zurück
Config.ChameleonGive/chameleongive [ID]AdminsFügt die Steam-ID des Spielers zur Berechtigungsliste hinzu
Config.ChameleonRemove/chameleonremove [ID]AdminsEntfernt 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.


Config.Locations ist eine Liste; füge beliebig viele Einträge hinzu. Jeder Eintrag enthält:

FeldWas es tutStandardwert
coordsWo sich der Marker befindetZwei Beispiel-Punkte nahe Burton
radiusWie nah in Metern du sein musst, damit der Hinweis erscheint3.0
markerTypeDer gezeichnete FiveM-Marker1 (ein Kreis auf dem Boden)
markerColorRot, Grün, Blau und Alpha (Deckkraft)Rot bei einem, Grün beim anderen, Alpha 100
markerScaleSeine Größe2.0 × 2.0 × 1.0
notificationDer Hilfetext, der innerhalb des Radius angezeigt wirdPress ~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.


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.


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:

  1. Kopiere locales/en.lua in eine neue Datei, zum Beispiel locales/nl.lua.
  2. Ändere den Sprachcode oben in der neuen Datei auf nl und übersetze die Texte.
  3. Füge locales/nl.lua in fxmanifest.lua sowohl zu client_scripts als auch zu server_scripts neben den anderen Sprachdateien hinzu.
  4. Setze Config.Locale = "nl", führe refresh aus 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.


Zwei Dateien in bridge/ sind die einzigen Schnittstellen der Ressource zu deinem Framework.

DateiWas sie tut
bridge/server.luaErmittelt das Framework, sendet Benachrichtigungen (esx:showNotification oder QBCore:Notify), prüft Admin-Rechte, liest Spielerjobs, registriert nutzbare Items und entfernt verbrauchte Items
bridge/client.luaErmittelt 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.