Konfiguration
Fast alles befindet sich in einer einzigen Datei: config.lua. Die beiden Bridge-Dateien und die Sprachdateien sind ebenfalls offen zugänglich.
Welche Datei wofür zuständig ist
Abschnitt betitelt „Welche Datei wofür zuständig ist“| Datei | Was sie bestimmt | Offen? |
|---|---|---|
config.lua | Sprache, Währung, Interaktion, Aufstell-Limit und alle festen Automaten samt Preisen | Ja |
locales/*.lua | Einblendungen, Benachrichtigungen und Target-Bezeichnungen | Ja |
bridge/client_bridge.lua | Framework-Erkennung, Geldstandsanzeige, Benachrichtigungen, Hilfetexte und ox-target / qb-target / drawtext | Ja |
bridge/server_bridge.lua | Geld/Münzen abbuchen und auszahlen, Charakternamen/-IDs, Benachrichtigungen und nutzbare Automaten-Items | Ja |
items/ | Item-Definitionen für ox, qb und ESX sowie die Icons in items/images/ | Ja |
ui/ | Das Automatenmenü und die sieben Spiele, jeweils ein Ordner in ui/games/ | Kein Escrow |
client/data.lua | Kamera- und Bildschirmposition für jedes Automatenmodell | Escrow |
mic_arcade_props/ | Die Automatenmodelle und der Screen-Renderer | Nur Assets |
Allgemein — config.lua
Abschnitt betitelt „Allgemein — config.lua“| Option | Was sie macht | Standard |
|---|---|---|
Config.Locale | Welche Datei in locales/ genutzt wird | 'en' |
Config.PaymentType | Was ein Spiel kostet: cash, bank, both oder item | 'item' |
Config.PaymentItem | Das Währungs-Item bei PaymentType = 'item' | 'arcade_coin' |
Config.Interaction | ox-target (mit Bindestrich), qb-target oder drawtext | 'ox-target' |
Config.MaxArcadesPerPlayer | Wie viele aufgestellte Automaten ein Spieler gleichzeitig besitzen darf | 3 |
Zahlungsarten
Abschnitt betitelt „Zahlungsarten“| Wert | Was passiert |
|---|---|
cash | Wird bar bezahlt (bei ESX das money-Konto) |
bank | Wird vom Bankkonto abgebucht |
both | Zuerst bar; reicht das Geld nicht, kommt der Rest von der Bank |
item | Wird mit Config.PaymentItem bezahlt, ein Item pro Preiseinheit |
Dieselbe Währung wird auch für Einsätze und Gewinne bei DuoFight verwendet.
Automaten und Preise — Config.Arcades
Abschnitt betitelt „Automaten und Preise — Config.Arcades“Ein Eintrag pro Automatenmodell. Jeder Eintrag besitzt einen Price und optional beliebig viele feste Positionen (vec4 mit x, y, z und Heading) — an jeder wird ein Automat gespawnt.
| Automat | Modell | Spiel | Preis | Standardmäßig fest platziert |
|---|---|---|---|---|
| DuoFight | mic_arcade_duofight | Zweispieler-Kampfspiel oder gegen den PC | 0 | Nein (auskommentiert) |
| Alien | mic_arcade_alien | Alien | 100 | Nein (auskommentiert) |
| Breakout | mic_arcade_brick | Breakout | 100 | Nein (auskommentiert) |
| Pixel | mic_arcade_pixel | Pixel | 100 | Ja |
| Race | mic_arcade_race | Race | 100 | Ja |
| Tower | mic_arcade_tower | Tower | 100 | Ja |
| Road | mic_arcade_road | Road | 100 | Ja |
- Einen festen Automaten hinzufügen: Füge eine Position in die Liste unter dem jeweiligen Modell ein. Stelle dich dorthin, nimm deine Koordinaten und Ausrichtung (Heading) und trage sie ein.
- Einen Automaten entfernen: Lösche oder kommentiere die Position aus. Der
Pricegilt weiterhin für von Spielern aufgestellte Automaten dieses Modells. - Preis von
0: Macht den Automaten kostenlos spielbar. - Der Breakout-Automat hat einen tieferen Ursprungspunkt — die mitgelieferte Breakout-Position liegt auf der Z-Achse etwa 0.7 tiefer als die Nachbarn. Beachte dies beim manuellen Hinzufügen.
Der Price bestimmt auch, wie viel ein von Spielern aufgestellter Automat dieses Modells verlangt.
Von Spielern aufgestellte Automaten
Abschnitt betitelt „Von Spielern aufgestellte Automaten“Ein Automaten-Item (arcade_alien, arcade_race…) startet den Aufstellmodus:
| Taste | Was sie macht |
|---|---|
| Umschauen | Bewegt die Vorschau dorthin, wo du hinschaust |
| Mausrad | Dreht den Automaten |
| E | Platziert ihn und verbraucht das Item |
| ESC / Rücktaste | Bricht ab; du behältst das Item |
Nur der Besitzer erhält die Option Pick Up Arcade am Automaten (bei drawtext die zweite angezeigte Taste). Das Aufheben gibt das Item zurück. Ein Automat, an dem gerade gespielt wird, kann nicht aufgehoben werden.
Config.MaxArcadesPerPlayer zählt die aktuell vom Charakter platzierten Automaten.
DuoFight-Einsätze
Abschnitt betitelt „DuoFight-Einsätze“Die Auswahl von zwei Spielern bei DuoFight verlangt einen Einsatz: 1, 5, 25, 50 oder 100 in deiner Währung. Der Host zahlt ihn und wartet am Automaten; der nächste Spieler, der an den Automaten tritt, bekommt das Match angeboten und zahlt denselben Einsatz zum Beitreten.
| Ergebnis | Was passiert |
|---|---|
| Sieg | Der Gewinner erhält beide Einsätze |
| Unentschieden | Jeder Spieler erhält seinen Einsatz zurück |
| Ein Spieler geht während des Spiels weg | Er gibt auf: Der andere Spieler gewinnt beide Einsätze |
| Der Host geht vor Spielbeginn weg | Match wird abgebrochen; der Einsatz wird nicht erstattet |
| Ein Spieler verliert die Verbindung | Match wird abgebrochen, keine Auszahlung |
Bestenlisten
Abschnitt betitelt „Bestenlisten“Jedes Spiel außer DuoFight speichert den Highscore jedes Charakters in mic_arcade_leaderboard und zeigt die Top 10 am Automaten an. Die angezeigten Namen sind die Charakternamen aus deinem Framework. Um eine Bestenliste zurückzusetzen, leere diese Tabelle (oder die Zeilen für ein bestimmtes Spiel) bei gestopptem Server.
Sprachen
Abschnitt betitelt „Sprachen“Zehn Sprachen werden in locales/ mitgeliefert: en, es, fr, de, it, pt, nl, ja, ru, zh. Setze Config.Locale auf das gewünschte Sprachkürzel.
Um eine Sprache hinzuzufügen, kopiere locales/en.lua in eine neue Datei, ändere Locales['en'] auf dein Kürzel, übersetze die rechte Seite jeder Zeile und setze Config.Locale. Ein fehlender Schlüssel wird als Translation [xx][key] does not exist angezeigt — es gibt keinen automatischen Fallback auf Englisch.
Die Locale-Dateien steuern Texte in der Spielwelt: Target-Labels, Hinweistexte und Benachrichtigungen. Die Texte innerhalb der Arcade-Spiele liegen in ui/games/.
Die Bridge
Abschnitt betitelt „Die Bridge“| Datei | Was sie abdeckt |
|---|---|
bridge/client_bridge.lua | Framework-Erkennung, angezeigter Geld- oder Münzstand, Bridge.Notify, Hilfetexte und Interaktionszonen für ox-target, qb-target oder drawtext |
bridge/server_bridge.lua | Framework-Erkennung, Geld/Items abbuchen und gutschreiben (Bridge.RemoveMoney, Bridge.AddMoney), Automaten-Items, Charaktername und -ID, Serverbenachrichtigungen |
Anderes Benachrichtigungssystem: Passe Bridge.Notify im Client und Bridge.ServerNotify im Server an. Die Meldungen über unzureichendes Guthaben werden aus Bridge.RemoveMoney gesendet.
Anderes Target-System: Bridge.RegisterArcadeInteraction und Bridge.RemoveArcadeInteraction in der Client-Datei sind die einzigen Stellen, an denen Targets registriert werden.
Anderes Inventar: Münzen und Automaten-Items werden über die nativen Spielerfunktionen des Frameworks in server_bridge.lua abgefragt. Passe Bridge.RemoveMoney, Bridge.AddMoney, Bridge.RemoveSpecificItem, Bridge.AddSpecificItem und Bridge.GetMoney an dein Inventar an.
Neues nutzbares Item für einen Automaten: Die UsableArcades-Tabelle am Ende von server_bridge.lua verknüpft jedes Item mit seinem Automatenmodell.