Add mod documentation in seven languages
This commit is contained in:
1 parent
617e82bcba
commit
89ff9ee99a
18 files changed
+540
-8
No files matched your search
+76
@@ -0,0 +1,76 @@
|
||||
# Trading — торговцы и окно торговли
|
||||
|
||||
Trading добавляет в игру лавки. Лавка — это данные: что торговец продаёт, что скупает и по каким ценам. Открывает её сценарий, а торгуется игрок в окне с двумя инвентарями: слева товары торговца, справа сумка игрока. Деньги — обычный предмет, золотая монета: она лежит в сумке, сохраняется вместе с ней и выдаётся сценарием как любой другой предмет.
|
||||
|
||||
В RPG Plus так торгует деревенский торговец: поговорите с ним — окно откроется.
|
||||
|
||||
## Покупка
|
||||
|
||||
Выберите товар слева. В середине показаны предмет, его цена, ваш кошелёк, ползунок количества с кнопками **−**, **+** и **Все**, а также итог. **Купить** завершает сделку:
|
||||
|
||||

|
||||
|
||||
Герой пришёл с 25 монетами; эликсир стоил 10, поэтому в кошельке 15, а эликсир лежит в сумке. Ползунок поднимается только на те деньги, что есть, — сейчас это 1.
|
||||
|
||||
## Продажа
|
||||
|
||||
Выберите предмет в своей сумке. На предметах, которые торговец скупает, стоит ценник; остальные здесь продать нельзя. Кнопка **Все** ставит количество на всё, что у вас есть:
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
15 + 3 × 4 = **27** монет. Окно закрывают Esc или крестик.
|
||||
|
||||
Товар у торговца не кончается, а проданное обратно не предлагается: у лавки нет собственного состояния, меняется только ваша сумка.
|
||||
|
||||
## Лавка в данных
|
||||
|
||||
Лавки — это сущности вида `shop`, лежат в папке `shops/` мода. Деревенский торговец в том виде, как его определяет RPG Demo:
|
||||
|
||||
```json
|
||||
{
|
||||
"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` — ключ перевода заголовка окна.
|
||||
- `Sells` — что может купить игрок, в этом порядке, по цене за штуку.
|
||||
- `Buys` — за что торговец платит; всё остальное он брать отказывается.
|
||||
- `Currency` (необязательно) — денежный предмет; по умолчанию это `money/coin`, золотая монета этого мода.
|
||||
- Цена ниже 1 игнорируется: бесплатный предмет — это подарок, а подарки — дело сценария.
|
||||
|
||||
RPG Plus добавляет свою экипировку и товары тому же торговцу, не трогая файл RPG Demo, — патчем в собственном `patches/shop.json`:
|
||||
|
||||
```json
|
||||
{ "Items": [ { "Id": "rpg_demo/village_merchant",
|
||||
"Sells$add": [ { "Item": "classic/iron_sword", "Price": 30 } ],
|
||||
"Buys$add": [ { "Item": "rpg_plus/wolf_pelt", "Price": 4 } ] } ] }
|
||||
```
|
||||
|
||||
## Открытие лавки
|
||||
|
||||
```scenario
|
||||
text "— О, покупатель! Эликсиры — свежие, почти без осадка." key=rpg_demo/merchant/line1
|
||||
action trade.open shop=rpg_demo/village_merchant
|
||||
end
|
||||
```
|
||||
|
||||
Это событие торговца на карте запускает такой сценарий. Любой сценарий может открыть лавку так же — ответ в диалоге, щелчок по интерактивному объекту.
|
||||
|
||||
## Если что-то пошло не так
|
||||
|
||||
1. **Предмет из сумки не продаётся.** Его нет в `Buys` лавки.
|
||||
2. **«Купить» ничего не делает.** Не хватает монет даже на одну штуку — окно так и пишет.
|
||||
3. **Окно не открывается.** id в `shop=` не совпадает с `Id` ни одной лавки; лог назовёт её.
|
||||
Reference in new issue
Block a user