4.0 KiB
Trading — mercaderes y la ventana de comercio
Trading añade tiendas a un juego. Una tienda son datos: qué vende el mercader, qué compra de vuelta y a qué precios. La abre un escenario, y el jugador comercia en una ventana con dos inventarios: los artículos del mercader a la izquierda, la bolsa del jugador a la derecha. El dinero es un objeto corriente, la moneda de oro: descansa en la bolsa, se guarda con ella y un escenario puede entregarla como cualquier otro objeto.
En RPG Plus comercia así el mercader del pueblo: háblale y se abre la ventana.
Comprar
Elige artículos a la izquierda. El centro muestra el objeto, su precio, tu monedero, un deslizador de cantidad con −, + y Todo, y el total. Comprar cierra el trato:
El héroe llegó con 25 monedas; el elixir costó 10, así que el monedero marca 15 y el elixir está en la bolsa. El deslizador solo llega hasta donde el dinero alcanza — ahora 1.
Vender
Elige un objeto de tu bolsa. Los objetos que el mercader compra llevan etiqueta de precio; los demás no se pueden vender aquí. Todo pone la cantidad en todo lo que tienes:
15 + 3 × 4 = 27 monedas. La ventana se cierra con Esc o con la cruz.
El surtido del mercader nunca se agota, y lo que vendes no vuelve a ofrecerse: una tienda no tiene estado propio, solo cambia tu bolsa.
Una tienda en datos
Las tiendas son entidades de tipo shop, en la carpeta shops/ de un mod. El mercader del pueblo tal como lo define RPG Demo:
{
"Kind": "shop",
"Items": [
{
"Id": "rpg_demo/village_merchant",
"Name": "rpg_demo/shop/village_merchant",
"Sells": [ { "Item": "rpg_demo/elixir", "Price": 10 } ],
"Buys": [
{ "Item": "rpg_demo/branches", "Price": 1 },
{ "Item": "rpg_demo/stones", "Price": 2 }
]
}
]
}
Name— la clave de traducción del título de la ventana.Sells— lo que el jugador puede comprar, en ese orden, con el precio de una unidad.Buys— por lo que el mercader paga; todo lo demás lo rechaza.Currency(opcional) — el objeto de dinero; por defecto esmoney/coin, la moneda de oro de este mod.- Un precio menor que 1 se ignora: un objeto gratis es un regalo, y los regalos son cosa del escenario.
RPG Plus añade su equipo y sus mercancías al mismo mercader sin tocar el archivo de RPG Demo, con un parche en su propio patches/shop.json:
{ "Items": [ { "Id": "rpg_demo/village_merchant",
"Sells$add": [ { "Item": "classic/iron_sword", "Price": 30 } ],
"Buys$add": [ { "Item": "rpg_plus/wolf_pelt", "Price": 4 } ] } ] }
Abrir una tienda
text "¡Oh, un cliente! Elixires frescos, casi sin poso." key=rpg_demo/merchant/line1
action trade.open shop=rpg_demo/village_merchant
end
El evento de mapa del mercader ejecuta este escenario. Cualquier escenario puede abrir una tienda igual — una respuesta de diálogo, un clic en un objeto interactivo.
Si algo falla
- Un objeto de la bolsa no se puede vender. No está en el
Buysde la tienda. - Comprar no hace nada. No alcanzan las monedas ni para uno; la ventana lo dice.
- La ventana no se abre. El id de
shop=no coincide con elIdde ninguna tienda; el log dice cuál.


