Anpassung
Eine einzige Datei steuert alles, was du anpassen kannst: config.lua. Der Rest besteht aus den Benutzeroberflächen der App und der escrow-geschützten Logik.
Welche Datei entscheidet was?
Abschnitt betitelt „Welche Datei entscheidet was?“| Datei | Was sie entscheidet | Bearbeitbar? |
|---|---|---|
config.lua | Framework, Bildpfad, Ablaufzeit, Zahlungen, Standort, Marker, Blip, Angestellter, Blacklist, alle Texte, App-Name | Ja |
pawnshop.sql | Die drei Tabellen, einmalig zu importieren | Ja |
web/index.html, web/styles.css, web/script.js | Bildschirme, Layout und Beschriftungen der App | — |
web/assets/pawn.png | Das App-Icon | Ja |
web/assets/fries.png | Das Fallback-Bild, wenn ein Item kein Bild hat | Ja |
client/main.lua, server/main.lua | Die interne Logik | Escrowed |
Es gibt keinen Bridge-Ordner und keinen Locales-Ordner: Das Framework ist eine Option weiter unten und die Texte befinden sich direkt in config.lua.
Allgemein
Abschnitt betitelt „Allgemein“| Option | Was sie macht | Standard |
|---|---|---|
Config.Framework | "esx" oder "qb", kleingeschrieben. Nutze bei QBox "qb" — QBox führt QBCore-Ressourcen über seine Kompatibilität aus | "esx" |
Config.InventoryImagePath | Ordner, aus dem Item-Bilder gelesen werden, als resource/folder/. Bei qb-inventory "qb-inventory/html/images/" | "ox_inventory/web/images/" |
Config.Expire | Tage, die ein Angebot online bleibt. Eine Preisänderung setzt den Zähler zurück | 7 |
Zahlungen
Abschnitt betitelt „Zahlungen“| Option | Was sie macht | Standard |
|---|---|---|
Config.Bank | true: Käufer zahlen von der Bank, Verkäufer lassen auf die Bank auszahlen. false: Beide nutzen das Item in Config.Money | true |
Config.Money | Das Inventar-Item, das als Geld dient, wenn Bank aus ist — money, black_money oder ein eigenes | "money" |
Wenn Bank deaktiviert ist, muss das Geld ein echtes Inventar-Item sein, wie es bei ox_inventory der Fall ist. Im Standardinventar von ESX sowie auf QBCore ist Bargeld ein Konto und kein Item; belasse dort Config.Bank = true.
Geld aus Verkäufen landet nicht direkt beim Verkäufer. Es wird dem Guthaben unter Pending in der App gutgeschrieben und muss manuell per Auszahlungs-Button übertragen werden.
Verkauf am Tresen
Abschnitt betitelt „Verkauf am Tresen“| Option | Was sie macht | Standard |
|---|---|---|
Config.RequireLocation | true: Erstellen und Kaufen von Angeboten muss vor Ort im Pfandleihhaus erfolgen | false |
Config.PawnShopLocation | Position des Pfandleihhauses: x, y, z und Blickrichtung des Peds | 412.17, 315.11, 103.13, Heading 194.62 |
Config.InteractionDistance | Maximaler Abstand in Metern zum Drücken von E. Der Server prüft dies ebenfalls | 1.0 |
Config.Marker | Marker an der Tür: Type, Scale (x, y, z) und Color (r, g, b, a) | Typ 20, dunkel blaugrau |
Config.Blip | Wegpunkt-Blip: Sprite, Color, Scale | 480, 32, 1 |
Config.NPC | Ped-Modell (Model) des Angestellten und Übergabe-Animation (Dict und Name) | a_m_m_business_01, mp_common / givetake1_a |
Ablauf bei aktivem RequireLocation: Der Spieler füllt das Angebot aus oder tippt auf Kaufen, das Telefon startet eine Route zum Pfandleihhaus und der Marker erscheint, sobald man sich auf 20 Meter nähert. Drückt man am Marker die Taste E, führt der Angestellte die Übergabeanimation aus und das Geschäft ist abgeschlossen.
Blip und Marker existieren nur, solange der Spieler dort einen Vorgang abschließen muss; es gibt keinen permanenten Blip auf der Karte. Bei deaktiviertem RequireLocation entfallen diese Funktionen komplett.
Config.Blip.Name wird nicht für das Label des Blips genutzt — dieser Name stammt aus Config.Messages.blip_name.
Blacklist
Abschnitt betitelt „Blacklist“Config.BlackList ist eine Liste von Item-Namen, die niemals angeboten werden dürfen. Sie werden in der Auswahlliste ausgeblendet, vom Server abgelehnt und jedes bereits bestehende Angebot eines solchen Items wird samt Items vom Marktplatz gelöscht, sobald das nächste Mal jemand die App öffnet. Ausgeliefert mit burger und weapon_appistol als Beispielen.
Texte und Sprachen
Abschnitt betitelt „Texte und Sprachen“Es gibt keinen Locales-Ordner. Alle anpassbaren Texte liegen auf Englisch direkt in config.lua:
| Option | Was darin steht |
|---|---|
Config.locales.en.app_name | Name der App auf dem Smartphone sowie Titel ihrer Benachrichtigungen |
Config.locales.en.app_description | Untertitel im App Store |
Config.Messages | Jede Benachrichtigung: Angebot erstellt, gekauft, gelöscht, fehlende Felder, Fehler, “Gehe zum Pfandleihhaus”, die Taste E und Blip-Name |
Um in einer anderen Sprache zu spielen, übersetze diese Texte direkt an Ort und Stelle. Einige wenige Serverantworten — “Insufficient items”, “Inventory full”, “This item cannot be listed for sale”, “You do not own this offer” und ähnliche — sind fest in der escrow-geschützten Serverdatei hinterlegt und bleiben auf Englisch.
Auf ESX erscheinen Benachrichtigungen als lb-phone-Mitteilungen der App. Auf QBCore wird das eigene Benachrichtigungssystem des Frameworks genutzt.
Item-Bilder
Abschnitt betitelt „Item-Bilder“Die App lädt jedes Item als <Config.InventoryImagePath><item name>.png direkt aus deiner Inventar-Ressource. Fehlt ein Bild, wird stattdessen web/assets/fries.png als Platzhalter angezeigt; ersetze diese Datei, wenn du eine andere Standardgrafik wünschst.