Il mercato
Sei monete inventate da questa città, un prezzo che si muove che qualcuno stia guardando o no, e un modo per inviare una posizione da un telefono a un altro senza che una banca ne sappia nulla.
Nulla al suo interno chiede mai al mondo esterno quanto valga qualcosa. I prezzi sono quelli del tuo server.
Le monete incluse
Sezione intitolata “Le monete incluse”| Apre a | Oscillazione | Cos’è | |
|---|---|---|---|
| Santocoin SNT | $42,000 | 3% | La prima creata dalla città. Lenta, pesante, nel portafoglio di tutti |
| Vinewood VNW | $3,200 | 8% | Fama, con prezzo a ore |
| Bayview BAY | $180 | 2% | Noiosa di proposito. Un posto dove tenere i soldi mentre decidi |
| Dustcoin DST | $12 | 15% | Arriva dalla contea, ed è già stata sulla luna due volte |
| Voltline VLT | $640 | 9% | Energia, acqua e strade. Noiosa finché non va via la luce |
| Omen OMN | $4 | 22% | Nessuno sa chi l’abbia creata |
Toglierne una dalla config e smette di esistere. La posizione di nessuno viene cancellata per questo — rimetti la moneta e ognuno ha di nuovo ciò che aveva.
Come si muove il mercato
Sezione intitolata “Come si muove il mercato”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 moneyE per ogni moneta: il prezzo di apertura, il suo Swing, un Drift che la spinge verso l’alto o verso il basso nell’arco di settimane, un Floor e un Ceiling da cui non esce mai, e una Depth — il denaro necessario per spostare quella moneta dell’uno per cento quando qualcuno la scambia. Una moneta sottile è una che un giocatore ricco può spostare da solo, ed è ciò che rende una moneta sottile degna di essere tenuta e temuta. Depth = 0 significa che gli ordini non spostano affatto il prezzo, il che è più semplice e molto più facile da farmare.
Icon dà un’immagine alla moneta; una moneta tua senza icona ripiega su un glifo disegnato, e poi sulla prima lettera del suo simbolo.
Di chi è il portafoglio
Sezione intitolata “Di chi è il portafoglio”Wallet = 'character', -- or 'device'In modalità character, un telefono rubato mostra al ladro un’app vuota. In modalità device, il telefono è il portafoglio, e rubarne uno porta via il portafoglio titoli.
Viene fornito su character, perché l’altra trasforma ogni scippo in una rapina in banca e questa dovrebbe essere una scelta deliberata di qualcuno, non un’impostazione predefinita.
Cosa non può succedere
Sezione intitolata “Cosa non può succedere”Un prezzo è in centesimi e una posizione è in milionesimi di moneta, entrambi numeri interi dall’inizio alla fine, entrambi arrotondati contro chi sta scambiando, con la commissione in aggiunta. Comprare qualcosa e rivenderlo nello stesso secondo costa sempre denaro — un mercato in cui il bilancio risulta pari è un mercato in cui un ciclo di compra-vendi-compra-vendi stampa soldi.
Al client non viene mai chiesto quanto valga una moneta e non invia mai un prezzo. Ogni scrittura su un portafoglio è dietro un lock, perché leggere le posizioni, spostare il denaro e riscriverle sono tre passaggi con uno yield tra l’uno e l’altro, e due ordini nello stesso tick venderebbero altrimenti le stesse monete.
Per altre risorse
Sezione intitolata “Per altre risorse”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 rifiuta invece di andare in negativo, quindi la sua risposta è anche erano in grado di pagare — che è la domanda che un negozio che vende qualcosa in monete si pone davvero:
if exports.mic_phone:RemoveCrypto(src, 'omen', price) then giveThem(thing) end