El mercado
Seis monedas que se ha inventado esta ciudad, un precio que se mueve tanto si alguien lo mira como si no, y una forma de enviar un saldo de un móvil a otro sin que se entere ningún banco.
Nada de esto le pregunta nunca al mundo exterior cuánto vale algo. Los precios son los de tu servidor.
Las monedas que incluye
Sección titulada «Las monedas que incluye»| Abre a | Oscilación | Qué es | |
|---|---|---|---|
| Santocoin SNT | $42,000 | 3% | La primera que hizo la ciudad. Lenta, pesada y en la cartera de todo el mundo |
| Vinewood VNW | $3,200 | 8% | La fama, con precio por horas |
| Bayview BAY | $180 | 2% | Aburrida a propósito. Un sitio donde dejar el dinero mientras decides |
| Dustcoin DST | $12 | 15% | Viene de fuera del condado, y ya ha ido a la luna dos veces |
| Voltline VLT | $640 | 9% | Electricidad, agua y carreteras. Aburrida hasta que se va la luz |
| Omen OMN | $4 | 22% | Nadie sabe quién la creó |
Quita una de la config y deja de existir. No se borra el saldo de nadie por ello: vuelve a poner la moneda y todo el mundo tiene lo que tenía.
Cómo se mueve el mercado
Sección titulada «Cómo se mueve el mercado»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 moneyY por moneda: el precio al que abre, su Swing, un Drift que la empuja hacia arriba o hacia abajo a lo largo de semanas, un Floor y un Ceiling de los que nunca sale, y un Depth: el dinero que hace falta para mover esa moneda un uno por ciento cuando alguien opera con ella. Una moneda poco profunda es una que un jugador rico puede subir él solo, y eso es lo que hace que valga la pena tenerla y también temerla. Depth = 0 significa que las órdenes no mueven el precio en absoluto, lo cual es más sencillo y mucho más fácil de explotar.
Icon le da a una moneda su imagen; una moneda tuya sin icono recurre a un glifo dibujado y, si no, a la primera letra de su símbolo.
De quién es la cartera
Sección titulada «De quién es la cartera»Wallet = 'character', -- or 'device'En modo character, un móvil robado le muestra al ladrón una app vacía. En modo device, el móvil es la cartera, y robar uno se lleva la cartera de inversiones con él.
Viene en character, porque el otro convierte cada atraco en un robo a un banco, y eso debería ser una elección deliberada de alguien y no un valor por defecto.
Lo que no puede pasar
Sección titulada «Lo que no puede pasar»Un precio va en céntimos y un saldo en millonésimas de moneda, ambos números enteros de principio a fin, ambos redondeados en contra de quien opera, con la comisión encima. Comprar algo y venderlo en el mismo segundo siempre cuesta dinero: un mercado en el que eso sale a cero es un mercado en el que un bucle de comprar-vender-comprar-vender imprime dinero.
Al cliente nunca se le pregunta cuánto vale una moneda y nunca envía un precio. Cada escritura en una cartera está detrás de un bloqueo, porque leer los saldos, mover el dinero y volver a escribirlos son tres pasos con una espera entre cada uno, y de lo contrario dos órdenes en el mismo tick venderían las mismas monedas.
Para otros recursos
Sección titulada «Para otros recursos»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 se niega antes que quedar en negativo, así que su respuesta también es ¿ha podido pagar?, que es la pregunta que realmente se hace una tienda que vende algo a cambio de monedas:
if exports.mic_phone:RemoveCrypto(src, 'omen', price) then giveThem(thing) end