Files
mod_trading/docs/ja.md
T

77 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Trading——商人と取引ウィンドウ
Trading はゲームに店を追加します。店はデータです: 商人が何を売り、何を買い取り、いくらか。開くのはシナリオで、プレイヤーは 2 つのインベントリを持つウィンドウで取引します — 左に商人の品物、右にプレイヤーのかばん。お金は普通のアイテム、金貨です: かばんの中にあり、かばんと一緒にセーブされ、シナリオはほかのアイテムと同じように渡せます。
RPG Plus では村の商人がこうして取引します: 彼に話しかければウィンドウが開きます。
## 買う
左で品物を選びます。中央にはアイテム、価格、あなたの財布、**−** と **+** と **すべて** の付いた数量スライダー、合計が出ます。**買う** で取引が成立します:
!["Merchant's shop" ウィンドウ: 左に値札付きの商人の品物(エリクサー 10 c、鉄の剣 30 c、短剣 18 c、杖 24 c、革の鎧 20 c、ローブ 16 c、銀の指輪 22 c、力のトニック 40 c、樹脂 4 c、キノコ 3 c、枝 2 c)。中央でエリクサーを選択(price 10, wallet 15, quantity 1/1, Total: 10 coins, Buy)し、"Bought: Elixir ×1 for 10 coins" と表示。右はかばんで、狼の毛皮 3 枚とエリクサー。右上の財布は 15。](assets/trade-buy.jpg)
主人公は 25 枚を持ってきて、エリクサーに 10 枚払ったので、財布には 15 枚残り、エリクサーはかばんの中です。スライダーはお金のあるところまでしか動きません — 今は 1 まで。
## 売る
かばんでアイテムを選びます。商人が買い取るアイテムには値札が付き、ほかはここでは売れません。**すべて** は数量を所持数いっぱいにします:
![かばんから Silver wolf fur を選択: Yours, price 4, you have 3, quantity 3/3, Total: 12 coins, Sell。](assets/trade-sell.jpg)
![売却後: "Sold: Silver wolf fur ×3 for 12 coins"、かばんにはエリクサーだけ、財布は 27。](assets/trade-sold.jpg)
15 + 3 × 4 = **27** 枚。Esc か × でウィンドウを閉じます。
商人の在庫は減らず、売ったものが店に戻ることもありません: 店には自分の状態がなく、変わるのはあなたのかばんだけです。
## データとしての店
店は `shop` 種類のエンティティで、mod の `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` — プレイヤーが買えるもの。この順で、1 個の値段付き。
- `Buys` — 商人がお金を払うもの。それ以外は拒否します。
- `Currency`(省略可)— お金のアイテム。既定はこの mod の金貨 `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. **買うが何もしない。** 1 個も買えるお金がありません。ウィンドウがそう言ってくれます。
3. **ウィンドウが開かない。** `shop=` の id がどの店の `Id` とも一致しません。ログが名前を挙げます。