Anpassung
Alles, was du anpassen sollst, befindet sich in vier offenen Ordnern: config/, locales/, bridge/ und items/. Der restliche Lua-Code ist escrowed.
Welche Datei entscheidet was
Abschnitt betitelt „Welche Datei entscheidet was“| Datei | Was sie bestimmt | Offen? |
|---|---|---|
config/config.lua | Sprache, Interaktionssystem, Benachrichtigungen, Lieferungen, Offline-Mining, NPC-Händler und dessen Blip | Ja |
config/warehouses.lua | Die drei Lagerhallen: Preis, Rig-Plätze, Bild, Spawnpunkt, Ablageort für Pakete; Ausgang und Blips eigener Hallen | Ja |
config/shop.lua | Jedes Bauteil im Laptop-Shop: Preis, Watt, Hashrate, Kategorie | Ja |
config/cryptos.lua | Die Coins: Name, Basispreis, Volatilität, Schwierigkeit, Farbe, Icon | Ja |
config/webhook.lua | Die beiden Discord-Webhooks. Wird ausschließlich auf dem Server geladen | Ja |
locales/*.lua | Alle Texte, im Spiel und auf dem Laptop | Ja |
bridge/bridge_client.lua | Benachrichtigungen, Hilfetexte, Callbacks und der Wrapper für ox_target / qb-target / drawtext | Ja |
bridge/bridge_server.lua | Spieler, Geld, Namen und Items über fmLib | Ja |
items/ | Item-Definitionen für ox, qb und ESX sowie die Item-Icons | Ja |
html/ | Der Händler-Shop und der Laptop-Bildschirm sowie die Lagerhallen-Bilder in html/img/ | Ja, nicht escrowed |
mic_crypto_props/ | Die gestreamten Modelle und die 3D-Vorschauen auf dem Laptop | Nur Assets |
Allgemein — config/config.lua
Abschnitt betitelt „Allgemein — config/config.lua“| Option | Was sie tut | Standard |
|---|---|---|
Config.Locale | Welche Datei in locales/ verwendet wird | 'en' |
Config.Interaction | ox_target, qb-target oder drawtext (ein Taste E drücken-Hinweis) | 'ox_target' |
Config.CustomLaptopNotificacions | true: Shop- und Trade-Meldungen erscheinen als Toast auf dem Laptop. false: normale Benachrichtigungen des Frameworks | true |
Config.ReceiveProductsDirectlyToInventory | true: am Laptop gekaufte Teile landen direkt im Inventar. false: ein Paket wird in der Lagerhalle zum Aufheben abgelegt | false |
Config.OfflineMining | Ob Rigs weiter minen, während der Besitzer offline ist | true |
Config.OfflineRate | Geschwindigkeit des Offline-Minings. 1.0 ist volle Geschwindigkeit, 0.5 die Hälfte | 1.0 |
Der Optionsname CustomLaptopNotificacions ist in der Datei so geschrieben — behalte die Schreibweise bei.
Der Händler — Config.NPC und Config.Blip
Abschnitt betitelt „Der Händler — Config.NPC und Config.Blip“| Option | Was sie tut | Standard |
|---|---|---|
Config.NPC.model | Ped-Modell des Händlers | s_m_y_ammucity_01 |
Config.NPC.coords | Standort des Händlers samt Ausrichtung | Am Hafen |
Config.NPC.scenario | Was der Händler tut | WORLD_HUMAN_CLIPBOARD |
Config.NPC.interactDistance | Erforderliche Nähe | 2.5 |
Config.Blip.enable | Händler auf der Karte anzeigen | true |
Config.Blip.sprite / color / scale | Aussehen des Blips | 478 / 5 / 0.8 |
Config.Blip.name | Name des Blips | Crypto Warehouse Shop |
Lagerhallen — config/warehouses.lua
Abschnitt betitelt „Lagerhallen — config/warehouses.lua“| Lagerhalle | id | Preis | Rig-Plätze (rigSlots) |
|---|---|---|---|
| Klein | warehouse_small | 50.000 | 8 |
| Mittel | warehouse_medium | 150.000 | 21 |
| Groß | warehouse_large | 350.000 | 37 |
Jede Lagerhalle besitzt diese Felder:
| Feld | Was es tut |
|---|---|
id | Interner Name. Behalte die drei IDs exakt so bei |
name, description | Shop-Texte aus der Sprachdatei |
price | Kosten, bezahlt bar oder per Bank nach Wahl des Käufers |
rigSlots | Die im Shop angezeigte Zahl |
image | Bild im Shop aus html/img/ |
security, power | Im Shop angezeigte Beschriftungen |
viewCoords | Wohin View den Käufer vor dem Kauf zur Besichtigung teleportiert |
insideCoords | Wo du nach dem Eintreten ankommst; hier ist auch der Ausgang |
packageCoords | Wo das Lieferpaket landet |
Über der Liste:
| Option | Was sie tut | Standard |
|---|---|---|
Config.ExitCoords | Wo jeder herauskommt, egal in welcher Lagerhalle er war | Neben dem Händler |
Config.WarehouseBlips | Sprite, Farbe und Skalierung des Blips für eigene Lagerhallen | 478, grün, 0.7 |
Der Shop — config/shop.lua
Abschnitt betitelt „Der Shop — config/shop.lua“Config.Shop.Categories definiert die vier Reiter des Laptop-Shops (GPUs, PSUs, Lüfter, Racks). Config.Shop.Items ist die Teileliste. Laptop-Einkäufe werden immer vom Bankkonto bezahlt.
| Feld | Was es tut |
|---|---|
id | Der Item-Name. Muss zu einem Item im Inventar und einem Modell in mic_crypto_props passen |
category | gpus, psus, fans oder racks |
label, description | Shop-Texte aus der Sprachdatei |
price | Preis |
image | Name der Icon-Datei |
watts | Für GPUs und Lüfter: Stromverbrauch. Für PSUs: gelieferte Leistung |
hashrate | Nur GPUs: GH/s pro Karte |
temperature, cooling | Hitze pro GPU und Kühlung pro Lüfter, genutzt für die Balancing-Tabelle oben in der Datei. In dieser Version im Spiel nicht aktiv — geprüft wird die Leistung |
Standardpreise:
| Bauteil | Preis | Bauteil | Preis |
|---|---|---|---|
| Badger Comm-100 | 450 | PostOP 500W | 150 |
| Wiwang PC-G | 900 | Whiz Wireless 850W | 350 |
| eCola OC Edition | 1.600 | Merryweather 1600W | 800 |
| iFruit Pro Max | 2.800 | Darrell Brother Fan | 45 |
| Sprunk Xtreme | 4.500 | FlyUS Aero Fan | 120 |
| Standard 5-Slot Rig | 1.200 | Atomic Vortex 120mm | 250 |
Der Kommentarblock oben in config/shop.lua rechnet vor, welche Netzteile und Lüfter jede GPU-Stufe für ein volles Rig benötigt. Lies ihn, bevor du watts anpasst — so bleiben alle Stufen zuverlässig baubar.
Wie die Stromleistung geprüft wird. Wird eine GPU oder ein Lüfter eingebaut, muss der Gesamtverbrauch des Rigs (alle GPUs und Lüfter) zusammen mit dem neuen Bauteil innerhalb der Gesamtkapazität der Netzteile liegen. Reicht der Strom nicht aus, wird der Einbau mit dem Hinweis Nicht genug Strom abgelehnt.
Die Coins — config/cryptos.lua
Abschnitt betitelt „Die Coins — config/cryptos.lua“Vier Coins werden mitgeliefert. Du kannst Einträge beliebig ergänzen oder entfernen; ein neuer Coin wird beim nächsten Serverstart zur Markttabelle hinzugefügt.
| Coin | Name | Basispreis | range | difficulty |
|---|---|---|---|---|
MWX | Merryweather Crypto | 850,50 | 10 | 1.0 |
FLK | Fleeca Token | 45,20 | 5 | 0.5 |
PEG | Pegassi Coin | 12.500,00 | 25 | 5.0 |
LIFE | LifeInvader Chain | 120,75 | 15 | 0.8 |
| Feld | Was es tut |
|---|---|
label | Im Laptop angezeigter Name aus der Sprachdatei |
short | Ticker-Symbol |
basePrice | Preis, um den der Coin schwankt |
range | Maximale Schwankungsbreite in Prozent nach oben/unten |
difficulty | Je höher, desto langsamer das Mining |
color, icon | Farbe und Font-Awesome-Icon auf dem Laptop |
Wie sich der Markt bewegt. Alle 15 Minuten erhält jeder Coin einen neuen Kurs: Sein basePrice verschiebt sich um einen Zufallswert innerhalb von range Prozent nach oben oder unten. Der Kurs wird gespeichert und übersteht Neustarts.
Wie Mining vergütet wird. Besitzer verteilen die Hashrate ihrer Lagerhalle über Schieberegler am Laptop auf die Coins. Jede Minute bringt jeder Coin zugewiesene GH/s × 0,01 ÷ difficulty ein. Eine Badger-Karte (0,10 GH/s) auf MWX erzeugt 0,001 MWX pro Minute. Nicht zugewiesene Hashrate schürft nichts.
Trading. Der Kauf eines Coins bucht das Geld vom Bankkonto des Spielers am Laptop ab; ein Verkauf zahlt es auf dessen Bankkonto ein. Die Guthaben gehören der Lagerhalle, sodass jeder eingeladene Mitbenutzer damit handeln kann.
Webhooks — config/webhook.lua
Abschnitt betitelt „Webhooks — config/webhook.lua“| Option | Was protokolliert wird |
|---|---|
Config.WebhookBuy | Jeder Krypto-Kauf an der Börse |
Config.WebhookSell | Jeder Krypto-Verkauf an der Börse |
Jede Nachricht enthält den Charakternamen, seine license-, steam- und discord-Identifikatoren (Discord als Erwähnung), den Coin, die Menge und den Gesamtbetrag. Lasse eine URL leer, um das entsprechende Logging abzuschalten. Die Nachrichtentexte liegen in der Sprachdatei (webhook_buy, webhook_sell).
Diese Datei wird ausschließlich serverseitig geladen, sodass URLs niemals an Spieler übermittelt werden.
Sprachen
Abschnitt betitelt „Sprachen“Elf Sprachen werden in locales/ mitgeliefert: en, es, fr, de, it, pt, nl, ar, ja, ko, ru. Trage den Code in Config.Locale ein.
Um eine Sprache hinzuzufügen, kopiere locales/en.lua in eine neue Datei mit deinem Sprachcode, ändere die Zeile Locales['en'] passend ab, übersetze die rechte Seite jeder Zeile und stelle Config.Locale darauf ein. Der Laptop und der Händler-Shop lesen dieselbe Datei.
Ein fehlender Textschlüssel wird als Translation [xx][key] does not exist angezeigt — es gibt keinen automatischen Fallback auf Englisch, behalte daher alle Schlüssel aus en.lua bei.
Einige Hinweise sind im escrow-geschützten Code auf Englisch hinterlegt (die Hilfetexte Press E to place Rig / install GPU und die Beschriftung Collect Package) und stammen nicht aus der Sprachdatei.
Die Bridge
Abschnitt betitelt „Die Bridge“bridge/ ist offen, damit du das Skript an die Systeme deines Servers anpassen kannst.
| Datei | Was sie abdeckt |
|---|---|
bridge/bridge_client.lua | Framework-Erkennung, Bridge.Notify, Bridge.ShowHelpNotification, Callbacks und alle Interaktionen: Entity-, Zonen- und Modell-Targets für ox_target, qb-target oder die Drawtext-Schleife |
bridge/bridge_server.lua | Framework-Erkennung, Spieler, Bargeld und Bank, Charakternamen sowie AddItem / HasItem / RemoveItem / RegisterUsableItem über fmLib |
Ein anderes Benachrichtigungssystem: passe Bridge.Notify in beiden Dateien an.
Ein anderes Target-System: die drei Add…Interaction-Funktionen und ihre Remove…-Gegenstücke in bridge_client.lua sind die einzigen Stellen, an denen Targets verwendet werden.
Ein anderes Framework: der Erkennungsblock oben in jeder Datei sowie die Geld-, Spieler- und Namensfunktionen sind alles, was nötig ist. Items hängen nicht vom Framework ab — sie laufen über fmLib.
Geldkonten. Lagerhallen werden mit cash oder bank bezahlt (Wahl des Käufers); Laptop-Käufe und Börsentransaktionen nutzen bank. Bei ESX entspricht cash dem Bargeld des Spielers und bank dem Bankkonto.