Fahrzeughausarchitektur
Ein Autohändlersystem ist einer der wichtigsten wirtschaftlichen Treiber auf jedem FiveM-Roleplay-Server und dient als Gateway, über das Spieler ihre Fahrzeuge erwerben. Ein gut gestalteter Händler geht über ein einfaches Kaufmenü hinaus und bietet Funktionen wie Fahrzeugvorschauen in einem Ausstellungsraum, Probefahrten, Finanzierungsoptionen, Inzahlungnahmen und Verkaufsverfolgung für Händlermitarbeiter. Die Architektur gliedert sich in ein Katalogsystem, das verfügbare Fahrzeuge mit Preisen und Kategorien definiert, eine Ausstellungsraumanzeige, mit der Spieler Fahrzeuge vor dem Kauf inspizieren können, eine Transaktionsmaschine, die Käufe und Finanzierung abwickelt, und eine Mitarbeiterverwaltungsebene für von Spielern geführte Händler. Jede Ebene kommuniziert über servervalidierte Ereignisse, um Preismanipulationen und das unbefugte Spawnen von Fahrzeugen zu verhindern.
Fahrzeugkatalog und Kategoriesystem
Der Fahrzeugkatalog definiert jedes zum Kauf verfügbare Auto und ist zum einfachen Durchsuchen in Kategorien unterteilt. Jeder Eintrag enthält den Spawn-Namen, die Anzeigebezeichnung, den Preis, die Kategorie und optionale Metadaten wie Höchstgeschwindigkeit und Sitzplatzanzahl für die Ausstellungsraumanzeige. Speichere den Katalog in einer gemeinsamen Konfigurationsdatei, auf die sowohl der Client als auch der Server verweisen, um sicherzustellen, dass die Preisvalidierung serverseitig erfolgt, während der Client dieselben Daten zum Rendern verwendet. Hier ist eine strukturierte Katalogdefinition:
Die Preisnachschlagetabelle Config.VehiclePrices ermöglicht die O(1)-Preisvalidierung auf dem Server und verhindert so, dass Clients manipulierte Preise senden. Überprüfe immer den Modellnamen anhand dieser Tabelle, bevor du einen Kauf tätigen. Erwäge das Laden von Fahrzeugpreisen aus einer Datenbanktabelle statt aus einer Konfigurationsdatei, wenn du möchtest, dass Serveradministratoren die Preise über ein Admin-Panel anpassen, ohne den Server neu zu starten.
Showroom-Vorschausystem
Im Showroom können Spieler Fahrzeuge in einer kontrollierten Umgebung inspizieren, bevor sie einen Kauf tätigen. Lasse ein Vorschaufahrzeug an einer bestimmten Ausstellungsraumposition erscheinen, installiere eine Kamera, die der Spieler um das Fahrzeug drehen kann, und zeigst du Statistiken neben dem Modell an. Das Vorschaufahrzeug sollte nicht interaktiv sein und verschwinden, wenn der Spieler das Menü schließt oder ein anderes Fahrzeug auswählt. Hier ist die clientseitige Vorschaulogik:
Ermögliche die Drehung der Kamera durch Mausbewegungen oder Tastatursteuerungen, während der Ausstellungsraum geöffnet ist. Der Orbit-Kamera-Ansatz ermöglicht es den Spielern, das Fahrzeug aus allen Winkeln zu betrachten, ohne um es herumlaufen zu müssen. Füge der Vorschau die Anpassung der Fahrzeugfarbe hinzu, damit Spieler vor dem Kauf die gewünschte Lackierung sehen können, was die Reue des Käufers und Supportanfragen verringert.
Kauf- und Transaktionsabwicklung
Fahrzeugkäufe müssen vollständig serverseitig abgewickelt werden, um eine Ausnutzung zu verhindern. Der Server überprüft, ob sich der Spieler das Fahrzeug leisten kann, zieht die Zahlung ab, generiert ein eindeutiges Nummernschild, erstellt den Fahrzeugdatensatz in der Datenbank und benachrichtigt den Kunden, das gekaufte Fahrzeug zu erzeugen. Unterstütze sowohl Barkäufe als auch Banküberweisungen und integriere optional dein Banksystem für Überweisungen:
Die Funktion GenerateUniquePlate verwendet eine Wiederholungsschleife, um die Eindeutigkeit der Platte in der gesamten Datenbank zu gewährleisten. Während bei 8 alphanumerischen Zeichen Kollisionen statistisch gesehen selten sind, sorgt die Prüfung für absolute Sicherheit. Protokolliere jeden Verkauf in einer separaten Tabelle zur administrativen Überprüfung und Analyse der Serverökonomie. So kannst du nachverfolgen, welche Fahrzeuge am beliebtesten sind und wie hoch der gesamte Cashflow durch das Autohaus ist.
Testfahrtsystem
Durch Probefahrten können Spieler ein Fahrzeug vor dem Kauf erleben, was besonders bei teuren Fahrzeugen wichtig ist. Erzeuge ein temporäres Fahrzeug mit einem Timer und einer geografischen Grenze, das den Spieler automatisch zum Händler zurückbringt, wenn die Zeit abgelaufen ist oder er den erlaubten Bereich verlässt. Markiere das Probefahrtfahrzeug, damit es nicht in einer Garage gelagert oder modifiziert werden kann, um zu verhindern, dass Spieler das System nutzen, um kostenlose Fahrzeuge zu erhalten:
Die geografische Grenze verhindert, dass Spieler mit dem Testfahrzeug über die Karte fahren und es dann stehen lassen. Stelle den Radius auf einen angemessenen Abstand ein, der eine sinnvolle Fahrt durch umliegende Straßen ermöglicht und gleichzeitig die Wiederherstellbarkeit des Fahrzeugs gewährleistet. Das „TESTDRVE“-Schild dient anderen Spielern als optischer Hinweis darauf, dass das Fahrzeug nur vorübergehend ist.
Finanzierungs- und Zahlungspläne
Biete für teure Fahrzeuge eine Finanzierungsoption an, bei der die Spieler eine Anzahlung leisten und dann im Laufe der Zeit Raten zahlen. Verfolge den Kredit in einer Datenbanktabelle mit dem Restsaldo, dem Zahlungsplan und dem Zinssatz. Wenn ein Spieler Zahlungen versäumt, kann das Fahrzeug zur Rücknahme angemeldet werden. Diese Funktion erhöht die wirtschaftliche Tiefe und macht High-End-Fahrzeuge auch für Spieler zugänglich, die nicht genug Geld für einen vollständigen Kauf angesammelt haben. Implementiere die Ratenzahlungsprüfung als serverseitigen wiederkehrenden Job, der täglich während des Spiels ausgeführt wird, Zahlungen vom Bankkonto des Spielers abbucht und ihn über jede Belastung benachrichtigt. Wenn das Bankguthaben nicht ausreicht, erhöhe einen Zähler für versäumte Zahlungen und gibst du eine Warnung aus. Nach einer konfigurierbaren Anzahl versäumter Zahlungen markierest du das Fahrzeug zur Rücknahme, wo es aus der Garage des Spielers entfernt und in den Bestand des Händlers zurückgebracht wird.
Verfolgung von Mitarbeiterverkäufen und Provisionen
Von Spielern geführte Händler benötigen Tools zur Verwaltung des Verkaufspersonals, zur Verfolgung der Leistung und zur Verteilung von Provisionen. Wenn ein Händlermitarbeiter einen Verkauf vermittelt, erhält er einen konfigurierbaren Prozentsatz des Fahrzeugpreises als Provision. Verfolge die Anzahl der Verkäufe jedes Mitarbeiters, den erzielten Gesamtumsatz und die verdienten Provisionen in einer Datenbanktabelle. Erstelle ein Mitarbeiter-Dashboard, auf das über den NUI des Händlers zugegriffen werden kann und das persönliche Statistiken, den aktuellen Verkaufsverlauf und eine Rangliste zum Vergleich der Leistung des gesamten Vertriebsteams anzeigt. Der Eigentümer oder Manager des Autohauses sollte Zugriff auf ein Admin-Panel haben, um Provisionssätze anzupassen, Mitarbeiter hinzuzufügen oder zu entfernen und aggregierte Verkaufsberichte anzuzeigen. Dadurch verwandelt sich das Autohaus von einer statischen NPC-Interaktion in ein dynamisches Spielergeschäft mit echten Managementverantwortungen und Wettbewerbsanreizen.
Optimierungs- und Anti-Exploit-Maßnahmen
Händler-Scripts sind mit gängigen Exploit-Vektoren konfrontiert, die proaktiv entschärft werden müssen. Am kritischsten ist die Preismanipulation, bei der ein veränderter Kunde eine Kaufanfrage mit einem niedrigeren Preis sendet. Überprüfe die Preise immer serverseitig anhand des Katalogs und vertrauen du niemals den vom Kunden gemeldeten Werten. Begrenze Kaufereignisse, um schnelle Käufe zu verhindern, die zu Duplikaten von Fahrzeugen führen oder zu Datenbank-Race-Bedingungen führen könnten. Stelle für die Showroom-Vorschau sicher, dass das Vorschaufahrzeug mit false für den Netzwerkparameter erstellt wird, sodass es nur lokal existiert und nicht von anderen Spielern betreten oder gestohlen werden kann. Bereinige Vorschaufahrzeuge im onResourceStop-Handler, um verwaiste Entitäten zu verhindern, wenn die Ressource neu gestartet wird. Cache bei Servern mit mehreren Händlern den Fahrzeugkatalog im Speicher und ladest du ihn nur dann neu, wenn ein Administrator einen Aktualisierungsbefehl auslöst, um wiederholte Lesevorgänge der Konfigurationsdatei bei jedem Öffnen des NUI zu vermeiden. Überwache die Kaufprotokolle auf Anomalien, z. B. wenn derselbe Spieler in schneller Folge Dutzende von Fahrzeugen kauft, was auf einen Exploit oder eine Geldverdopplung hindeuten kann, die eine Untersuchung erfordert.

