Add mod documentation in seven languages
This commit is contained in:
1 parent
f11f4e0e02
commit
2bd588fb77
19 files changed
+615
-3
No files matched your search
Binary file not shown.
|
After Width: | Height: | Size: 35 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 12 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 36 KiB |
+86
@@ -0,0 +1,86 @@
|
|||||||
|
# Crafting — workbenches that turn materials into items
|
||||||
|
|
||||||
|
Crafting adds stations where the player makes things: a workbench, an alchemist's table, a sewing kit. A station offers a fixed list of recipes; each recipe takes some items from the bag and gives others. Everything is data — a station, recipes and ordinary items — and a scenario opens the station with one line. It works in any game: from a dialog answer in a visual novel, a click on an object or an event on a tile map.
|
||||||
|
|
||||||
|
## In the game
|
||||||
|
|
||||||
|
RPG Plus has a workbench by the village well. The player has gathered two silver wolf furs and three pieces of living resin and picks the Warden mantle:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
- **Recipes** on the left; click one to see it.
|
||||||
|
- **Ingredients** show how many you have and how many are needed.
|
||||||
|
- **Craft** is available only when everything is there.
|
||||||
|
|
||||||
|
After **Craft**:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
The bag before and after — the furs are gone, one resin is left, the mantle has arrived:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Crafting takes time: the game clock moves on by the recipe's `Time` in minutes — 10 for the mantle. The mantle itself is gear (see Equipment) and can be worn at once.
|
||||||
|
|
||||||
|
## A station and its recipes
|
||||||
|
|
||||||
|
The RPG Plus workbench:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"Kind": "craft_station",
|
||||||
|
"Items": [
|
||||||
|
{
|
||||||
|
"Id": "rpg_plus/workbench",
|
||||||
|
"Name": "rpg_plus/station/name",
|
||||||
|
"Recipes": [ "rpg_plus/salve", "rpg_plus/mantle", "rpg_plus/lantern" ]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
and one of its recipes:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"Kind": "recipe",
|
||||||
|
"Items": [
|
||||||
|
{
|
||||||
|
"Id": "rpg_plus/mantle",
|
||||||
|
"Name": "rpg_plus/recipe/mantle/name",
|
||||||
|
"Description": "rpg_plus/recipe/mantle/desc",
|
||||||
|
"Time": 10,
|
||||||
|
"Input": [ { "Id": "rpg_plus/wolf_pelt", "Count": 2 }, { "Id": "rpg_plus/resin", "Count": 2 } ],
|
||||||
|
"Output": [ { "Id": "rpg_plus/fur_mantle", "Count": 1 } ]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
- A station lists recipes by id, in display order; it may share recipes with other stations.
|
||||||
|
- `Input` is taken from the bag, `Output` added to it; `Time` is in game minutes.
|
||||||
|
- Names and descriptions are translation keys of your mod.
|
||||||
|
|
||||||
|
The player does not need to learn these recipes first: a station offers all of its own.
|
||||||
|
|
||||||
|
## Opening a station
|
||||||
|
|
||||||
|
The workbench's event on the village map runs:
|
||||||
|
|
||||||
|
```scenario
|
||||||
|
ptext "On the workbench lies an instruction: 'Do not taste. Do not sniff.'" key=rpg_plus/woodland/workbench/1
|
||||||
|
action craft.open station=rpg_plus/workbench
|
||||||
|
end
|
||||||
|
```
|
||||||
|
|
||||||
|
While the window is open the player cannot walk; Esc closes it.
|
||||||
|
|
||||||
|
## Safe by design
|
||||||
|
|
||||||
|
A craft is checked completely before anything changes: every ingredient and product must exist, counts must be positive, and the bag must hold enough. If anything is wrong, nothing is taken. Crafted items are ordinary items, so they are saved with the bag.
|
||||||
|
|
||||||
|
## If something goes wrong
|
||||||
|
|
||||||
|
1. **Craft stays grey.** An ingredient is missing; the owned / needed numbers show which.
|
||||||
|
2. **A recipe is missing from the window.** The station's `Recipes` names an id no recipe has.
|
||||||
|
3. **The window does not open.** The `station=` id does not match a station; check the log.
|
||||||
+86
@@ -0,0 +1,86 @@
|
|||||||
|
# Crafting — bancos de trabajo que convierten materiales en objetos
|
||||||
|
|
||||||
|
Crafting añade estaciones donde el jugador fabrica cosas: un banco de trabajo, la mesa de un alquimista, un costurero. Una estación ofrece una lista fija de recetas; cada receta toma unos objetos de la bolsa y entrega otros. Todo son datos —la estación, las recetas y objetos corrientes—, y un escenario abre la estación con una sola línea. Funciona en cualquier juego: desde una respuesta de diálogo en una novela visual, un clic en un objeto o un evento en un mapa de tiles.
|
||||||
|
|
||||||
|
## En el juego
|
||||||
|
|
||||||
|
RPG Plus tiene un banco junto al pozo del pueblo. El jugador ha reunido dos pieles plateadas de lobo y tres piezas de resina viva, y elige el manto del guardián:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
- **Recetas** a la izquierda; haz clic en una para verla.
|
||||||
|
- **Ingredientes** muestran cuántos tienes y cuántos hacen falta.
|
||||||
|
- **Craft** solo está disponible cuando lo tienes todo.
|
||||||
|
|
||||||
|
Tras **Craft**:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
La bolsa antes y después — las pieles desaparecen, queda una resina y llega el manto:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Fabricar lleva su tiempo: el reloj del juego avanza lo que marca el `Time` de la receta, en minutos — 10 para el manto. El manto en sí es equipo (véase Equipment) y se puede poner de inmediato.
|
||||||
|
|
||||||
|
## Una estación y sus recetas
|
||||||
|
|
||||||
|
El banco de RPG Plus:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"Kind": "craft_station",
|
||||||
|
"Items": [
|
||||||
|
{
|
||||||
|
"Id": "rpg_plus/workbench",
|
||||||
|
"Name": "rpg_plus/station/name",
|
||||||
|
"Recipes": [ "rpg_plus/salve", "rpg_plus/mantle", "rpg_plus/lantern" ]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
y una de sus recetas:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"Kind": "recipe",
|
||||||
|
"Items": [
|
||||||
|
{
|
||||||
|
"Id": "rpg_plus/mantle",
|
||||||
|
"Name": "rpg_plus/recipe/mantle/name",
|
||||||
|
"Description": "rpg_plus/recipe/mantle/desc",
|
||||||
|
"Time": 10,
|
||||||
|
"Input": [ { "Id": "rpg_plus/wolf_pelt", "Count": 2 }, { "Id": "rpg_plus/resin", "Count": 2 } ],
|
||||||
|
"Output": [ { "Id": "rpg_plus/fur_mantle", "Count": 1 } ]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
- Una estación lista las recetas por id, en el orden de presentación; puede compartir recetas con otras estaciones.
|
||||||
|
- `Input` se toma de la bolsa y `Output` se le añade; `Time` va en minutos de juego.
|
||||||
|
- Los nombres y las descripciones son claves de traducción de tu mod.
|
||||||
|
|
||||||
|
No hace falta aprender antes estas recetas: una estación ofrece todas las suyas.
|
||||||
|
|
||||||
|
## Abrir una estación
|
||||||
|
|
||||||
|
El evento del banco en el mapa del pueblo ejecuta:
|
||||||
|
|
||||||
|
```scenario
|
||||||
|
ptext "En el banco hay una instrucción: «No probar. No oler.»" key=rpg_plus/woodland/workbench/1
|
||||||
|
action craft.open station=rpg_plus/workbench
|
||||||
|
end
|
||||||
|
```
|
||||||
|
|
||||||
|
Mientras la ventana está abierta, el jugador no puede caminar; Esc la cierra.
|
||||||
|
|
||||||
|
## Seguro por diseño
|
||||||
|
|
||||||
|
Una fabricación se comprueba por completo antes de cambiar nada: cada ingrediente y producto debe existir, las cantidades deben ser positivas y la bolsa debe tener suficiente. Si algo falla, no se toma nada. Los objetos fabricados son objetos corrientes, así que se guardan con la bolsa.
|
||||||
|
|
||||||
|
## Si algo falla
|
||||||
|
|
||||||
|
1. **Craft se queda gris.** Falta un ingrediente; los números "tienes / hacen falta" dicen cuál.
|
||||||
|
2. **Una receta no aparece en la ventana.** La estación nombra en `Recipes` un id que ninguna receta tiene.
|
||||||
|
3. **La ventana no se abre.** El id de `station=` no coincide con ninguna estación; revisa el log.
|
||||||
+86
@@ -0,0 +1,86 @@
|
|||||||
|
# Crafting——材料をアイテムに変える作業台
|
||||||
|
|
||||||
|
Crafting は、プレイヤーが物を作るステーションを追加します: 作業台、錬金術師の机、裁縫セット。ステーションは固定のレシピ一覧を提示し、各レシピはかばんからいくつかのアイテムを取って、別のアイテムを渡します。すべてがデータ — ステーション、レシピ、普通のアイテム — で、ステーションを開くのはシナリオの 1 行です。どのゲームでも動きます: ビジュアルノベルの選択肢からでも、オブジェクトのクリックからでも、タイルマップのイベントからでも。
|
||||||
|
|
||||||
|
## ゲームの中では
|
||||||
|
|
||||||
|
RPG Plus には村の井戸のそばに作業台があります。プレイヤーは銀狼の毛皮 2 枚と生きた樹脂 3 個を集め、森の守人のマントを選んだところです:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
- 左が**レシピ**。クリックすると内容が見えます。
|
||||||
|
- **材料**には、持っている数と必要な数が出ます。
|
||||||
|
- すべてそろったときだけ **Craft** が押せます。
|
||||||
|
|
||||||
|
**Craft** を押したあと:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
前後のかばん — 毛皮は消え、樹脂は 1 個残り、マントが届きます:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
製作には時間がかかります: ゲームの時計はレシピの `Time` だけ進みます — マントは 10 分。マント自体は装備(Equipment を参照)なので、すぐに身につけられます。
|
||||||
|
|
||||||
|
## ステーションとそのレシピ
|
||||||
|
|
||||||
|
RPG Plus の作業台:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"Kind": "craft_station",
|
||||||
|
"Items": [
|
||||||
|
{
|
||||||
|
"Id": "rpg_plus/workbench",
|
||||||
|
"Name": "rpg_plus/station/name",
|
||||||
|
"Recipes": [ "rpg_plus/salve", "rpg_plus/mantle", "rpg_plus/lantern" ]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
そしてそのレシピのひとつ:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"Kind": "recipe",
|
||||||
|
"Items": [
|
||||||
|
{
|
||||||
|
"Id": "rpg_plus/mantle",
|
||||||
|
"Name": "rpg_plus/recipe/mantle/name",
|
||||||
|
"Description": "rpg_plus/recipe/mantle/desc",
|
||||||
|
"Time": 10,
|
||||||
|
"Input": [ { "Id": "rpg_plus/wolf_pelt", "Count": 2 }, { "Id": "rpg_plus/resin", "Count": 2 } ],
|
||||||
|
"Output": [ { "Id": "rpg_plus/fur_mantle", "Count": 1 } ]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
- ステーションはレシピを id で、表示順に列挙します。ほかのステーションとレシピを共有してもかまいません。
|
||||||
|
- `Input` はかばんから取り、`Output` はかばんへ加わります。`Time` はゲーム内分です。
|
||||||
|
- 名前と説明はあなたの mod の翻訳キーです。
|
||||||
|
|
||||||
|
これらのレシピを先に覚える必要はありません: ステーションは、自分の持っているレシピをすべて提示します。
|
||||||
|
|
||||||
|
## ステーションを開く
|
||||||
|
|
||||||
|
村のマップでの作業台のイベントは、このシナリオを実行します:
|
||||||
|
|
||||||
|
```scenario
|
||||||
|
ptext "作業台には注意書きが置いてあります:「味見するな。嗅ぐな。」" key=rpg_plus/woodland/workbench/1
|
||||||
|
action craft.open station=rpg_plus/workbench
|
||||||
|
end
|
||||||
|
```
|
||||||
|
|
||||||
|
ウィンドウが開いている間、プレイヤーは歩けません。Esc で閉じます。
|
||||||
|
|
||||||
|
## 仕組みとして安全
|
||||||
|
|
||||||
|
製作は、何かが変わる前に完全に検査されます: すべての材料と完成品が存在し、数が正であること、かばんに在庫が十分あること。どこかひとつでもおかしければ、何も取りません。作られたアイテムは普通のアイテムなので、かばんと一緒にセーブされます。
|
||||||
|
|
||||||
|
## うまくいかないとき
|
||||||
|
|
||||||
|
1. **Craft が灰色のまま。** 材料が足りません。「所持 / 必要」の数字がどれかを教えてくれます。
|
||||||
|
2. **ウィンドウにレシピが出ない。** ステーションの `Recipes` が、どのレシピも持たない id を挙げています。
|
||||||
|
3. **ウィンドウが開かない。** `station=` の id がどのステーションとも一致しません。ログを確認してください。
|
||||||
+86
@@ -0,0 +1,86 @@
|
|||||||
|
# Crafting — 재료를 아이템으로 바꾸는 작업대
|
||||||
|
|
||||||
|
Crafting은 플레이어가 무언가를 만드는 작업대를 추가합니다: 작업대, 연금술사의 탁자, 바느질 세트. 작업대는 고정된 레시피 목록을 제시하고, 각 레시피는 가방에서 몇 개의 아이템을 가져가 다른 아이템을 돌려줍니다. 전부 데이터입니다 — 작업대, 레시피, 평범한 아이템 — 그리고 작업대를 여는 것은 시나리오 한 줄입니다. 어떤 게임에서든 동작합니다: 비주얼 노벨의 대화 선택지에서, 오브젝트 클릭에서, 타일 맵의 이벤트에서.
|
||||||
|
|
||||||
|
## 게임 속에서
|
||||||
|
|
||||||
|
RPG Plus에는 마을 우물 옆에 작업대가 있습니다. 플레이어는 은빛 늑대 털가죽 두 장과 산 나무진 세 조각을 모은 뒤 수호자 망토를 고릅니다:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
- 왼쪽이 **레시피**입니다. 하나를 클릭해 보세요.
|
||||||
|
- **재료**에는 가지고 있는 수와 필요한 수가 나옵니다.
|
||||||
|
- 모두 갖춰졌을 때만 **Craft**를 누를 수 있습니다.
|
||||||
|
|
||||||
|
**Craft**를 누른 다음:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
전과 후의 가방 — 털가죽은 사라지고 나무진은 하나 남으며 망토가 도착합니다:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
제작에는 시간이 듭니다: 게임 시계가 레시피의 `Time`만큼 흐릅니다 — 망토는 10분. 망토 자체는 장비(Equipment 참조)라서 바로 착용할 수 있습니다.
|
||||||
|
|
||||||
|
## 작업대와 그 레시피
|
||||||
|
|
||||||
|
RPG Plus의 작업대:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"Kind": "craft_station",
|
||||||
|
"Items": [
|
||||||
|
{
|
||||||
|
"Id": "rpg_plus/workbench",
|
||||||
|
"Name": "rpg_plus/station/name",
|
||||||
|
"Recipes": [ "rpg_plus/salve", "rpg_plus/mantle", "rpg_plus/lantern" ]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
그중 하나의 레시피:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"Kind": "recipe",
|
||||||
|
"Items": [
|
||||||
|
{
|
||||||
|
"Id": "rpg_plus/mantle",
|
||||||
|
"Name": "rpg_plus/recipe/mantle/name",
|
||||||
|
"Description": "rpg_plus/recipe/mantle/desc",
|
||||||
|
"Time": 10,
|
||||||
|
"Input": [ { "Id": "rpg_plus/wolf_pelt", "Count": 2 }, { "Id": "rpg_plus/resin", "Count": 2 } ],
|
||||||
|
"Output": [ { "Id": "rpg_plus/fur_mantle", "Count": 1 } ]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
- 작업대는 레시피를 id로, 표시 순서대로 나열합니다. 다른 작업대와 레시피를 공유해도 됩니다.
|
||||||
|
- `Input`은 가방에서 가져가고 `Output`은 가방에 더해집니다. `Time`은 게임 분 단위입니다.
|
||||||
|
- 이름과 설명은 여러분 mod의 번역 키입니다.
|
||||||
|
|
||||||
|
이 레시피들을 먼저 익힐 필요는 없습니다: 작업대는 자기 레시피를 모두 제시합니다.
|
||||||
|
|
||||||
|
## 작업대 열기
|
||||||
|
|
||||||
|
마을 맵의 작업대 이벤트는 이 시나리오를 실행합니다:
|
||||||
|
|
||||||
|
```scenario
|
||||||
|
ptext "작업대 위에는 주의사항이 놓여 있다: «맛보지 마라. 냄새 맡지도 마라.»" key=rpg_plus/woodland/workbench/1
|
||||||
|
action craft.open station=rpg_plus/workbench
|
||||||
|
end
|
||||||
|
```
|
||||||
|
|
||||||
|
창이 열려 있는 동안에는 플레이어가 걸을 수 없습니다. Esc로 닫습니다.
|
||||||
|
|
||||||
|
## 설계부터 안전하게
|
||||||
|
|
||||||
|
제작은 무엇이든 바꾸기 전에 완전히 검사합니다: 모든 재료와 결과물이 존재하고, 개수는 양수이며, 가방에 충분히 있어야 합니다. 하나라도 어긋나면 아무것도 가져가지 않습니다. 만든 아이템은 평범한 아이템이라 가방과 함께 저장됩니다.
|
||||||
|
|
||||||
|
## 문제가 생겼을 때
|
||||||
|
|
||||||
|
1. **Craft가 회색으로 남아 있습니다.** 재료가 부족합니다. «보유 / 필요» 숫자가 무엇인지 알려 줍니다.
|
||||||
|
2. **창에 레시피가 없습니다.** 작업대의 `Recipes`가 어떤 레시피에도 없는 id를 가리킵니다.
|
||||||
|
3. **창이 열리지 않습니다.** `station=`의 id가 작업대와 일치하지 않습니다. 로그를 확인하세요.
|
||||||
+86
@@ -0,0 +1,86 @@
|
|||||||
|
# Crafting — мастерские, превращающие материалы в предметы
|
||||||
|
|
||||||
|
Crafting добавляет станции, на которых игрок что-то мастерит: верстак, стол алхимика, швейный набор. Станция предлагает фиксированный список рецептов; каждый рецепт берёт из сумки одни предметы и выдаёт другие. Всё это данные — станция, рецепты и обычные предметы — а станцию открывает одна строка сценария. Работает в любой игре: из ответа в диалоге визуальной новеллы, щелчка по объекту или события на тайловой карте.
|
||||||
|
|
||||||
|
## В игре
|
||||||
|
|
||||||
|
В RPG Plus у деревенского колодца стоит верстак. Игрок собрал две серебристые шерсти и три живые смолы и выбирает плащ лесного стража:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
- **Рецепты** слева; щёлкните по одному, чтобы рассмотреть.
|
||||||
|
- **Ингредиенты** показывают, сколько у вас есть и сколько нужно.
|
||||||
|
- **Изготовить** доступно, только когда всё на месте.
|
||||||
|
|
||||||
|
После **Изготовить**:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Сумка до и после — шерсть ушла, осталась одна смола, плащ прибыл:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Изготовление занимает время: игровые часы уходят вперёд на `Time` рецепта, в минутах — для плаща это 10. Сам плащ — экипировка (см. Equipment), носить его можно сразу.
|
||||||
|
|
||||||
|
## Станция и её рецепты
|
||||||
|
|
||||||
|
Верстак из RPG Plus:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"Kind": "craft_station",
|
||||||
|
"Items": [
|
||||||
|
{
|
||||||
|
"Id": "rpg_plus/workbench",
|
||||||
|
"Name": "rpg_plus/station/name",
|
||||||
|
"Recipes": [ "rpg_plus/salve", "rpg_plus/mantle", "rpg_plus/lantern" ]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
и один из его рецептов:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"Kind": "recipe",
|
||||||
|
"Items": [
|
||||||
|
{
|
||||||
|
"Id": "rpg_plus/mantle",
|
||||||
|
"Name": "rpg_plus/recipe/mantle/name",
|
||||||
|
"Description": "rpg_plus/recipe/mantle/desc",
|
||||||
|
"Time": 10,
|
||||||
|
"Input": [ { "Id": "rpg_plus/wolf_pelt", "Count": 2 }, { "Id": "rpg_plus/resin", "Count": 2 } ],
|
||||||
|
"Output": [ { "Id": "rpg_plus/fur_mantle", "Count": 1 } ]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
- Станция перечисляет рецепты по id, в порядке показа; рецептами можно делиться между станциями.
|
||||||
|
- `Input` берётся из сумки, `Output` в неё добавляется; `Time` — в игровых минутах.
|
||||||
|
- Имена и описания — ключи переводов вашего мода.
|
||||||
|
|
||||||
|
Учить эти рецепты заранее не нужно: станция предлагает все свои.
|
||||||
|
|
||||||
|
## Открытие станции
|
||||||
|
|
||||||
|
Событие верстака на карте деревни запускает сценарий:
|
||||||
|
|
||||||
|
```scenario
|
||||||
|
ptext "На верстаке лежит инструкция: «Не пробовать. Не нюхать.»" key=rpg_plus/woodland/workbench/1
|
||||||
|
action craft.open station=rpg_plus/workbench
|
||||||
|
end
|
||||||
|
```
|
||||||
|
|
||||||
|
Пока окно открыто, игрок не может ходить; Esc его закрывает.
|
||||||
|
|
||||||
|
## Сначала проверка, потом изменения
|
||||||
|
|
||||||
|
Изготовление проверяется целиком до того, как что-то меняется: каждый ингредиент и продукт должны существовать, количества должны быть положительными, а в сумке всего должно хватать. Если что-то не так — не берётся ничего. Созданные предметы — обычные предметы, поэтому они сохраняются вместе с сумкой.
|
||||||
|
|
||||||
|
## Если что-то пошло не так
|
||||||
|
|
||||||
|
1. **«Изготовить» серое.** Не хватает ингредиента; числа «есть / нужно» показывают, какого.
|
||||||
|
2. **Рецепта нет в окне.** Станция называет в `Recipes` id, на который не откликается ни один рецепт.
|
||||||
|
3. **Окно не открывается.** id в `station=` не совпадает ни с одной станцией; проверьте лог.
|
||||||
+86
@@ -0,0 +1,86 @@
|
|||||||
|
# Crafting — bàn chế tạo biến nguyên liệu thành vật phẩm
|
||||||
|
|
||||||
|
Crafting thêm vào những trạm nơi người chơi chế tạo đồ: một bàn chế tạo, bàn của nhà giả kim, một bộ kim chỉ. Một trạm đưa ra danh sách công thức cố định; mỗi công thức lấy vài vật phẩm từ túi đồ và trao lại những vật phẩm khác. Tất cả đều là dữ liệu — trạm, công thức và các vật phẩm thường — còn việc mở trạm chỉ cần một dòng kịch bản. Nó chạy trong mọi trò chơi: từ một lựa chọn đối thoại trong tiểu thuyết hình ảnh, một cú bấm vào đồ vật, hay một sự kiện trên bản đồ ô vuông.
|
||||||
|
|
||||||
|
## Trong trò chơi
|
||||||
|
|
||||||
|
RPG Plus có một bàn chế tạo bên cạnh giếng làng. Người chơi đã gom hai tấm lông sói bạc và ba miếng nhựa sống, rồi chọn Chiếc choàng Người canh rừng:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
- **Công thức** ở bên trái; bấm vào một công thức để xem.
|
||||||
|
- **Nguyên liệu** cho biết bạn có bao nhiêu và cần bao nhiêu.
|
||||||
|
- **Craft** chỉ khả dụng khi đã có đủ mọi thứ.
|
||||||
|
|
||||||
|
Sau khi bấm **Craft**:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Túi đồ trước và sau — lông sói biến mất, còn lại một nhựa sống, choàng đến tay:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Chế tạo tốn thời gian: đồng hồ trò chơi chạy thêm số phút bằng `Time` của công thức — với chiếc choàng là 10. Chiếc choàng vốn là trang bị (xem Equipment), làm xong mặc ngay được.
|
||||||
|
|
||||||
|
## Một trạm và các công thức của nó
|
||||||
|
|
||||||
|
Bàn chế tạo của RPG Plus:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"Kind": "craft_station",
|
||||||
|
"Items": [
|
||||||
|
{
|
||||||
|
"Id": "rpg_plus/workbench",
|
||||||
|
"Name": "rpg_plus/station/name",
|
||||||
|
"Recipes": [ "rpg_plus/salve", "rpg_plus/mantle", "rpg_plus/lantern" ]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
và một trong các công thức của nó:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"Kind": "recipe",
|
||||||
|
"Items": [
|
||||||
|
{
|
||||||
|
"Id": "rpg_plus/mantle",
|
||||||
|
"Name": "rpg_plus/recipe/mantle/name",
|
||||||
|
"Description": "rpg_plus/recipe/mantle/desc",
|
||||||
|
"Time": 10,
|
||||||
|
"Input": [ { "Id": "rpg_plus/wolf_pelt", "Count": 2 }, { "Id": "rpg_plus/resin", "Count": 2 } ],
|
||||||
|
"Output": [ { "Id": "rpg_plus/fur_mantle", "Count": 1 } ]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
- Trạm liệt kê công thức theo id, theo thứ tự hiển thị; nó có thể dùng chung công thức với trạm khác.
|
||||||
|
- `Input` được lấy từ túi đồ, `Output` được thêm vào túi; `Time` tính bằng phút trong game.
|
||||||
|
- Tên và mô tả là các khóa dịch của mod của bạn.
|
||||||
|
|
||||||
|
Người chơi không cần học trước các công thức này: trạm đưa ra toàn bộ công thức của chính nó.
|
||||||
|
|
||||||
|
## Mở một trạm
|
||||||
|
|
||||||
|
Sự kiện của bàn chế tạo trên bản đồ làng chạy kịch bản sau:
|
||||||
|
|
||||||
|
```scenario
|
||||||
|
ptext "Trên bàn chế tạo có một tờ hướng dẫn: «Không nếm. Không ngửi.»" key=rpg_plus/woodland/workbench/1
|
||||||
|
action craft.open station=rpg_plus/workbench
|
||||||
|
end
|
||||||
|
```
|
||||||
|
|
||||||
|
Khi cửa sổ mở, người chơi không thể đi lại; Esc đóng nó lại.
|
||||||
|
|
||||||
|
## An toàn ngay từ thiết kế
|
||||||
|
|
||||||
|
Một lần chế tạo được kiểm tra trọn vẹn trước khi bất cứ thứ gì thay đổi: mọi nguyên liệu và sản phẩm phải tồn tại, số lượng phải là số dương, và túi đồ phải đủ. Có gì sai thì không lấy gì cả. Vật phẩm chế tạo ra là vật phẩm thường, nên chúng được lưu cùng túi đồ.
|
||||||
|
|
||||||
|
## Khi có gì đó không ổn
|
||||||
|
|
||||||
|
1. **Craft vẫn màu xám.** Thiếu một nguyên liệu; các con số "có / cần" cho biết là món nào.
|
||||||
|
2. **Một công thức không có trong cửa sổ.** Trạm nêu trong `Recipes` một id mà không công thức nào có.
|
||||||
|
3. **Cửa sổ không mở.** id trong `station=` không khớp trạm nào; hãy xem log.
|
||||||
+86
@@ -0,0 +1,86 @@
|
|||||||
|
# Crafting——把材料变成物品的工作台
|
||||||
|
|
||||||
|
Crafting 添加了让玩家动手制作的站点:工作台、炼金台、针线包。一个站点提供固定的配方列表;每份配方从背包取走一些物品,再交给你另一些。一切都是数据——站点、配方和普通物品——而剧本只要一行命令就能打开站点。它在任何游戏中都能用:可以是视觉小说里的一个对话选项、一次对物体的点击,或者图块地图上的一个事件。
|
||||||
|
|
||||||
|
## 在游戏中
|
||||||
|
|
||||||
|
RPG Plus 在村中水井旁有一个工作台。玩家已经收集了两张银狼皮和三份活树脂,选中的是守林人披风:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
- 左侧是**配方**;点击即可查看。
|
||||||
|
- **原料**显示你有多少、需要多少。
|
||||||
|
- 只有东西齐了,**Craft** 才可用。
|
||||||
|
|
||||||
|
按下 **Craft** 之后:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
制作前后的背包——狼皮没了,剩一份树脂,披风到手:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
制作需要时间:游戏时钟按配方的 `Time` 前进若干分钟——披风是 10 分钟。披风本身是装备(见 Equipment),做完马上就能穿。
|
||||||
|
|
||||||
|
## 站点与配方
|
||||||
|
|
||||||
|
RPG Plus 的工作台:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"Kind": "craft_station",
|
||||||
|
"Items": [
|
||||||
|
{
|
||||||
|
"Id": "rpg_plus/workbench",
|
||||||
|
"Name": "rpg_plus/station/name",
|
||||||
|
"Recipes": [ "rpg_plus/salve", "rpg_plus/mantle", "rpg_plus/lantern" ]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
以及其中一个配方:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"Kind": "recipe",
|
||||||
|
"Items": [
|
||||||
|
{
|
||||||
|
"Id": "rpg_plus/mantle",
|
||||||
|
"Name": "rpg_plus/recipe/mantle/name",
|
||||||
|
"Description": "rpg_plus/recipe/mantle/desc",
|
||||||
|
"Time": 10,
|
||||||
|
"Input": [ { "Id": "rpg_plus/wolf_pelt", "Count": 2 }, { "Id": "rpg_plus/resin", "Count": 2 } ],
|
||||||
|
"Output": [ { "Id": "rpg_plus/fur_mantle", "Count": 1 } ]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
- 站点按 id、按显示顺序列出配方;不同站点可以共用配方。
|
||||||
|
- `Input` 从背包扣除,`Output` 加入背包;`Time` 以游戏分钟计。
|
||||||
|
- 名称和描述是你 mod 的翻译键。
|
||||||
|
|
||||||
|
玩家不需要先学习这些配方:站点会给出它自己的全部配方。
|
||||||
|
|
||||||
|
## 打开站点
|
||||||
|
|
||||||
|
村庄地图上工作台的事件运行:
|
||||||
|
|
||||||
|
```scenario
|
||||||
|
ptext "工作台上放着一份说明:“不要品尝。不要嗅闻。”" key=rpg_plus/woodland/workbench/1
|
||||||
|
action craft.open station=rpg_plus/workbench
|
||||||
|
end
|
||||||
|
```
|
||||||
|
|
||||||
|
窗口打开时玩家不能走动;Esc 关闭窗口。
|
||||||
|
|
||||||
|
## 设计上就安全
|
||||||
|
|
||||||
|
一次制作在改动任何东西之前会被完整检查:每种原料和成品都必须存在,数量必须为正,背包里的存货必须够用。任何一处不对,就什么都不拿。制作出的物品是普通物品,因此随背包一起存档。
|
||||||
|
|
||||||
|
## 出问题了?
|
||||||
|
|
||||||
|
1. **Craft 一直是灰色。** 缺少原料;“已有 / 需要”的数字会告诉你缺哪个。
|
||||||
|
2. **窗口里少了一个配方。** 站点的 `Recipes` 里写了一个没有任何配方使用的 id。
|
||||||
|
3. **窗口打不开。** `station=` 的 id 和任何站点的 id 都对不上;去看日志。
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
mod_crafting_name = Crafting
|
mod_crafting_name = Crafting
|
||||||
mod_crafting_desc = Data-defined crafting stations for any game: ingredients, products and crafting without code.
|
mod_crafting_desc = Workbench stations that turn materials into items: stations and recipes are plain data, and any scenario opens a station with one command.
|
||||||
crafting/create = Craft
|
crafting/create = Craft
|
||||||
crafting/hint = Ingredients are consumed only when you craft. Esc closes.
|
crafting/hint = Ingredients are consumed only when you craft. Esc closes.
|
||||||
crafting/ingredients = INGREDIENTS · owned / needed
|
crafting/ingredients = INGREDIENTS · owned / needed
|
||||||
|
|||||||
@@ -0,0 +1,2 @@
|
|||||||
|
mod_crafting_name = Fabricación
|
||||||
|
mod_crafting_desc = Estaciones de trabajo que convierten materiales en objetos: las estaciones y las recetas son datos sencillos, y cualquier escenario abre una estación con un solo comando.
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
mod_crafting_name = クラフト
|
||||||
|
mod_crafting_desc = 材料をアイテムに変える作業台ステーション: ステーションもレシピもただのデータで、どんなシナリオでも 1 行のコマンドでステーションを開けます。
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
mod_crafting_name = 제작
|
||||||
|
mod_crafting_desc = 재료를 아이템으로 바꾸는 작업대: 작업대와 레시피는 모두 평범한 데이터이며, 어떤 시나리오든 명령 한 줄로 작업대를 엽니다.
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
mod_crafting_name = Мастерская
|
mod_crafting_name = Мастерская
|
||||||
mod_crafting_desc = Рецепты и мастерские для любой игры: материалы, изделия, изготовление без кода.
|
mod_crafting_desc = Мастерские, которые превращают материалы в предметы: станции и рецепты — обычные данные, а любую станцию открывает одна команда сценария.
|
||||||
crafting/create = Изготовить
|
crafting/create = Изготовить
|
||||||
crafting/hint = Материалы расходуются только при изготовлении. Esc — закрыть.
|
crafting/hint = Материалы расходуются только при изготовлении. Esc — закрыть.
|
||||||
crafting/ingredients = МАТЕРИАЛЫ · есть / нужно
|
crafting/ingredients = МАТЕРИАЛЫ · есть / нужно
|
||||||
|
|||||||
@@ -0,0 +1,2 @@
|
|||||||
|
mod_crafting_name = Chế tạo
|
||||||
|
mod_crafting_desc = Các trạm chế tạo biến nguyên liệu thành vật phẩm: trạm và công thức đều là dữ liệu thuần, và kịch bản nào cũng mở được trạm bằng một lệnh duy nhất.
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
mod_crafting_name = 制作
|
||||||
|
mod_crafting_desc = 把材料变成物品的工作台站点:站点和配方都是纯数据,任何剧本用一条命令就能打开站点。
|
||||||
+1
-1
@@ -3,7 +3,7 @@
|
|||||||
"name": "Crafting",
|
"name": "Crafting",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"author": "ct",
|
"author": "ct",
|
||||||
"description": "Genre-neutral crafting stations built from recipe and craft_station data. Opens from any scenario with craft.open station=<id>; validates all ingredients and products before consuming anything. No game or tile-world dependency.",
|
"description": "Workbench stations that turn materials into items: stations and recipes are plain data, and any scenario opens a station with one command.",
|
||||||
"category": "gameplay",
|
"category": "gameplay",
|
||||||
"sources": ["src/**/*.cs"],
|
"sources": ["src/**/*.cs"],
|
||||||
"test_sources": ["tests/*.cs"],
|
"test_sources": ["tests/*.cs"],
|
||||||
|
|||||||
Reference in new issue
Block a user