Der Markt
Sechs von dieser Stadt erfundene Coins, ein Kurs, der sich bewegt, egal ob jemand zuschaut oder nicht, und ein Weg, Guthaben von einem Telefon auf ein anderes zu übertragen, ohne dass eine Bank davon erfährt.
Nichts darin fragt jemals die Außenwelt, was irgendetwas wert ist. Die Kurse gehören einzig deinem Server.
Die mitgelieferten Coins
Abschnitt betitelt „Die mitgelieferten Coins“| Startet bei | Schwankung | Was es ist | |
|---|---|---|---|
| Santocoin SNT | $42.000 | 3% | Die erste Währung der Stadt. Träge, schwer, im Wallet von jedem |
| Vinewood VNW | $3.200 | 8% | Ruhm, stundenweise bewertet |
| Bayview BAY | $180 | 2% | Bewusst langweilig. Ein Ort zum Geldparken, während man überlegt |
| Dustcoin DST | $12 | 15% | Kommt von außerhalb des Countys und war schon zweimal auf dem Mond |
| Voltline VLT | $640 | 9% | Strom, Wasser und Straßen. Langweilig, bis das Licht ausgeht |
| Omen OMN | $4 | 22% | Niemand weiß, wer ihn erschaffen hat |
Entfernst du einen Coin aus der Config, hört er auf zu existieren. Das Guthaben von Spielern wird dadurch nicht gelöscht — fügst du den Coin wieder ein, hat jeder wieder das, was er vorher besaß.
Wie sich der Markt bewegt
Abschnitt betitelt „Wie sich der Markt bewegt“shared/config/crypto.lua:
Tick = 300, -- seconds between one price and the nextVolatility = 1.0, -- every coin's swing, multiplied. One number for the whole marketHistory = 48, -- how many prices the chart remembersShock = { Chance = 0.02, Size = 0.22 }, -- rare, and the reason anybody checks twice a dayFee = 0.02, -- the house, on the way in and on the way outTrade = { Min = 10, Max = 250000 }, -- what one order may be, in moneyUnd pro Coin: der Startkurs, seine Schwankungsbreite Swing, ein Drift, der ihn über Wochen nach oben oder unten neigen lässt, eine Untergrenze Floor und eine Obergrenze Ceiling, die er nie verlässt, sowie eine Depth — das Kapital, das erforderlich ist, um diesen Coin bei einem Trade um ein Prozent zu bewegen. Ein Coin mit geringer Markttiefe ist einer, den ein wohlhabender Spieler im Alleingang nach oben treiben kann — das macht einen solchen Coin lohnend und zugleich riskant. Depth = 0 bedeutet, dass Trades den Kurs überhaupt nicht beeinflussen, was einfacher und viel leichter auszunutzen ist.
Icon verleiht einem Coin sein Bild; ein eigener Coin ohne Icon greift auf eine gezeichnete Glyphe und danach auf den ersten Buchstaben seines Symbols zurück.
Wessen Wallet
Abschnitt betitelt „Wessen Wallet“Wallet = 'character', -- or 'device'Im character-Modus sieht ein Dieb auf einem gestohlenen Telefon eine leere App. Im device-Modus ist das Telefon das Wallet, und der Diebstahl eines Telefons nimmt das gesamte Krypto-Portfolio mit.
Standardmäßig ist character eingestellt, da der andere Modus jeden Raubüberfall in einen Bankraub verwandelt — das sollte eine bewusste Entscheidung sein und kein Standardwert.
Was nicht passieren kann
Abschnitt betitelt „Was nicht passieren kann“Ein Kurs wird in Cents geführt und ein Bestand in Millionstel eines Coins, beides durchgehend ganze Zahlen, beide zu Ungunsten des Händlers gerundet, zuzüglich der Provision. Etwas zu kaufen und in derselben Sekunde wieder zu verkaufen, kostet immer Geld — ein Markt, bei dem das bei null herauskäme, wäre ein Markt, bei dem eine Schleife aus Kaufen-Verkaufen-Kaufen-Verkaufen unendlich Geld druckt.
Der Client wird niemals gefragt, was ein Coin wert ist, und sendet niemals einen Kurs. Jeder Schreibvorgang auf ein Wallet ist mit einem Lock geschützt, da das Lesen der Bestände, das Verschieben des Geldes und das Zurückschreiben drei Schritte mit Wartezeit dazwischen sind; zwei Aufträge im selben Tick würden sonst beide dieselben Coins verkaufen.
Für andere Ressourcen
Abschnitt betitelt „Für andere Ressourcen“exports.mic_phone:Coins() --> every coin, with price, change and historyexports.mic_phone:CoinPrice('santo') --> 42137.55, in moneyexports.mic_phone:GetCrypto(src, 'santo') --> 0.4218exports.mic_phone:GetCryptoValue(src) --> the whole portfolio, in money
exports.mic_phone:AddCrypto(src, 'omen', 12.5) --> a hack that pays in coin, a mining scriptexports.mic_phone:RemoveCrypto(src, 'omen', 12.5) --> false when they did not have it, and nothing movesexports.mic_phone:SetCoinPrice('omen', 0.4) --> move the market for a storyRemoveCrypto lehnt die Transaktion ab, anstatt ins Minus zu laufen. Die Rückgabe zeigt also auch, ob der Spieler bezahlen konnte — genau die Frage, die sich ein Shop stellt, der etwas gegen Krypto verkauft:
if exports.mic_phone:RemoveCrypto(src, 'omen', price) then giveThem(thing) end