Zum Inhalt springen

Konfiguration

Fast alles befindet sich in einer einzigen Datei: config.lua. Die beiden Bridge-Dateien und die Sprachdateien sind ebenfalls offen zugänglich.


DateiWas sie bestimmtOffen?
config.luaSprache, Währung, Interaktion, Aufstell-Limit und alle festen Automaten samt PreisenJa
locales/*.luaEinblendungen, Benachrichtigungen und Target-BezeichnungenJa
bridge/client_bridge.luaFramework-Erkennung, Geldstandsanzeige, Benachrichtigungen, Hilfetexte und ox-target / qb-target / drawtextJa
bridge/server_bridge.luaGeld/Münzen abbuchen und auszahlen, Charakternamen/-IDs, Benachrichtigungen und nutzbare Automaten-ItemsJa
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.luaKamera- und Bildschirmposition für jedes AutomatenmodellEscrow
mic_arcade_props/Die Automatenmodelle und der Screen-RendererNur Assets

OptionWas sie machtStandard
Config.LocaleWelche Datei in locales/ genutzt wird'en'
Config.PaymentTypeWas ein Spiel kostet: cash, bank, both oder item'item'
Config.PaymentItemDas Währungs-Item bei PaymentType = 'item''arcade_coin'
Config.Interactionox-target (mit Bindestrich), qb-target oder drawtext'ox-target'
Config.MaxArcadesPerPlayerWie viele aufgestellte Automaten ein Spieler gleichzeitig besitzen darf3
WertWas passiert
cashWird bar bezahlt (bei ESX das money-Konto)
bankWird vom Bankkonto abgebucht
bothZuerst bar; reicht das Geld nicht, kommt der Rest von der Bank
itemWird mit Config.PaymentItem bezahlt, ein Item pro Preiseinheit

Dieselbe Währung wird auch für Einsätze und Gewinne bei DuoFight verwendet.


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.

AutomatModellSpielPreisStandardmäßig fest platziert
DuoFightmic_arcade_duofightZweispieler-Kampfspiel oder gegen den PC0Nein (auskommentiert)
Alienmic_arcade_alienAlien100Nein (auskommentiert)
Breakoutmic_arcade_brickBreakout100Nein (auskommentiert)
Pixelmic_arcade_pixelPixel100Ja
Racemic_arcade_raceRace100Ja
Towermic_arcade_towerTower100Ja
Roadmic_arcade_roadRoad100Ja
  • 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 Price gilt 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.


Ein Automaten-Item (arcade_alien, arcade_race…) startet den Aufstellmodus:

TasteWas sie macht
UmschauenBewegt die Vorschau dorthin, wo du hinschaust
MausradDreht den Automaten
EPlatziert ihn und verbraucht das Item
ESC / RücktasteBricht 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.


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.

ErgebnisWas passiert
SiegDer Gewinner erhält beide Einsätze
UnentschiedenJeder Spieler erhält seinen Einsatz zurück
Ein Spieler geht während des Spiels wegEr gibt auf: Der andere Spieler gewinnt beide Einsätze
Der Host geht vor Spielbeginn wegMatch wird abgebrochen; der Einsatz wird nicht erstattet
Ein Spieler verliert die VerbindungMatch wird abgebrochen, keine Auszahlung

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.


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/.


DateiWas sie abdeckt
bridge/client_bridge.luaFramework-Erkennung, angezeigter Geld- oder Münzstand, Bridge.Notify, Hilfetexte und Interaktionszonen für ox-target, qb-target oder drawtext
bridge/server_bridge.luaFramework-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.