Add mod documentation in seven languages

This commit is contained in:
cthangover committed 2026-10-29 09:25:58 +01:00
1 parent c9f1ce4cf1
commit bf52bafd9a
17 files changed
+519 -8

No files matched your search

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

+73
View File
@@ -0,0 +1,73 @@
# Items Base — items, the inventory and using things
Items Base gives a game items and a bag to keep them in. It defines what an item is (name, picture, price, type and what happens when it is used), shows the **Inventory** panel, saves what the player carries, and lets scenarios give, take and check items. Trading, cooking, crafting, equipment and the RPG maps all build on it.
## The Inventory panel
Open it with the bag icon on the toolbar. Click an item on the left to see its details on the right.
![Using a forest mushroom in RPG Plus: the mushroom (×2) selected in the grid, its details on the right — Targeted and Food badges, the description "Restores 5 health", the action action/heal with the property heal 5 — and, after Eat, the target list with the Hero at 10/24 health.](assets/use-mushroom.jpg)
- **Tabs** at the top filter by type (Food, Resources, Recipes, Quests); the search field and the sort list narrow the grid.
- **Details** show the name, type badges, price, description, stack size, id and the item's own properties.
- **The action button** is named by the item: **Use**, **Eat** for food, **Apply to target**, **Learn recipe**, or a verb the item defines (the mushroom says **Eat** because of its `verb`).
- **Targeted items** ask whom to use them on: pick a party member, or **Cancel**.
- **Drop** throws a stack away after a confirmation; key items cannot be dropped.
- In a battle every use or drop costs the active character one action point; outside battle it is free.
![After choosing the Hero: the stack is down to ×1 and the panel reports "Applied: Forest mushroom → Hero".](assets/after-use.jpg)
If an action cannot be done — for example the target already has full health — the item is not spent and the panel says why.
## An item definition
Items are JSON files of kind `item` in a mod's `items/` folder, with the picture next to them. This is the mushroom from the pictures above (from RPG Demo):
```json
{
"Kind": "item",
"Items": [
{
"Id": "rpg_demo/mushroom",
"Name": "rpg_demo/item/mushroom/name",
"Description": "rpg_demo/item/mushroom/desc",
"Cost": 2,
"Sprite": "rpg_demo/forest_mushroom",
"ItemType": "Food,TargetUsed",
"ItemAction": "action/heal",
"heal": 5,
"verb": "ui/inventory/verb_eat"
}
]
}
```
- `Name`, `Description` — translation keys, shown in the details.
- `Cost` — the price, used by shops.
- `Sprite` — the picture `items/rpg_demo/forest_mushroom.png`.
- `ItemType` — one or more types, separated by commas: `Food`, `Resource`, `Quest`, `Recipe`, `Used` (used without a target), `TargetUsed` (used on a party member), `CantDrop`.
- `ItemAction` — what using it does. `action/heal` restores health by the item's `heal` value, never above the maximum and never to a fallen character. Other mods add actions, for example equipment's `action/equip`.
- Any other key (`heal`, `verb`) is an item property: actions read them, and the details list them. `verb` names the action button.
## Items in scenarios
```scenario
action item.add id=rpg_demo/mushroom count=2
when "item('rpg_demo/mushroom') >= 2" -> :enough
action item.remove id=rpg_demo/mushroom count=2
```
- `item.add` puts items into the bag (a chest, a gift, a pickup on a map); `count` defaults to 1.
- `item('id')` compares how many the player has; it works in `when`, in answer conditions, quests and map events.
- `item.remove` takes items away; it refuses when the player has fewer, so check with `item('id')` first.
## Recipes
Recipes (kind `recipe`) list `Input` and `Output` items with counts. This mod keeps which recipes the player knows; cooking and crafting use them.
## If something goes wrong
1. **An item shows its id instead of a name.** Add its `Name` key to the mod's `locale` files.
2. **No action button.** The item needs `Used` or `TargetUsed` in `ItemType` and an `ItemAction`.
3. **Using does nothing and the item stays.** The action refused: for healing, the target is at full health or has fallen.
4. **`item.add` adds nothing.** The id is unknown; check the `Id` in the item file.
+73
View File
@@ -0,0 +1,73 @@
# Items Base — objetos, el inventario y su uso
Items Base da a un juego objetos y una bolsa donde guardarlos. Define qué es un objeto (nombre, imagen, precio, tipo y qué ocurre al usarlo), muestra el panel **Inventario**, guarda lo que lleva el jugador y deja que los escenarios den, quiten y comprueben objetos. El comercio, la cocina, la fabricación, el equipo y los mapas RPG se apoyan en él.
## El panel Inventario
Se abre con el icono de la bolsa en la barra de herramientas. Haz clic en un objeto de la izquierda para ver sus detalles a la derecha.
![Usar una seta del bosque en RPG Plus: la seta (×2) seleccionada en la cuadrícula, sus detalles a la derecha — distintivos Dirigido y Comida, la descripción «Restaura 5 de salud», la acción action/heal con la propiedad heal 5 — y, tras Comer, la lista de objetivos con el Héroe a 10/24 de salud.](assets/use-mushroom.jpg)
- **Pestañas** arriba filtran por tipo (Comida, Recursos, Recetas, Misiones); el campo de búsqueda y la lista de orden reducen la cuadrícula.
- **Detalles** muestran el nombre, los distintivos de tipo, el precio, la descripción, el tamaño de la pila, el id y las propiedades propias del objeto.
- **El botón de acción** lo nombra el propio objeto: **Usar**, **Comer** para la comida, **Aplicar a objetivo**, **Aprender receta**, o un verbo que el objeto define (la seta dice **Comer** por su `verb`).
- **Los objetos dirigidos** preguntan sobre quién usarlos: elige a un miembro del grupo o **Cancelar**.
- **Tirar** desecha una pila tras una confirmación; los objetos clave no se pueden tirar.
- En combate, cada uso o tirada cuesta al personaje activo un punto de acción; fuera de combate es gratis.
![Tras elegir al Héroe: la pila baja a ×1 y el panel avisa «Aplicado: Seta del bosque → Héroe».](assets/after-use.jpg)
Si una acción no puede hacerse — por ejemplo, el objetivo ya tiene la salud llena —, el objeto no se gasta y el panel explica por qué.
## Una definición de objeto
Los objetos son archivos JSON de tipo `item` en la carpeta `items/` de un mod, con la imagen al lado. Esta es la seta de las imágenes de arriba (de RPG Demo):
```json
{
"Kind": "item",
"Items": [
{
"Id": "rpg_demo/mushroom",
"Name": "rpg_demo/item/mushroom/name",
"Description": "rpg_demo/item/mushroom/desc",
"Cost": 2,
"Sprite": "rpg_demo/forest_mushroom",
"ItemType": "Food,TargetUsed",
"ItemAction": "action/heal",
"heal": 5,
"verb": "ui/inventory/verb_eat"
}
]
}
```
- `Name`, `Description` — claves de traducción, mostradas en los detalles.
- `Cost` — el precio, que usan las tiendas.
- `Sprite` — la imagen `items/rpg_demo/forest_mushroom.png`.
- `ItemType` — uno o más tipos, separados por comas: `Food`, `Resource`, `Quest`, `Recipe`, `Used` (se usa sin objetivo), `TargetUsed` (se usa sobre un miembro del grupo), `CantDrop`.
- `ItemAction` — qué hace al usarse. `action/heal` restaura salud según el valor `heal` del objeto, sin pasar del máximo y nunca sobre un caído. Otros mods añaden acciones, por ejemplo el `action/equip` de equipment.
- Cualquier otra clave (`heal`, `verb`) es una propiedad del objeto: las acciones la leen y los detalles la enumeran. `verb` nombra el botón de acción.
## Objetos en escenarios
```scenario
action item.add id=rpg_demo/mushroom count=2
when "item('rpg_demo/mushroom') >= 2" -> :enough
action item.remove id=rpg_demo/mushroom count=2
```
- `item.add` mete objetos en la bolsa (un cofre, un regalo, una recogida en el mapa); `count` vale 1 por defecto.
- `item('id')` compara cuántos lleva el jugador; funciona en `when`, en condiciones de respuesta, en misiones y en eventos de mapa.
- `item.remove` quita objetos; se niega si el jugador tiene menos, así que comprueba antes con `item('id')`.
## Recetas
Las recetas (tipo `recipe`) enumeran objetos de `Input` y `Output` con cantidades. Este mod recuerda qué recetas conoce el jugador; la cocina y la fabricación las usan.
## Si algo falla
1. **Un objeto muestra su id en vez de un nombre.** Añade su clave `Name` a los archivos `locale` del mod.
2. **No hay botón de acción.** El objeto necesita `Used` o `TargetUsed` en `ItemType` y un `ItemAction`.
3. **Usar no hace nada y el objeto se queda.** La acción se negó: al curar, el objetivo está con la salud llena o ha caído.
4. **`item.add` no añade nada.** El id es desconocido; comprueba el `Id` en el archivo del objeto.
+73
View File
@@ -0,0 +1,73 @@
# Items Base — アイテム、インベントリ、使い方
Items Base は、ゲームにアイテムと、それを入れるバッグを与えます。アイテムとは何か(名前・画像・価格・種類、そして使ったときに何が起きるか)を定義し、**インベントリ**パネルを表示し、プレイヤーの所持品をセーブし、シナリオがアイテムを渡したり奪ったり確かめたりできるようにします。交易、料理、クラフト、装備、RPG マップはすべてこの上に成り立っています。
## インベントリパネル
ツールバーのバッグ・アイコンで開きます。左の一覧でアイテムをクリックすると、右に詳しい情報が出ます。
![RPG Plus で森のキノコを使う場面: 格子で選ばれたキノコ (×2)、右側の詳細 — 「対象指定」と「食料」のバッジ、説明「体力を 5 回復」、heal 5 のプロパティを持つ action/heal — そして「食べる」の後、対象一覧には 10/24 の体力の主人公。](assets/use-mushroom.jpg)
- 上部の**タブ**は種類で絞り込みます(食料・素材・レシピ・クエスト)。検索欄と並び替えで格子をさらに狭められます。
- **詳細**には名前、種類のバッジ、価格、説明、スタック数、id、そしてアイテム自身のプロパティが出ます。
- **アクションボタン**の名前はアイテムが決めます。**使う**、食料なら**食べる**、**対象に使う**、**レシピを覚える**、あるいはアイテムが定義した動詞(キノコは `verb` のおかげで**食べる**と表示)。
- **対象指定アイテム**は、誰に使うか尋ねてきます。パーティのメンバーを選ぶか**キャンセル**します。
- **捨てる**は確認のうえスタックを捨てます。大事なアイテムは捨てられません。
- 戦闘中は、使うのも捨てるのも行動中のキャラクターのアクションポイントを 1 消費します。戦闘外は無料です。
![主人公を選んだ後: スタックは ×1 に減り、パネルは「使用しました: 森のキノコ → 主人公」と伝えます。](assets/after-use.jpg)
アクションができないとき — たとえば対象の体力がすでに満タン — には、アイテムは消費されず、パネルが理由を伝えます。
## アイテムの定義
アイテムは、mod の `items/` フォルダーに入る kind `item` の JSON ファイルで、画像はそのそばに置きます。こちらは上の画像のキノコ(RPG Demo のもの)です。
```json
{
"Kind": "item",
"Items": [
{
"Id": "rpg_demo/mushroom",
"Name": "rpg_demo/item/mushroom/name",
"Description": "rpg_demo/item/mushroom/desc",
"Cost": 2,
"Sprite": "rpg_demo/forest_mushroom",
"ItemType": "Food,TargetUsed",
"ItemAction": "action/heal",
"heal": 5,
"verb": "ui/inventory/verb_eat"
}
]
}
```
- `Name`、`Description` — 翻訳キー。詳細に表示されます。
- `Cost` — 価格。店で使われます。
- `Sprite` — 画像 `items/rpg_demo/forest_mushroom.png`。
- `ItemType` — 一つ以上の種類をカンマで並べます。`Food`、`Resource`、`Quest`、`Recipe`、`Used`(対象なしで使う)、`TargetUsed`(パーティのメンバーに使う)、`CantDrop`。
- `ItemAction` — 使ったときに何が起きるか。`action/heal` はアイテムの `heal` の値だけ体力を回復します。最大値を超えず、倒れたキャラクターには決して使いません。ほかの mod もアクションを追加します。たとえば equipment の `action/equip`。
- その他のキー(`heal`、`verb`)はアイテムのプロパティです。アクションが読み、詳細にも並びます。`verb` がアクションボタンの名前になります。
## シナリオの中のアイテム
```scenario
action item.add id=rpg_demo/mushroom count=2
when "item('rpg_demo/mushroom') >= 2" -> :enough
action item.remove id=rpg_demo/mushroom count=2
```
- `item.add` はアイテムをバッグへ入れます(宝箱、贈り物、マップの拾い物)。`count` の既定値は 1 です。
- `item('id')` はプレイヤーの所持数を比べます。`when`、選択肢の条件、クエスト、マップイベントで使えます。
- `item.remove` はアイテムを奪います。足りなければ拒否するので、先に `item('id')` で確かめてください。
## レシピ
レシピ(kind `recipe`)は `Input` と `Output` のアイテムと数を並べます。プレイヤーがどのレシピを覚えているかはこの mod が保持し、料理とクラフトが使います。
## うまく動かないとき
1. **アイテムが名前ではなく id を表示する。** `Name` のキーを mod の `locale` ファイルに追加してください。
2. **アクションボタンがない。** アイテムには `ItemType` の `Used` か `TargetUsed` と、`ItemAction` が必要です。
3. **使っても何も起きず、アイテムが残る。** アクションが拒否しました。回復なら対象の体力が満タンか、倒れています。
4. **`item.add` が何も足さない。** id が未知です。アイテムファイルの `Id` を確かめてください。
+73
View File
@@ -0,0 +1,73 @@
# Items Base — 아이템, 인벤토리, 아이템 사용
Items Base는 게임에 아이템과 그것을 담을 가방을 줍니다. 아이템이 무엇인지(이름, 그림, 가격, 종류, 사용하면 무슨 일이 일어나는지)를 정의하고, **인벤토리** 패널을 보여 주고, 플레이어가 지닌 것을 저장하며, 시나리오가 아이템을 주고 빼고 확인할 수 있게 합니다. 거래, 요리, 제작, 장비, RPG 맵이 모두 이 위에 세워집니다.
## 인벤토리 패널
툴바의 가방 아이콘으로 엽니다. 왼쪽에서 아이템을 클릭하면 오른쪽에 자세한 정보가 나옵니다.
![RPG Plus에서 숲 버섯 사용하기: 격자에서 선택된 버섯(×2), 오른쪽의 세부 정보 — "대상 지정"과 "음식" 배지, 설명 "체력 5 회복", heal 5 속성을 가진 action/heal — 그리고 "먹기" 후 대상 목록에 10/24 체력의 영웅.](assets/use-mushroom.jpg)
- 위쪽의 **탭**은 종류로 걸러 줍니다(음식, 자원, 레시피, 퀘스트). 검색창과 정렬 목록이 격자를 좁혀 줍니다.
- **세부 정보**에는 이름, 종류 배지, 가격, 설명, 묶음 크기, id, 그리고 아이템 고유의 속성이 나옵니다.
- **액션 버튼**의 이름은 아이템이 정합니다. **사용**, 음식이라면 **먹기**, **대상에게 사용**, **레시피 익히기**, 혹은 아이템이 정한 동사(버섯은 `verb` 때문에 **먹기**로 나옵니다).
- **대상 지정 아이템**은 누구에게 쓸지 물어봅니다. 파티원을 고르거나 **취소**하세요.
- **버리기**는 확인 후 묶음을 버립니다. 중요한 아이템은 버릴 수 없습니다.
- 전투 중에는 사용이나 버리기마다 행동 중인 캐릭터의 액션 포인트가 1씩 듭니다. 전투 밖에서는 공짜입니다.
![영웅을 고른 뒤: 묶음은 ×1로 줄고, 패널은 "사용됨: 숲 버섯 → 영웅"이라고 알립니다.](assets/after-use.jpg)
액션이 불가능할 때 — 예를 들어 대상의 체력이 이미 가득 찼을 때 — 아이템은 소모되지 않고, 패널이 이유를 알려 줍니다.
## 아이템 정의
아이템은 mod의 `items/` 폴더에 있는 kind `item` JSON 파일이고, 그림은 그 옆에 둡니다. 위 사진의 버섯(RPG Demo 것)입니다.
```json
{
"Kind": "item",
"Items": [
{
"Id": "rpg_demo/mushroom",
"Name": "rpg_demo/item/mushroom/name",
"Description": "rpg_demo/item/mushroom/desc",
"Cost": 2,
"Sprite": "rpg_demo/forest_mushroom",
"ItemType": "Food,TargetUsed",
"ItemAction": "action/heal",
"heal": 5,
"verb": "ui/inventory/verb_eat"
}
]
}
```
- `Name`, `Description` — 번역 키. 세부 정보에 표시됩니다.
- `Cost` — 가격. 상점이 사용합니다.
- `Sprite` — 그림 `items/rpg_demo/forest_mushroom.png`.
- `ItemType` — 하나 이상의 종류를 쉼표로 나열합니다. `Food`, `Resource`, `Quest`, `Recipe`, `Used`(대상 없이 사용), `TargetUsed`(파티원에게 사용), `CantDrop`.
- `ItemAction` — 사용하면 무엇을 하는지. `action/heal`은 아이템의 `heal` 값만큼 체력을 회복합니다. 최대치를 넘지 않고, 쓰러진 캐릭터에게는 결코 쓰이지 않습니다. 다른 mod도 액션을 추가합니다. 예를 들어 equipment의 `action/equip`.
- 그 밖의 키(`heal`, `verb`)는 아이템 속성입니다. 액션이 읽고 세부 정보에도 나열됩니다. `verb`는 액션 버튼의 이름을 정합니다.
## 시나리오 속 아이템
```scenario
action item.add id=rpg_demo/mushroom count=2
when "item('rpg_demo/mushroom') >= 2" -> :enough
action item.remove id=rpg_demo/mushroom count=2
```
- `item.add`는 아이템을 가방에 넣습니다(상자, 선물, 맵의 줍기 아이템). `count`의 기본값은 1입니다.
- `item('id')`는 플레이어가 몇 개 가졌는지 비교합니다. `when`, 선택지 조건, 퀘스트, 맵 이벤트에서 작동합니다.
- `item.remove`는 아이템을 거둡니다. 부족하면 거부하므로, 먼저 `item('id')`로 확인하세요.
## 레시피
레시피(kind `recipe`)는 `Input`과 `Output` 아이템과 수량을 나열합니다. 플레이어가 어떤 레시피를 알고 있는지는 이 모드가 기억하며, 요리와 제작이 사용합니다.
## 문제가 생겼을 때
1. **아이템이 이름 대신 id를 보여 줍니다.** `Name` 키를 mod의 `locale` 파일에 추가하세요.
2. **액션 버튼이 없습니다.** 아이템에는 `ItemType`의 `Used`나 `TargetUsed`와 `ItemAction`이 필요합니다.
3. **사용해도 아무 일 없고 아이템이 그대로입니다.** 액션이 거부했습니다. 회복이라면 대상의 체력이 가득 찼거나 쓰러진 경우입니다.
4. **`item.add`가 아무것도 추가하지 않습니다.** id를 알 수 없습니다. 아이템 파일의 `Id`를 확인하세요.
+73
View File
@@ -0,0 +1,73 @@
# Items Base — предметы, инвентарь и то, как их применять
Items Base даёт игре предметы и сумку, чтобы их носить. Мод определяет, что такое предмет (имя, картинка, цена, тип и что происходит при использовании), показывает панель **Инвентарь**, сохраняет то, что несёт игрок, и позволяет сценариям выдавать, забирать и проверять предметы. Торговля, готовка, крафт, экипировка и RPG-карты строятся на нём.
## Панель инвентаря
Открывается иконкой сумки на панели инструментов. Щёлкните предмет слева, чтобы справа увидеть его подробности.
![Использование лесного гриба в RPG Plus: гриб (×2) выбран в сетке, справа его подробности — метки «Целевое» и «Еда», описание «Восстанавливает 5 здоровья», действие action/heal со свойством heal 5, а после «Съесть» — список целей, где Герой с 10/24 здоровья.](assets/use-mushroom.jpg)
- **Вкладки** сверху фильтруют по типу (Еда, Ресурсы, Рецепты, Задания); поле поиска и список сортировки сужают сетку.
- **Подробности** показывают имя, метки типа, цену, описание, размер стопки, id и собственные свойства предмета.
- **Кнопка действия** названа самим предметом: **Использовать**, **Съесть** для еды, **Применить к цели**, **Выучить рецепт** — или тем глаголом, который предмет задаёт (гриб говорит **Съесть** из-за своего `verb`).
- **Направляемые предметы** спрашивают, на кого их применить: выберите члена отряда или **Отмена**.
- **Выбросить** уничтожает стопку после подтверждения; ключевые предметы выбросить нельзя.
- В бою каждое использование или выбрасывание стоит активному персонажу одно очко действия; вне боя — бесплатно.
![После выбора Героя: стопка уменьшилась до ×1, а панель сообщает «Применено: Лесной гриб → Герой».](assets/after-use.jpg)
Если действие невозможно — например, у цели уже полное здоровье, — предмет не тратится, а панель объясняет почему.
## Описание предмета
Предметы — это JSON-файлы вида `item` в папке `items/` мода, рядом с ними лежит картинка. Вот гриб с картинок выше (из RPG Demo):
```json
{
"Kind": "item",
"Items": [
{
"Id": "rpg_demo/mushroom",
"Name": "rpg_demo/item/mushroom/name",
"Description": "rpg_demo/item/mushroom/desc",
"Cost": 2,
"Sprite": "rpg_demo/forest_mushroom",
"ItemType": "Food,TargetUsed",
"ItemAction": "action/heal",
"heal": 5,
"verb": "ui/inventory/verb_eat"
}
]
}
```
- `Name`, `Description` — ключи перевода, показываются в подробностях.
- `Cost` — цена; её используют магазины.
- `Sprite` — картинка `items/rpg_demo/forest_mushroom.png`.
- `ItemType` — один или несколько типов через запятую: `Food`, `Resource`, `Quest`, `Recipe`, `Used` (применяется без цели), `TargetUsed` (применяется к члену отряда), `CantDrop`.
- `ItemAction` — что делает применение. `action/heal` восстанавливает здоровье на значение `heal` предмета — не выше максимума и никогда не поднимает упавшего. Другие моды добавляют свои действия, например `action/equip` экипировки.
- Любой другой ключ (`heal`, `verb`) — свойство предмета: действия его читают, а подробности его показывают. `verb` называет кнопку действия.
## Предметы в сценариях
```scenario
action item.add id=rpg_demo/mushroom count=2
when "item('rpg_demo/mushroom') >= 2" -> :enough
action item.remove id=rpg_demo/mushroom count=2
```
- `item.add` кладёт предметы в сумку (сундук, подарок, подбор на карте); `count` по умолчанию равен 1.
- `item('id')` сравнивает, сколько предметов у игрока; работает в `when`, в условиях ответов, в заданиях и событиях карты.
- `item.remove` забирает предметы; если их меньше, отказывается — поэтому сначала проверьте через `item('id')`.
## Рецепты
Рецепты (вид `recipe`) перечисляют предметы `Input` и `Output` с количествами. Этот мод хранит, какие рецепты игрок уже знает; готовка и крафт пользуются ими.
## Если что-то пошло не так
1. **Предмет показывает id вместо имени.** Добавьте его ключ `Name` в файлы `locale` мода.
2. **Нет кнопки действия.** Предмету нужен тип `Used` или `TargetUsed` в `ItemType` и `ItemAction`.
3. **Применение ничего не делает, а предмет остаётся.** Действие отказало: для лечения цель либо при полном здоровье, либо упала.
4. **`item.add` ничего не добавляет.** Идентификатор неизвестен; сверьте `Id` в файле предмета.
+73
View File
@@ -0,0 +1,73 @@
# Items Base — vật phẩm, túi đồ và cách dùng
Items Base cho game có vật phẩm và chiếc túi để đựng chúng. Mod định nghĩa vật phẩm là gì (tên, ảnh, giá, loại và chuyện gì xảy ra khi dùng), hiển thị bảng **Túi đồ**, lưu những gì người chơi mang theo, và cho phép kịch bản trao, lấy và kiểm tra vật phẩm. Mua bán, nấu ăn, chế tạo, trang bị và các bản đồ RPG đều xây trên nó.
## Bảng Túi đồ
Mở bằng biểu tượng túi trên thanh công cụ. Nhấp một vật phẩm ở bên trái để xem chi tiết của nó bên phải.
![Dùng nấm rừng trong RPG Plus: nấm (×2) đang chọn trong lưới, chi tiết bên phải — huy hiệu Có mục tiêu và Đồ ăn, mô tả "Hồi 5 máu", hành động action/heal với thuộc tính heal 5 — và sau Ăn, danh sách mục tiêu hiện Hero đang 10/24 máu.](assets/use-mushroom.jpg)
- **Thẻ** phía trên lọc theo loại (Đồ ăn, Tài nguyên, Công thức, Nhiệm vụ); ô tìm kiếm và danh sách sắp xếp thu hẹp lưới.
- **Chi tiết** hiển thị tên, huy hiệu loại, giá, mô tả, kích thước chồng, id và các thuộc tính riêng của vật phẩm.
- **Nút hành động** do chính vật phẩm đặt tên: **Dùng**, **Ăn** với đồ ăn, **Dùng lên mục tiêu**, **Học công thức**, hoặc một động từ vật phẩm tự định nghĩa (nấm hiển thị **Ăn** nhờ `verb` của nó).
- **Vật phẩm có mục tiêu** hỏi dùng lên ai: chọn một thành viên đội hoặc **Hủy**.
- **Vứt bỏ** ném cả chồng đi sau khi xác nhận; vật phẩm then chốt không thể vứt.
- Trong trận, mỗi lần dùng hay vứt tốn của nhân vật đang hành động một điểm hành động; ngoài trận thì miễn phí.
![Sau khi chọn Hero: chồng còn lại ×1 và bảng báo "Đã dùng: Nấm rừng → Hero".](assets/after-use.jpg)
Nếu hành động không thực hiện được — ví dụ mục tiêu đã đủ máu — vật phẩm không bị tiêu và bảng nói rõ lý do.
## Định nghĩa vật phẩm
Vật phẩm là tệp JSON kind `item` trong thư mục `items/` của mod, ảnh đặt ngay cạnh. Đây là cây nấm trong các hình trên (thuộc RPG Demo):
```json
{
"Kind": "item",
"Items": [
{
"Id": "rpg_demo/mushroom",
"Name": "rpg_demo/item/mushroom/name",
"Description": "rpg_demo/item/mushroom/desc",
"Cost": 2,
"Sprite": "rpg_demo/forest_mushroom",
"ItemType": "Food,TargetUsed",
"ItemAction": "action/heal",
"heal": 5,
"verb": "ui/inventory/verb_eat"
}
]
}
```
- `Name`, `Description` — khóa dịch, hiện trong phần chi tiết.
- `Cost` — giá, cửa hàng dùng đến.
- `Sprite` — ảnh `items/rpg_demo/forest_mushroom.png`.
- `ItemType` — một hoặc nhiều loại, cách nhau bằng dấu phẩy: `Food`, `Resource`, `Quest`, `Recipe`, `Used` (dùng không cần mục tiêu), `TargetUsed` (dùng lên thành viên đội), `CantDrop`.
- `ItemAction` — dùng vào việc gì. `action/heal` hồi máu theo giá trị `heal` của vật phẩm, không vượt quá mức tối đa và không bao giờ dùng lên người đã gục. Các mod khác thêm hành động riêng, ví dụ `action/equip` của equipment.
- Khóa nào khác (`heal`, `verb`) là thuộc tính của vật phẩm: hành động đọc chúng, chi tiết cũng liệt kê. `verb` đặt tên cho nút hành động.
## Vật phẩm trong kịch bản
```scenario
action item.add id=rpg_demo/mushroom count=2
when "item('rpg_demo/mushroom') >= 2" -> :enough
action item.remove id=rpg_demo/mushroom count=2
```
- `item.add` bỏ vật phẩm vào túi (rương, món quà, đồ nhặt trên bản đồ); `count` mặc định là 1.
- `item('id')` so sánh người chơi có bao nhiêu cái; dùng được trong `when`, điều kiện lựa chọn, nhiệm vụ và sự kiện bản đồ.
- `item.remove` lấy vật phẩm đi; từ chối nếu người chơi có ít hơn, nên hãy kiểm tra bằng `item('id')` trước.
## Công thức
Công thức (kind `recipe`) liệt kê vật phẩm `Input` và `Output` kèm số lượng. Mod này giữ danh sách công thức người chơi đã biết; nấu ăn và chế tạo dùng đến chúng.
## Khi có trục trặc
1. **Vật phẩm hiện id thay vì tên.** Thêm khóa `Name` của nó vào các tệp `locale` của mod.
2. **Không có nút hành động.** Vật phẩm cần `Used` hoặc `TargetUsed` trong `ItemType` và một `ItemAction`.
3. **Dùng không có tác dụng mà vật phẩm vẫn còn.** Hành động bị từ chối: khi hồi máu, mục tiêu đã đủ máu hoặc đã gục.
4. **`item.add` không thêm gì cả.** Id không tồn tại; đối chiếu `Id` trong tệp vật phẩm.
+73
View File
@@ -0,0 +1,73 @@
# Items Base — 物品、背包与物品的使用
Items Base 为游戏提供物品和装物品的背包。它定义物品是什么(名称、图片、价格、类型,以及使用时会发生什么),显示**背包**面板,保存玩家携带的东西,并让剧本能够发放、移除和检查物品。交易、烹饪、合成、装备和 RPG 地图都构建在它之上。
## 背包面板
用工具栏上的背包图标打开。点击左侧的物品,右侧会显示它的详情。
![在 RPG Plus 中使用森林蘑菇:网格中选中的蘑菇(×2),右侧是它的详情——"定向使用"和"食物"徽章、描述"恢复 5 点生命值"、带 heal 5 属性的 action/heal 动作——点击"吃"之后出现目标列表,英雄当前 10/24 生命值。](assets/use-mushroom.jpg)
- 顶部的**页签**按类型筛选(食物、资源、配方、任务);搜索框和排序列表可以缩小网格范围。
- **详情**显示名称、类型徽章、价格、描述、堆叠上限、id 和物品自身的属性。
- **动作按钮**由物品自己命名:**使用**、食物显示**吃**、**对目标使用**、**学习配方**,或者物品自定义的动词(蘑菇因为带 `verb` 而显示**吃**)。
- **定向物品**会询问用在谁身上:选择一名队伍成员,或者**取消**。
- **丢弃**会在确认后扔掉一整堆;关键物品无法丢弃。
- 战斗中,每次使用或丢弃都要花掉当前角色一点行动点;战斗之外则免费。
![选择英雄之后:堆叠降到 ×1,面板提示"已使用:森林蘑菇 → 英雄"。](assets/after-use.jpg)
如果动作无法执行——比如目标生命值已满——物品不会被消耗,面板会说明原因。
## 物品的定义
物品是 mod 的 `items/` 文件夹里类型为 `item` 的 JSON 文件,图片就放在旁边。这是上面截图中的蘑菇(来自 RPG Demo):
```json
{
"Kind": "item",
"Items": [
{
"Id": "rpg_demo/mushroom",
"Name": "rpg_demo/item/mushroom/name",
"Description": "rpg_demo/item/mushroom/desc",
"Cost": 2,
"Sprite": "rpg_demo/forest_mushroom",
"ItemType": "Food,TargetUsed",
"ItemAction": "action/heal",
"heal": 5,
"verb": "ui/inventory/verb_eat"
}
]
}
```
- `Name`、`Description` — 翻译键,显示在详情里。
- `Cost` — 价格,商店会用到。
- `Sprite` — 图片 `items/rpg_demo/forest_mushroom.png`。
- `ItemType` — 一个或多个类型,用逗号分隔:`Food`、`Resource`、`Quest`、`Recipe`、`Used`(无需目标直接使用)、`TargetUsed`(对队伍成员使用)、`CantDrop`。
- `ItemAction` — 使用时做什么。`action/heal` 按物品的 `heal` 值恢复生命值,不会超过上限,也绝不会作用于倒下的角色。其他 mod 会添加自己的动作,例如装备的 `action/equip`。
- 其余任何键(`heal`、`verb`)都是物品属性:动作读取它们,详情也会列出。`verb` 决定动作按钮的名字。
## 剧本中的物品
```scenario
action item.add id=rpg_demo/mushroom count=2
when "item('rpg_demo/mushroom') >= 2" -> :enough
action item.remove id=rpg_demo/mushroom count=2
```
- `item.add` 把物品放进背包(宝箱、礼物、地图上的拾取物);`count` 默认为 1。
- `item('id')` 比较玩家拥有多少个;可用于 `when`、选项条件、任务和地图事件。
- `item.remove` 移除物品;数量不足时会拒绝执行,所以请先用 `item('id')` 检查。
## 配方
配方(类型 `recipe`)列出 `Input` 和 `Output` 物品及数量。本 mod 负责记住玩家已学会哪些配方;烹饪和合成都会用到它们。
## 出问题时
1. **物品显示的是 id 而不是名字。** 把它的 `Name` 键加进 mod 的 `locale` 文件。
2. **没有动作按钮。** 物品需要在 `ItemType` 里带 `Used` 或 `TargetUsed`,并且设置 `ItemAction`。
3. **使用没有效果,物品也没消耗。** 动作拒绝了:治疗时目标生命值已满或已倒下。
4. **`item.add` 什么都没加。** id 未知;核对物品文件里的 `Id`。