Add mod documentation in seven languages

This commit is contained in:
cthangover committed 2026-10-29 09:26:02 +01:00
1 parent 33a4351831
commit 2b642dc455
18 files changed
+582 -8

No files matched your search

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 206 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 141 KiB

+82
View File
@@ -0,0 +1,82 @@
# World Map Engine — travel between places on a drawn map
World Map Engine shows a full-screen picture of the game world with places marked on it. The player opens the map, picks a place and travels there: the game switches to that place's scene. Scenarios can open, close, hide and show places as the story goes on, and the game saves those changes.
It is used by Cthangover. It is a different thing from the tile maps of RPG World: a world map is one picture with clickable areas, and travelling changes the scene; a tile map is a grid the hero walks on cell by cell.
## The map in the game
Open it with the map icon on the toolbar.
![The world map of Cthangover: a valley with two towns between mountains and rivers; the labels "Villa" and "Town entrance" mark the two places, hatched areas show where they are; a legend at the bottom left (you are here, available, closed) and a hint at the bottom.](assets/world-map.jpg)
- **Places** are areas drawn over the picture; hatching shows them. Some places also have a round emblem with an icon.
- **The legend**: green — where you are now, gold — available, grey — closed.
- **Click a place** to see its card: state, description and the **Travel** button. **Esc** or **×** closes the map.
![The Town entrance selected: its area outlined in gold, and the card on the right — Available, "The northern entrance to the town", Transition, Travel.](assets/zone-selected.jpg)
**Travel** switches the game to the place's scene:
![After Travel: the town entrance scene with its opening line and two answers.](assets/after-travel.jpg)
A place is closed — the card says "The path is not open yet." and offers no Travel — when a scenario has closed it, when it has no scene, or when its scene does not exist in the game being played.
## Adding a world map to a game
A game needs two things in its mods:
1. **The picture** — a background named `map` (for example `backgrounds/map.png`).
2. **The places** — JSON files in a `map/` folder. All positions are fractions of the picture's width and height, from 0 to 1, so the map works at any size.
This is the town entrance of Cthangover, shortened:
```json
{
"Items": [
{
"ID": "town_entry",
"points": [[0.7099, 0.2493], [0.7334, 0.2630], [0.7348, 0.2906], [0.7091, 0.3429], [0.6974, 0.3264]],
"title": "",
"scene": "town_entry",
"description": "mapzone/town_entry/info",
"locked": false,
"hidden": false
},
{
"ID": "town_entry_label",
"points": [],
"title": "mapzone/town_entry",
"label_pos": [0.7246, 0.2163]
}
]
}
```
- `points` — the outline of the area that can be clicked.
- `scene` — the logical scene Travel switches to.
- `title`, `description` — translation keys; the title is the place's name on its card and emblem.
- `image` and `image_pos` — an icon and its position, to show a round emblem on the place.
- `label_pos` — a free-standing name on the map. A zone with only a title and a label position (like `town_entry_label`) is a name, not a place: it cannot be clicked.
- `locked` — closed at the start; `hidden` — not shown at the start.
Cthangover keeps the names of its places in separate label zones and leaves the places' own `title` empty, which is why the card above has no name at the top.
The world map can also be drawn and edited in the map editor of Editor Tools.
## Changing places from a scenario
```scenario
action map.open_zone zone_id=town_entry
action map.close_zone zone_id=town_entry
action map.show_zone zone_id=town_entry
action map.hide_zone zone_id=town_entry
```
The change is kept in the save and stays after loading; a new game starts from the values in the JSON.
## If something goes wrong
1. **"Map unavailable".** No mod of the game has a background named `map`.
2. **A place cannot be entered.** Its `scene` is empty or misspelled, or a scenario closed it.
3. **A place is in the wrong spot.** Positions are fractions of the picture (0–1), not pixels.
+82
View File
@@ -0,0 +1,82 @@
# World Map Engine — viajar entre lugares sobre un mapa dibujado
World Map Engine muestra una imagen a pantalla completa del mundo del juego con lugares marcados en ella. El jugador abre el mapa, elige un lugar y viaja hasta allí: el juego cambia a la escena de ese lugar. Los escenarios pueden abrir, cerrar, ocultar y volver a mostrar lugares a medida que avanza la historia, y el juego guarda esos cambios.
Lo usa Cthangover. No es lo mismo que los mapas de tiles de RPG World: un mapa del mundo es una sola imagen con zonas en las que hacer clic, y viajar cambia la escena; un mapa de tiles es una cuadrícula por la que el héroe camina casilla a casilla.
## El mapa en el juego
Se abre con el icono del mapa en la barra de herramientas.
![El mapa del mundo de Cthangover: un valle con dos pueblos entre montañas y ríos; las etiquetas "Villa" y "Town entrance" marcan los dos lugares, las zonas rayadas muestran dónde están; una leyenda abajo a la izquierda (estás aquí, disponible, cerrado) y una pista abajo.](assets/world-map.jpg)
- **Lugares**: zonas dibujadas sobre la imagen; el rayado las delata. Algunos lugares tienen además un emblema redondo con un icono.
- **La leyenda**: verde — donde estás ahora, dorado — disponible, gris — cerrado.
- **Haz clic en un lugar** para ver su ficha: estado, descripción y el botón **Viajar**. **Esc** o **×** cierran el mapa.
![La entrada del pueblo (Town entrance) seleccionada: su zona contorneada en dorado, y la ficha a la derecha — Available, "The northern entrance to the town", Transition, Travel.](assets/zone-selected.jpg)
**Viajar** cambia el juego a la escena del lugar:
![Tras viajar: la escena de la entrada del pueblo con su primera línea y dos respuestas.](assets/after-travel.jpg)
Un lugar está cerrado —la ficha dice «El camino todavía no está abierto.» y no ofrece Viajar— cuando un escenario lo cerró, cuando no tiene escena o cuando su escena no existe en el juego al que se juega.
## Añadir un mapa del mundo a un juego
Un juego necesita dos cosas en sus mods:
1. **La imagen** — un fondo llamado `map` (por ejemplo `backgrounds/map.png`).
2. **Los lugares** — archivos JSON en una carpeta `map/`. Todas las posiciones son fracciones del ancho y el alto de la imagen, de 0 a 1, así el mapa funciona a cualquier tamaño.
Esta es la entrada del pueblo de Cthangover, abreviada:
```json
{
"Items": [
{
"ID": "town_entry",
"points": [[0.7099, 0.2493], [0.7334, 0.2630], [0.7348, 0.2906], [0.7091, 0.3429], [0.6974, 0.3264]],
"title": "",
"scene": "town_entry",
"description": "mapzone/town_entry/info",
"locked": false,
"hidden": false
},
{
"ID": "town_entry_label",
"points": [],
"title": "mapzone/town_entry",
"label_pos": [0.7246, 0.2163]
}
]
}
```
- `points` — el contorno de la zona en la que se puede hacer clic.
- `scene` — la escena lógica a la que cambia Viajar.
- `title`, `description` — claves de traducción; el título es el nombre del lugar en su ficha y emblema.
- `image` e `image_pos` — un icono y su posición, para mostrar un emblema redondo en el lugar.
- `label_pos` — un nombre suelto sobre el mapa. Una zona con solo un título y una posición de etiqueta (como `town_entry_label`) es un nombre, no un lugar: no se puede pulsar.
- `locked` — cerrado al empezar; `hidden` — no se muestra al empezar.
Cthangover guarda los nombres de sus lugares en zonas de etiqueta aparte y deja vacío el `title` de los lugares; por eso la ficha de arriba no lleva nombre arriba.
El mapa del mundo también se puede dibujar y editar en el editor de mapas de Editor Tools.
## Cambiar los lugares desde un escenario
```scenario
action map.open_zone zone_id=town_entry
action map.close_zone zone_id=town_entry
action map.show_zone zone_id=town_entry
action map.hide_zone zone_id=town_entry
```
El cambio se guarda en la partida y sigue ahí tras cargar; una partida nueva arranca con los valores del JSON.
## Si algo falla
1. **«Mapa no disponible».** Ningún mod del juego tiene un fondo llamado `map`.
2. **No se puede entrar en un lugar.** Su `scene` está vacía o mal escrita, o un escenario lo cerró.
3. **Un lugar está fuera de sitio.** Las posiciones son fracciones de la imagen (0–1), no píxeles.
+82
View File
@@ -0,0 +1,82 @@
# World Map Engine——描いたマップの上を場所から場所へ
World Map Engine は、ゲーム世界を収めた全画面の絵に、場所を書き添えて表示します。プレイヤーはマップを開き、場所を選び、そこへ旅立ちます: ゲームはその場所のシーンへ切り替わります。シナリオは物語の進みに合わせて場所を開いたり閉じたり隠したり現したりでき、ゲームはその変化を保存します。
Cthangover が使っています。RPG World のタイルマップとは別物です: ワールドマップはクリックできる領域を持つ 1 枚の絵で、旅がシーンを切り替えます。タイルマップは、主人公が 1 マスずつ歩く格子です。
## ゲームの中でのマップ
ツールバーのマップアイコンで開きます。
![Cthangover のワールドマップ: 山と川の間に 2 つの町がある谷。ラベル "Villa" と "Town entrance" が 2 つの場所を示し、斜線の領域がその位置を示す。左下に凡例(現在地、行ける、閉鎖)、下部にヒント。](assets/world-map.jpg)
- **場所**は絵の上に描かれた領域で、斜線で示されます。場所によっては、アイコン付きの丸いエンブレムも付きます。
- **凡例**: 緑 — 現在地、金色 — 行ける、灰色 — 閉鎖。
- **場所をクリック**すると、そのカードが出ます: 状態、説明、**移動** ボタン。**Esc** か **×** でマップを閉じます。
![Town entrance を選択: 領域が金色の枠で囲まれ、右にカード — Available、"The northern entrance to the town"、Transition、Travel。](assets/zone-selected.jpg)
**移動** はゲームをその場所のシーンへ切り替えます:
![移動後: 町の入り口のシーンが、最初の行と 2 つの答えとともに開く。](assets/after-travel.jpg)
場所が閉じている — カードには「道はまだ開いていません。」と出て、移動ボタンは現れない — のは、シナリオが閉じたとき、シーンを持たないとき、あるいはプレイしているゲームにそのシーンが存在しないときです。
## ゲームにワールドマップを追加する
ゲームは、その mod の中に 2 つのものを必要とします:
1. **絵** — `map` という名前の背景(例: `backgrounds/map.png`)。
2. **場所** — `map/` フォルダの JSON ファイル。位置はすべて絵の幅と高さに対する割合(0〜1)なので、マップはどんなサイズでも機能します。
これは Cthangover の町の入り口です(簡略版):
```json
{
"Items": [
{
"ID": "town_entry",
"points": [[0.7099, 0.2493], [0.7334, 0.2630], [0.7348, 0.2906], [0.7091, 0.3429], [0.6974, 0.3264]],
"title": "",
"scene": "town_entry",
"description": "mapzone/town_entry/info",
"locked": false,
"hidden": false
},
{
"ID": "town_entry_label",
"points": [],
"title": "mapzone/town_entry",
"label_pos": [0.7246, 0.2163]
}
]
}
```
- `points` — クリックできる領域の輪郭。
- `scene` — 移動が切り替える論理シーン。
- `title`、`description` — 翻訳キー。title は場所の名前で、カードとエンブレムに出ます。
- `image` と `image_pos` — アイコンとその位置。場所に丸いエンブレムを出すのに使います。
- `label_pos` — マップに独立して置かれる名前。title とラベル位置だけを持つゾーン(`town_entry_label` など)は名前であって場所ではないため、クリックできません。
- `locked` — 開始時に閉じています。`hidden` — 開始時に表示されません。
Cthangover は場所の名前を別のラベルゾーンに持ち、場所自身の `title` を空にしています。だから上のカードには上部に名前がないのです。
ワールドマップは、Editor Tools のマップエディターで描いて編集することもできます。
## シナリオから場所を変える
```scenario
action map.open_zone zone_id=town_entry
action map.close_zone zone_id=town_entry
action map.show_zone zone_id=town_entry
action map.hide_zone zone_id=town_entry
```
変化はセーブに記録され、ロード後も残ります。新しいゲームは JSON の値から始まります。
## うまくいかないとき
1. **「マップを表示できません」。** ゲームのどの mod にも `map` という名前の背景がありません。
2. **場所に入れない。** その `scene` が空か、つづりが間違っているか、シナリオが閉じています。
3. **場所の位置がおかしい。** 位置は絵に対する割合(0〜1)であり、ピクセルではありません。
+82
View File
@@ -0,0 +1,82 @@
# World Map Engine — 그려진 맵 위에서 장소 사이를 이동
World Map Engine은 게임 세계를 담은 전체 화면 그림에 장소를 표시해 보여 줍니다. 플레이어는 지도를 열고 장소를 고른 뒤 그곳으로 떠납니다: 게임은 그 장소의 장면으로 바뀝니다. 시나리오는 이야기가 진행됨에 따라 장소를 열고, 닫고, 숨기고, 다시 드러낼 수 있고, 게임은 그 변화를 저장합니다.
Cthangover가 쓰는 것입니다. RPG World의 타일 맵과는 다른 것입니다: 월드 맵은 클릭할 수 있는 영역을 가진 한 장의 그림이고, 이동이 장면을 바꿉니다. 타일 맵은 영웅이 한 칸씩 걷는 격자입니다.
## 게임 속의 지도
도구 모음의 지도 아이콘으로 엽니다.
![Cthangover의 월드 맵: 산과 강 사이, 두 마을이 있는 계곡. 라벨 "Villa"와 "Town entrance"가 두 장소를 표시하고, 빗금 칠한 영역이 그 위치를 보여 줍니다. 왼쪽 아래에 범례(현재 위치, 갈 수 있음, 닫힘), 아래에 힌트.](assets/world-map.jpg)
- **장소**는 그림 위에 그려진 영역이고, 빗금으로 표시됩니다. 일부 장소에는 아이콘을 넣은 둥근 엠블럼도 있습니다.
- **범례**: 초록 — 현재 위치, 금색 — 갈 수 있음, 회색 — 닫힘.
- **장소를 클릭**하면 카드가 열립니다: 상태, 설명, **이동** 버튼. **Esc**나 **×**가 지도를 닫습니다.
![Town entrance 선택: 그 영역이 금색 테두리로 둘러졌고 오른쪽에 카드 — Available, "The northern entrance to the town", Transition, Travel.](assets/zone-selected.jpg)
**이동**은 게임을 그 장소의 장면으로 바꿉니다:
![이동 후: 마을 입구 장면이 첫 줄과 두 개의 답과 함께 열립니다.](assets/after-travel.jpg)
장소가 닫혀 있으면 — 카드에는 «아직 길이 열리지 않았습니다.»가 나오고 이동 버튼은 없습니다 — 시나리오가 닫았거나, 장면이 없거나, 플레이 중인 게임에 그 장면이 존재하지 않는 경우입니다.
## 게임에 월드 맵 추가하기
게임은 자기 mod 안에 두 가지를 필요로 합니다:
1. **그림** — `map`이라는 이름의 배경(예: `backgrounds/map.png`).
2. **장소** — `map/` 폴더의 JSON 파일. 모든 위치는 그림 너비와 높이에 대한 비율(0부터 1)이라서, 지도는 어떤 크기에서도 동작합니다.
다음은 Cthangover의 마을 입구입니다(요약판):
```json
{
"Items": [
{
"ID": "town_entry",
"points": [[0.7099, 0.2493], [0.7334, 0.2630], [0.7348, 0.2906], [0.7091, 0.3429], [0.6974, 0.3264]],
"title": "",
"scene": "town_entry",
"description": "mapzone/town_entry/info",
"locked": false,
"hidden": false
},
{
"ID": "town_entry_label",
"points": [],
"title": "mapzone/town_entry",
"label_pos": [0.7246, 0.2163]
}
]
}
```
- `points` — 클릭할 수 있는 영역의 윤곽.
- `scene` — 이동이 전환할 논리 장면.
- `title`, `description` — 번역 키. title은 장소의 이름으로 카드와 엠블럼에 나옵니다.
- `image`와 `image_pos` — 아이콘과 그 위치로, 장소에 둥근 엠블럼을 보여 줍니다.
- `label_pos` — 지도에 홀로 놓이는 이름. title과 라벨 위치만 가진 구역(`town_entry_label` 같은)은 이름이지 장소가 아니므로 클릭할 수 없습니다.
- `locked` — 시작 때 닫혀 있음. `hidden` — 시작 때 표시되지 않음.
Cthangover는 장소 이름을 별도의 라벨 구역에 두고 장소 자체의 `title`은 비워 둡니다. 그래서 위의 카드에는 상단에 이름이 없습니다.
월드 맵은 Editor Tools의 맵 편집기로 그리거나 고칠 수도 있습니다.
## 시나리오에서 장소 바꾸기
```scenario
action map.open_zone zone_id=town_entry
action map.close_zone zone_id=town_entry
action map.show_zone zone_id=town_entry
action map.hide_zone zone_id=town_entry
```
변경은 저장 파일에 기록되어 불러온 뒤에도 남습니다. 새 게임은 JSON의 값에서 시작합니다.
## 문제가 생겼을 때
1. **«지도를 쓸 수 없음».** 게임의 어느 mod에도 `map`이라는 이름의 배경이 없습니다.
2. **장소에 들어갈 수 없습니다.** 그 `scene`이 비었거나 철자가 틀렸거나, 시나리오가 닫았습니다.
3. **장소가 엉뚱한 곳에 있습니다.** 위치는 그림에 대한 비율(0–1)이지 픽셀이 아닙니다.
+82
View File
@@ -0,0 +1,82 @@
# World Map Engine — путешествия между местами по нарисованной карте
World Map Engine показывает полноэкранную картинку игрового мира с отмеченными на ней местами. Игрок открывает карту, выбирает место и отправляется туда: игра переключается на сцену этого места. Сценарии могут открывать, закрывать, прятать и снова показывать места по ходу истории, и игра сохраняет эти изменения.
Её использует Cthangover. Это не то же самое, что тайловые карты RPG World: карта мира — одна картинка с областями, по которым можно щёлкать, и переход меняет сцену; тайловая карта — сетка, по которой герой идёт с клетки на клетку.
## Карта в игре
Открывается по иконке карты на панели инструментов.
![Карта мира Cthangover: долина с двумя городами среди гор и рек; подписи "Villa" и "Town entrance" отмечают два места, штриховка показывает, где они; легенда слева внизу (вы здесь, доступна, закрыта) и подсказка внизу.](assets/world-map.jpg)
- **Места** — области, нарисованные поверх картинки; их выдаёт штриховка. У некоторых мест есть ещё и круглая эмблема с иконкой.
- **Легенда**: зелёный — где вы сейчас, золотой — доступно, серый — закрыто.
- **Щёлкните место**, чтобы увидеть его карточку: состояние, описание и кнопку **Перейти**. Карту закрывают **Esc** или **×**.
![Выбран вход в город (Town entrance): его область обведена золотым, справа карточка — Available, "The northern entrance to the town", Transition, Travel.](assets/zone-selected.jpg)
**Перейти** переключает игру на сцену места:
![После перехода: сцена входа в город с её первой строкой и двумя ответами.](assets/after-travel.jpg)
Место закрыто — в карточке написано «Путь ещё не открыт.», а кнопки «Перейти» нет — когда сценарий его закрыл, когда у него нет сцены или когда его сцены нет в той игре, в которую играют.
## Как добавить карту мира в игру
Игре нужны две вещи в её модах:
1. **Картинка** — фон с именем `map` (например `backgrounds/map.png`).
2. **Места** — JSON-файлы в папке `map/`. Все позиции — доли ширины и высоты картинки, от 0 до 1, поэтому карта работает при любом размере.
Вот вход в город из Cthangover (сокращённый пример):
```json
{
"Items": [
{
"ID": "town_entry",
"points": [[0.7099, 0.2493], [0.7334, 0.2630], [0.7348, 0.2906], [0.7091, 0.3429], [0.6974, 0.3264]],
"title": "",
"scene": "town_entry",
"description": "mapzone/town_entry/info",
"locked": false,
"hidden": false
},
{
"ID": "town_entry_label",
"points": [],
"title": "mapzone/town_entry",
"label_pos": [0.7246, 0.2163]
}
]
}
```
- `points` — контур области, по которой можно щёлкать.
- `scene` — логическая сцена, на которую переключает «Перейти».
- `title`, `description` — ключи переводов; title — имя места на его карточке и эмблеме.
- `image` и `image_pos` — иконка и её позиция: так место получает круглую эмблему.
- `label_pos` — отдельно стоящее имя на карте. Зона, у которой есть только title и позиция подписи (как `town_entry_label`), — это имя, а не место: щёлкнуть по ней нельзя.
- `locked` — закрыто на старте; `hidden` — не показано на старте.
Cthangover держит имена своих мест в отдельных зонах-подписях и оставляет `title` самих мест пустым — поэтому на карточке выше нет имени наверху.
Карту мира также можно нарисовать и отредактировать в редакторе карт из Editor Tools.
## Изменение мест из сценария
```scenario
action map.open_zone zone_id=town_entry
action map.close_zone zone_id=town_entry
action map.show_zone zone_id=town_entry
action map.hide_zone zone_id=town_entry
```
Изменение попадает в сохранение и остаётся после загрузки; новая игра стартует со значениями из JSON.
## Если что-то пошло не так
1. **«Карта недоступна».** Ни у одного мода игры нет фона с именем `map`.
2. **В место нельзя попасть.** Его `scene` пуста или написана с ошибкой, либо сценарий его закрыл.
3. **Место не на своём месте.** Позиции — это доли картинки (0–1), а не пиксели.
+82
View File
@@ -0,0 +1,82 @@
# World Map Engine — đi lại giữa các địa điểm trên một bản đồ vẽ sẵn
World Map Engine hiển thị một bức tranh toàn màn hình về thế giới của trò chơi, với các địa điểm được đánh dấu trên đó. Người chơi mở bản đồ, chọn một địa điểm và lên đường tới đó: trò chơi chuyển sang cảnh của địa điểm ấy. Kịch bản có thể mở, đóng, ẩn và hiện lại các địa điểm theo tiến triển câu chuyện, và trò chơi lưu lại những thay đổi đó.
Cthangover dùng nó. Nó khác với các bản đồ ô vuông (tile) của RPG World: bản đồ thế giới là một bức tranh với những vùng bấm được, và đi lại là đổi cảnh; bản đồ ô vuông là một lưới mà nhân vật đi từng ô một.
## Bản đồ trong trò chơi
Mở bằng biểu tượng bản đồ trên thanh công cụ.
![Bản đồ thế giới của Cthangover: một thung lũng có hai thị trấn giữa núi và sông; các nhãn "Villa" và "Town entrance" đánh dấu hai địa điểm, vùng gạch chéo cho biết vị trí của chúng; chú giải ở góc dưới bên trái (bạn ở đây, có thể đến, đã đóng) và một gợi ý ở dưới.](assets/world-map.jpg)
- **Địa điểm** là những vùng vẽ đè lên tranh; nét gạch chéo cho thấy chúng. Một số địa điểm còn có huy hiệu tròn kèm biểu tượng.
- **Chú giải**: xanh lục — nơi bạn đang ở, vàng kim — có thể đến, xám — đã đóng.
- **Bấm vào một địa điểm** để xem thẻ của nó: trạng thái, mô tả và nút **Di chuyển**. **Esc** hay **×** đều đóng bản đồ.
![Town entrance đang được chọn: vùng của nó được viền vàng kim, bên phải là thẻ — Available, "The northern entrance to the town", Transition, Travel.](assets/zone-selected.jpg)
**Di chuyển** chuyển trò chơi sang cảnh của địa điểm đó:
![Sau khi di chuyển: cảnh cổng thị trấn với dòng mở đầu và hai lựa chọn.](assets/after-travel.jpg)
Một địa điểm bị đóng — thẻ ghi «Con đường chưa mở.» và không đưa ra Di chuyển — khi một kịch bản đã đóng nó, khi nó không có cảnh, hoặc khi cảnh của nó không tồn tại trong trò chơi đang chơi.
## Thêm bản đồ thế giới vào một trò chơi
Một trò chơi cần hai thứ trong các mod của nó:
1. **Bức tranh** — một phông nền tên là `map` (ví dụ `backgrounds/map.png`).
2. **Các địa điểm** — các tệp JSON trong thư mục `map/`. Mọi vị trí đều là tỉ lệ so với chiều rộng và chiều cao của tranh, từ 0 đến 1, nên bản đồ chạy ở mọi kích thước.
Đây là cổng thị trấn của Cthangover, bản rút gọn:
```json
{
"Items": [
{
"ID": "town_entry",
"points": [[0.7099, 0.2493], [0.7334, 0.2630], [0.7348, 0.2906], [0.7091, 0.3429], [0.6974, 0.3264]],
"title": "",
"scene": "town_entry",
"description": "mapzone/town_entry/info",
"locked": false,
"hidden": false
},
{
"ID": "town_entry_label",
"points": [],
"title": "mapzone/town_entry",
"label_pos": [0.7246, 0.2163]
}
]
}
```
- `points` — đường viền của vùng có thể bấm.
- `scene` — cảnh logic mà Di chuyển chuyển sang.
- `title`, `description` — các khóa dịch; title là tên của địa điểm trên thẻ và huy hiệu của nó.
- `image` và `image_pos` — một biểu tượng và vị trí của nó, để hiện huy hiệu tròn trên địa điểm.
- `label_pos` — một cái tên đứng riêng trên bản đồ. Vùng chỉ có title và vị trí nhãn (như `town_entry_label`) là một cái tên chứ không phải địa điểm: không thể bấm.
- `locked` — đã đóng lúc đầu; `hidden` — không hiển thị lúc đầu.
Cthangover giữ tên các địa điểm trong những vùng nhãn riêng và để trống `title` của chính các địa điểm — vì thế thẻ ở trên không có tên ở đỉnh.
Bản đồ thế giới cũng có thể vẽ và chỉnh trong trình soạn thảo bản đồ của Editor Tools.
## Thay đổi địa điểm từ kịch bản
```scenario
action map.open_zone zone_id=town_entry
action map.close_zone zone_id=town_entry
action map.show_zone zone_id=town_entry
action map.hide_zone zone_id=town_entry
```
Thay đổi được ghi vào save và còn đó sau khi tải lại; trò chơi mới bắt đầu với các giá trị trong JSON.
## Khi có gì đó không ổn
1. **"Bản đồ không khả dụng".** Không mod nào của trò chơi có phông nền tên `map`.
2. **Không vào được một địa điểm.** `scene` của nó rỗng hoặc gõ sai, hoặc một kịch bản đã đóng nó.
3. **Địa điểm nằm sai chỗ.** Vị trí là tỉ lệ của bức tranh (0–1), không phải điểm ảnh.
+82
View File
@@ -0,0 +1,82 @@
# World Map Engine——在画好的地图上往来于各地之间
World Map Engine 显示一幅全屏的游戏世界图景,上面标着各个地点。玩家打开地图,选中一个地点,然后前往那里:游戏切换到该地点的场景。剧本可以随剧情推进打开、关闭、隐藏或重新显示地点,游戏会保存这些变化。
Cthangover 用的就是它。它不同于 RPG World 的图块地图:世界地图是一张带可点击区域的图,前往即切换场景;图块地图则是一张格子,英雄一格一格地走。
## 游戏中的地图
点击工具栏上的地图图标即可打开。
![Cthangover 的世界地图:群山与河流之间的一条山谷里有两座城镇;标签 "Villa" 和 "Town entrance" 标出两个地点,阴影斜线显示它们的位置;左下角是图例(你在这里、可前往、已关闭),底部有一行提示。](assets/world-map.jpg)
- **地点**是画在图片之上的区域;斜线阴影标出它们。有些地点还有带图标的圆形徽章。
- **图例**:绿色——你在这里,金色——可前往,灰色——已关闭。
- **点击一个地点**可以打开它的卡片:状态、描述和 **前往** 按钮。**Esc** 或 **×** 关闭地图。
![选中了 Town entrance:它的区域以金色描边,右侧是卡片——Available、"The northern entrance to the town"、Transition、Travel。](assets/zone-selected.jpg)
**前往**会把游戏切换到该地点的场景:
![前往之后:进入城镇入口的场景,有开场一行和两个选项。](assets/after-travel.jpg)
一个地点处于关闭状态——卡片显示“道路尚未开放。”且没有“前往”按钮——的情况有:剧本把它关了、它没有场景,或者它引用的场景在当前玩的游戏里不存在。
## 给游戏添加世界地图
游戏需要在它的 mod 里有两样东西:
1. **图片**——一个名为 `map` 的背景(例如 `backgrounds/map.png`)。
2. **地点**——`map/` 文件夹里的 JSON 文件。所有位置都是图片宽高的比例,从 0 到 1,因此地图在任何尺寸下都能用。
这是 Cthangover 的城镇入口(精简版):
```json
{
"Items": [
{
"ID": "town_entry",
"points": [[0.7099, 0.2493], [0.7334, 0.2630], [0.7348, 0.2906], [0.7091, 0.3429], [0.6974, 0.3264]],
"title": "",
"scene": "town_entry",
"description": "mapzone/town_entry/info",
"locked": false,
"hidden": false
},
{
"ID": "town_entry_label",
"points": [],
"title": "mapzone/town_entry",
"label_pos": [0.7246, 0.2163]
}
]
}
```
- `points`——可点击区域的轮廓。
- `scene`——“前往”要切换到的逻辑场景。
- `title`、`description`——翻译键;title 是地点在卡片和徽章上显示的名字。
- `image` 和 `image_pos`——图标及其位置,用来在地点上显示圆形徽章。
- `label_pos`——直接摆在地图上的名字。只有 title 和标签位置(如 `town_entry_label`)的区域是一个名字,不是地点:点不了。
- `locked`——开局时关闭;`hidden`——开局时不显示。
Cthangover 把地点名字放在单独的标签区域里,地点自己的 `title` 留空——所以上面这张卡片顶部没有名字。
世界地图也可以用 Editor Tools 的地图编辑器来画和改。
## 用剧本改变地点
```scenario
action map.open_zone zone_id=town_entry
action map.close_zone zone_id=town_entry
action map.show_zone zone_id=town_entry
action map.hide_zone zone_id=town_entry
```
改动会存进存档并在读档后保留;新游戏则从 JSON 里的值开始。
## 出问题了?
1. **"地图不可用"。** 游戏的任何 mod 都没有名为 `map` 的背景。
2. **进不去一个地点。** 它的 `scene` 为空或拼写有误,或者剧本把它关了。
3. **地点位置不对。** 位置是图片的比例(0–1),不是像素。
+1 -1
View File
@@ -1,2 +1,2 @@
mod_map_base_name = World Map Engine mod_map_base_name = World Map Engine
mod_map_base_desc = Engine world map subsystem: the fullscreen map overlay, polygon zones, markers, the zone list, the scenario-facing map service (open/close/show/hide actions) and the shared zone style and enterability rules. mod_map_base_desc = World map engine: a full-screen picture of the world with places to travel between; scenarios open, close, hide and reveal them as the story goes.
+1 -1
View File
@@ -1,2 +1,2 @@
mod_map_base_name = Motor del mapa del mundo mod_map_base_name = Motor del mapa del mundo
mod_map_base_desc = Subsistema del mapa del mundo: la superposición del mapa a pantalla completa, zonas poligonales, marcadores, la lista de zonas, el servicio de mapa para los escenarios (acciones open/close/show/hide) y el estilo común de zonas y las reglas de acceso. mod_map_base_desc = Motor del mapa del mundo: una imagen a pantalla completa del mundo con lugares entre los que viajar; los escenarios los abren, cierran, ocultan y revelan a medida que avanza la historia.
+1 -1
View File
@@ -1,2 +1,2 @@
mod_map_base_name = ワールドマップエンジン mod_map_base_name = ワールドマップエンジン
mod_map_base_desc = エンジンのワールドマップサブシステム:全画面のマップオーバーレイ、多角形のゾーン、マーカー、ゾーン一覧、シナリオ向けのマップサービス(open/close/show/hide アクション)、共通のゾーンスタイルと進入ルール。 mod_map_base_desc = ワールドマップエンジン: 世界を収めた全画面の絵と、旅のできる場所たち。シナリオが物語の進みに合わせて場所を開いたり、閉じたり、隠したり、現したりします。
+1 -1
View File
@@ -1,2 +1,2 @@
mod_map_base_name = 월드 맵 엔진 mod_map_base_name = 월드 맵 엔진
mod_map_base_desc = 엔진 월드 맵 하위 시스템: 전체 화면 맵 오버레이, 다각형 구역, 마커, 구역 목록, 시나리오용 맵 서비스(open/close/show/hide 액션), 공통 구역 스타일과 진입 규칙. mod_map_base_desc = 월드 맵 엔진: 오갈 수 있는 장소들이 표시된 전체 화면 세계 그림. 시나리오가 이야기가 진행됨에 따라 장소를 열고, 닫고, 숨기고, 드러냅니다.
+1 -1
View File
@@ -1,2 +1,2 @@
mod_map_base_name = Движок карты мира mod_map_base_name = Движок карты мира
mod_map_base_desc = Подсистема карты мира: полноэкранный оверлей карты, полигональные зоны, маркеры, список зон, сценарные действия open/close/show/hide и общие правила стиля и входа в зоны. mod_map_base_desc = Движок карты мира: полноэкранная картинка мира с местами, между которыми можно путешествовать; сценарии открывают, закрывают, прячут и показывают их по ходу истории.
+1 -1
View File
@@ -1,2 +1,2 @@
mod_map_base_name = Engine bản đồ thế giới mod_map_base_name = Engine bản đồ thế giới
mod_map_base_desc = Hệ thống con bản đồ thế giới của engine: lớp phủ bản đồ toàn màn hình, vùng đa giác, điểm đánh dấu, danh sách vùng, dịch vụ bản đồ cho kịch bản (hành động open/close/show/hide) cùng kiểu vùng và quy tắc vào vùng dùng chung. mod_map_base_desc = Engine bản đồ thế giới: một bức tranh toàn màn hình về thế giới với các địa điểm để đi lại; kịch bản mở, đóng, ẩn và hiện chúng theo tiến triển câu chuyện.
+1 -1
View File
@@ -1,2 +1,2 @@
mod_map_base_name = 世界地图引擎 mod_map_base_name = 世界地图引擎
mod_map_base_desc = 引擎世界地图子系统:全屏地图叠加层、多边形区域、标记、区域列表、面向剧本的地图服务(open/close/show/hide 动作)以及共用的区域样式和进入规则。 mod_map_base_desc = 世界地图引擎:一幅全屏的世界图景,上面有可以往来的地点;剧本会随剧情推进打开、关闭、隐藏或显示它们。
+1 -1
View File
@@ -3,7 +3,7 @@
"name": "World Map Engine", "name": "World Map Engine",
"version": "1.0.0", "version": "1.0.0",
"author": "ct", "author": "ct",
"description": "Engine world map subsystem: the full-screen map overlay (MapWidget), polygon zones layer, markers, the zone list + runtime override singleton, the scenario-facing map service facade with the open/close/show/hide scenario actions, and the shared zone style and enterability rules. Replaces the former Core/UI/Tool Map* implementations and Core/Actions/MapZoneServiceImpl. The save-format DTO MapZoneStateData stays in the core because RuntimeSerializer owns the __core__ slot layout; the mod plugs into it through MapStateBridge.", "description": "World map engine: a full-screen picture of the world with places to travel between; scenarios open, close, hide and reveal them as the story goes.",
"category": "engine, library", "category": "engine, library",
"sources": [ "sources": [
"src/**/*.cs" "src/**/*.cs"