Compare commits

..
5 Commits
25 changed files with 1246 additions and 29 deletions

No files matched your search

+38
View File
@@ -0,0 +1,38 @@
# Godot 4.x
.godot/
.idea/
sdk/
bin/
obj/
#ai
.omo/
.opencode/
gen/
obj/
bin/
art_sources/
*.tres~
*.tscn~
# GDScript LSP
.godot/
# Export
*.exe
*.dmg
*.apk
*.aab
*.pck
*.zip
*.log
# OS
.DS_Store
Thumbs.db
# Editor
*.import
*.godot.uid
Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

+52
View File
@@ -0,0 +1,52 @@
# Scenario Studio — debugging and editing scenarios while the game runs
Scenario Studio is a dock beside the running game that shows which scenario is playing and which line is on the screen. It can pause the dialog, step through it line by line, stop at breakpoints, move the next line, restart a scenario with the game's state rolled back, and change the scenario on the spot — and then shows the change in the game at once.
It has two modes: **Novice** shows the story moment in plain blocks; **Author** shows the scenario text with line numbers.
## Opening it
A game that includes the Developer Tools toolset (mechanic *Scenario Studio*) has a **Studio** button — the quill — on its toolbar. The launch flag `--studio` opens the dock at start. The pictures below are from the Cthangover kitchen; edits went into a test layer, never into the game's own files.
## Novice mode
![The kitchen with the Studio dock on the right in Novice mode: scene home_kitchen, scenario home_kitchen_cooking, a layer badge; under "On screen now" the line "New line" and the question "A room equipped as a kitchen"; the answers Leave (goes to scene home_vestibule), Cook (action toggle_cooking_workbench) and New answer, each with "Choose where" and Edit; buttons "+ Line before the question" and "+ Answer"; the box "This change affects" with the target layer, and Apply at the bottom.](assets/studio-novice.jpg)
The **Now** tab shows the moment on the screen: the line, the question and every answer with where it leads. **Edit** changes a text, **Choose where** changes where an answer leads (a label, another scene, the end), **+ Line** and **+ Answer** add to the moment. Every change shows in **This change affects** which mod or layer it will be written to.
## Author mode, pausing and breakpoints
![The dock in Author mode: Pause, Step, Continue, Resources and Restart on the transport bar; the scenario text of home_kitchen with line 6 — the select "A room fitted out as a kitchen" — marked by a red breakpoint dot and the ▶ marker of the current line; under it "after line 9" with + Line, + Choice, + Go to scene, and the target layer my_studio.](assets/dock-breakpoint.jpg)
- **Pause** holds the dialog before its next line; **Step** runs one line; **Continue** goes on.
- A click in the margin sets a **breakpoint**: the dialog stops before that line.
- Dragging the **▶** marker to another line makes that line run next.
- **+ Line**, **+ Choice**, **+ Go to scene** add after the current line; **Edit text** edits the whole scenario.
## Apply and restart
**Apply** writes the changes and restarts the scenario. Here a line "New line" was added before the question; after Apply it is on the screen:
![The dock after Apply: on screen now "New line", the status "Applied to "my_studio": scenario restarted with rollback".](assets/dock-applied.jpg)
**Restart** offers: the scenario again without rollback, the scenario again **with state rollback** (flags, items, the clock and the rest are put back as they were when the scenario started), the scene again, or continuing from the current label.
## Inspecting state
![The State tab: "Values can be changed to test another branch", the clock with day 24 and hour 23:00.](assets/dock-state.jpg)
The **State** tab shows the game state grouped by owner: the clock, the variables of the running dialog, the quests the scenario refers to, the inventory and which scenarios already ran. Variables, item counts and quest status can be changed (Enter writes them into the game) to try another branch. **Scene** lists the scenarios of the current scene, **Map** shows the scenes and the ways between them (and where to drop new backgrounds), and **Log** records what happened:
![The Log tab: entered home_kitchen, home_kitchen_cooking started, the edit "+6 → my_studio", restarts, "breakpoint, line 6", "next line moved to 5", "checkpoint in home_kitchen".](assets/dock-log.jpg)
## Where changes are written
- A mod installed as a folder can be changed in place.
- Otherwise changes go to the game's **studio layer** (`user://studio/<game>`), which wins over every mod and leaves the mods untouched. The layer can be exported as a new mod, which is then added to the game's collection.
- **Resources** re-reads backgrounds dropped into a mod or into the layer's `backgrounds/` folder while the game runs; a new scene can then be made on such a background from the Map tab.
## If something goes wrong
1. **There is no Studio button.** The game's collection does not include the studio; add the Developer Tools toolset or launch with `--studio`.
2. **Step does nothing.** The dialog waits for an answer: pick one first.
3. **Other players do not see a change.** Changes in the studio layer stay in this game on this computer; export the layer as a mod to share them.
+52
View File
@@ -0,0 +1,52 @@
# Scenario Studio — depura y edita escenarios con el juego en marcha
Scenario Studio es un panel acoplado junto al juego en marcha que muestra qué escenario se está reproduciendo y qué línea hay en pantalla. Puede pausar el diálogo, avanzar línea a línea, detenerse en puntos de ruptura, mover la siguiente línea, reiniciar un escenario con el estado del juego revertido y cambiar el escenario al vuelo — y enseguida muestra el cambio en el juego.
Tiene dos modos: **Principiante** muestra el momento de la historia en bloques sencillos; **Autor** muestra el texto del escenario con números de línea.
## Cómo abrirlo
Un juego que incluye el conjunto Developer Tools (la mecánica *Scenario Studio*) tiene un botón **Estudio** — la pluma — en su barra de herramientas. La opción de arranque `--studio` abre el panel nada más empezar. Las capturas de abajo son de la cocina de Cthangover; las ediciones se hicieron en una capa de prueba, nunca en los archivos del propio juego.
## Modo Principiante
![La cocina con el panel Estudio a la derecha en modo Principiante: escena home_kitchen, escenario home_kitchen_cooking, una insignia de capa; bajo «En pantalla ahora» la línea «Nueva línea» y la pregunta «Una habitación acondicionada como cocina»; las respuestas Salir (va a la escena home_vestibule), Cocinar (acción toggle_cooking_workbench) y una respuesta nueva, cada una con «Elige adónde» y Editar; los botones «+ Línea antes de la pregunta» y «+ Respuesta»; la caja «Este cambio afecta a» con la capa de destino, y Aplicar abajo.](assets/studio-novice.jpg)
La pestaña **Ahora** muestra el momento en pantalla: la línea, la pregunta y cada respuesta con adónde lleva. **Editar** cambia un texto, **Elige adónde** cambia a dónde conduce una respuesta (una etiqueta, otra escena, el final), **+ Línea** y **+ Respuesta** añaden al momento. Cada cambio muestra en **Este cambio afecta a** en qué mod o capa se escribirá.
## Modo Autor, pausa y puntos de ruptura
![El panel en modo Autor: Pausa, Paso, Continuar, Recursos y Reiniciar en la barra de transporte; el texto del escenario de home_kitchen con la línea 6 — el select «Una habitación acondicionada como cocina» — marcada con un punto rojo de ruptura y el marcador ▶ de la línea actual; debajo, «tras la línea 9» con + Línea, + Elección, + Ir a escena, y la capa de destino my_studio.](assets/dock-breakpoint.jpg)
- **Pausa** detiene el diálogo antes de su siguiente línea; **Paso** ejecuta una línea; **Continuar** sigue.
- Un clic en el margen pone un **punto de ruptura**: el diálogo se detiene antes de esa línea.
- Arrastrar el marcador **▶** a otra línea hace que esa línea sea la siguiente en ejecutarse.
- **+ Línea**, **+ Elección**, **+ Ir a escena** añaden tras la línea actual; **Editar texto** edita el escenario entero.
## Aplicar y reiniciar
**Aplicar** escribe los cambios y reinicia el escenario. Aquí se añadió una línea «Nueva línea» antes de la pregunta; tras aplicar, ya está en pantalla:
![El panel tras aplicar: en pantalla ahora «Nueva línea», el estado «Aplicado a «my_studio», escenario reiniciado con reversión».](assets/dock-applied.jpg)
**Reiniciar** ofrece: el escenario de nuevo sin reversión, el escenario de nuevo **revirtiendo el estado** (las marcas, los objetos, el reloj y el resto vuelven a como estaban cuando empezó el escenario), la escena de nuevo, o continuar desde la etiqueta actual.
## Inspeccionar el estado
![La pestaña Estado: «Los valores se pueden cambiar para probar otra rama», el reloj con día 24 y hora 23:00.](assets/dock-state.jpg)
La pestaña **Estado** muestra el estado del juego agrupado por dueño: el reloj, las variables del diálogo en curso, las misiones a las que remite el escenario, el inventario y qué escenarios ya se ejecutaron. Variables, cantidades de objetos y estado de misiones se pueden cambiar (Intro los escribe en el juego) para probar otra rama. **Escena** lista los escenarios de la escena actual, **Mapa** muestra las escenas y los caminos entre ellas (y dónde soltar fondos nuevos), y **Registro** apunta lo que ocurrió:
![La pestaña Registro: entrada en home_kitchen, home_kitchen_cooking empezado, la edición «+6 → my_studio», reinicios, «punto de ruptura, línea 6», «siguiente línea movida a 5», «punto de control en home_kitchen».](assets/dock-log.jpg)
## Dónde se escriben los cambios
- Un mod instalado como carpeta se puede cambiar en el sitio.
- Si no, los cambios van a la **capa de estudio** del juego (`user://studio/<game>`), que gana a todos los mods y los deja intactos. La capa se puede exportar como un mod nuevo, que luego se añade a la colección del juego.
- **Recursos** vuelve a leer los fondos soltados en un mod o en la carpeta `backgrounds/` de la capa mientras el juego corre; sobre ese fondo se puede crear después una escena nueva desde la pestaña Mapa.
## Si algo sale mal
1. **No hay botón de Estudio.** La colección del juego no incluye el estudio; añade el conjunto Developer Tools o arranca con `--studio`.
2. **Paso no hace nada.** El diálogo espera una respuesta: elige una primero.
3. **Otros jugadores no ven un cambio.** Los cambios de la capa de estudio se quedan en este juego en este ordenador; exporta la capa como mod para compartirlos.
+52
View File
@@ -0,0 +1,52 @@
# Scenario Studio — ゲームの実行中にシナリオをデバッグし、その場で編集する
Scenario Studio は、実行中のゲームの脇に開くドックで、いまどのシナリオが再生され、どの行が画面に出ているかを示します。ダイアログを一時停止し、一行ずつステップ実行し、ブレークポイントで止め、次の行を付け替え、ゲームの状態を巻き戻してシナリオを再開始し、その場でシナリオを書き換えられます——そして変更はすぐにゲームの中に現れます。
モードは二つ。**初心者**モードは物語の瞬間をシンプルなブロックで示し、**作者**モードは行番号付きのシナリオテキストを示します。
## 開き方
Developer Tools ツールセットを含むゲーム(メカニクス *Scenario Studio*)には、ツールバーに**スタジオ**ボタン——羽根ペン——があります。起動フラグ `--studio` を付けると、開始時にドックが開きます。以下の画像は Cthangover の台所でのものです。編集はテストレイヤーに入れてあり、ゲーム本来のファイルには触れていません。
## 初心者モード
![台所と、右側に初心者モードのスタジオドック: シーン home_kitchen、シナリオ home_kitchen_cooking、レイヤーのバッジ。「いま画面に」の下に行「新しい行」と質問「台所として整えられた部屋」、回答は「出る」(シーン home_vestibule へ)、「料理する」(行動 toggle_cooking_workbench)、新しい回答の三つで、それぞれ「行き先を選ぶ」と「編集」付き。ボタン「+ 質問の前に行」「+ 回答」。下部に「この変更が影響するもの」(目標レイヤー)と「適用」。](assets/studio-novice.jpg)
**現在**タブは画面の瞬間を示します: 行、質問、そして各行き先付きの回答すべて。**編集**はテキストを直し、**行き先を選ぶ**は回答の行き先(ラベル、別のシーン、終わり)を変え、**+ 行**と**+ 回答**はその瞬間に足します。変更ごとに、**この変更が影響するもの**にどの MOD かレイヤーに書かれるかが表示されます。
## 作者モード、一時停止、ブレークポイント
![作者モードのドック: トランスポートバーに「一時停止」「ステップ」「続行」「リソース」「再開始」。home_kitchen のシナリオテキストの 6 行目——select「台所として整えられた部屋」——に赤いブレークポイントの点と現在行の ▶ マーカー。その下に「9 行目のあと」と「+ 行」「+ 選択肢」「+ シーンへ移動」、そして目標レイヤー my_studio。](assets/dock-breakpoint.jpg)
- **一時停止**は次の行の前でダイアログを止め、**ステップ**は一行だけ実行し、**続行**はそのまま進めます。
- 余白をクリックすると**ブレークポイント**が付きます: ダイアログはその行の前で止まります。
- **▶** マーカーを別の行へドラッグすると、その行が次に実行されます。
- **+ 行**、**+ 選択肢**、**+ シーンへ移動**は現在行のあとに追加し、**テキストを編集**はシナリオ全体を編集します。
## 適用と再開始
**適用**は変更を書き込み、シナリオを再開始します。ここでは質問の前に「新しい行」を足しました。適用後、それが画面に出ています:
![適用後のドック: 画面には「新しい行」、状態は「「my_studio」に適用し、巻き戻してシナリオを再開始した」。](assets/dock-applied.jpg)
**再開始**では選べます: ロールバックなしでもう一度、**状態を巻き戻して**もう一度(フラグ、持ち物、時計などがシナリオ開始時の状態へ戻ります)、シーンを入り直す、現在のラベルから続ける。
## 状態の確認
![状態タブ: 「値を変えて別の分岐を試せます」、時計は 24 日 23:00。](assets/dock-state.jpg)
**状態**タブはゲームの状態を持ち主ごとに示します: 時計、進行中のダイアログの変数、シナリオが参照するクエスト、インベントリ、そしてどのシナリオがすでに実行されたか。変数、持ち物の数、クエストの状態は変えられ(Enter でゲームに書き込まれます)、別の分岐を試せます。**シーン**タブは現在のシーンのシナリオ一覧、**マップ**はシーンとその間の経路(新しい背景のドロップ先)を示し、**ログ**は何が起きたかを記録します:
![ログタブ: home_kitchen に入った、home_kitchen_cooking が始まった、編集「+6 → my_studio」、再開始、「ブレークポイント、6 行目」、「次の行を 5 へ移動」、「home_kitchen のチェックポイント」。](assets/dock-log.jpg)
## 変更の書き込み先
- フォルダーとしてインストールされた MOD は、その場で書き換えられます。
- それ以外の変更は、ゲームの**スタジオレイヤー**(`user://studio/<game>`)に入ります。レイヤーはどの MOD よりも優先され、MOD には触れません。レイヤーは新しい MOD として書き出せ、それをゲームのコレクションに追加します。
- **リソース**は、ゲームの実行中に MOD やレイヤーの `backgrounds/` フォルダーへ置かれた背景を読み直します。その背景からなら、マップタブから新しいシーンを作れます。
## うまくいかないとき
1. **スタジオボタンがない。** そのゲームのコレクションにスタジオが入っていません。Developer Tools ツールセットを追加するか、`--studio` を付けて起動してください。
2. **ステップが何もしない。** ダイアログが回答を待っています: 先に一つ選んでください。
3. **他のプレイヤーに変更が見えない。** スタジオレイヤーの変更は、この PC のこのゲームの中にとどまります。共有するにはレイヤーを MOD として書き出してください。
+52
View File
@@ -0,0 +1,52 @@
# Scenario Studio — 게임 실행 중에 시나리오를 디버그하고 편집하기
Scenario Studio는 실행 중인 게임 옆에 열리는 도크로, 지금 어떤 시나리오가 재생되고 어떤 줄이 화면에 있는지 보여 줍니다. 대화를 일시 정지하고, 한 줄씩 진행하고, 중단점에서 멈추고, 다음 줄을 옮기고, 게임 상태를 되돌려 시나리오를 다시 시작하고, 그 자리에서 시나리오를 바꿀 수 있습니다 — 그리고 변경은 곧바로 게임에 나타납니다.
모드는 두 가지입니다. **초보자** 모드는 이야기 장면을 단순한 블록으로 보여 주고, **작성자** 모드는 줄 번호가 붙은 시나리오 텍스트를 보여 줍니다.
## 열기
Developer Tools 도구 모음이 들어 있는 게임(메커니즘 *Scenario Studio*)에는 도구 모음에 **스튜디오** 버튼 — 깃펜 — 이 있습니다. 실행 플래그 `--studio`를 붙이면 시작할 때 도크가 열립니다. 아래의 그림은 Cthangover의 주방에서 찍은 것으로, 편집은 테스트 레이어에 기록되었고 게임 자체 파일은 건드리지 않았습니다.
## 초보자 모드
![주방과 오른쪽의 초보자 모드 스튜디오 도크: 장면 home_kitchen, 시나리오 home_kitchen_cooking, 레이어 배지. "지금 화면에" 아래에 줄 "새 줄"과 질문 "주방으로 꾸며진 방", 답변으로 나가기(장면 home_vestibule로), 요리하기(동작 toggle_cooking_workbench), 새 답변이 있고 각각에 갈 곳 선택과 편집이 붙어 있습니다. "+ 질문 앞에 줄"과 "+ 답변" 버튼, 아래쪽에 "이 변경이 영향을 주는 곳"(대상 레이어)과 적용.](assets/studio-novice.jpg)
**지금** 탭은 화면의 장면을 보여 줍니다: 줄, 질문, 그리고 각 답변이 어디로 이어지는지. **편집**은 텍스트를 바꾸고, **갈 곳 선택**은 답변의 행선지(레이블, 다른 장면, 끝)를 바꾸며, **+ 줄**과 **+ 답변**은 그 장면에 더합니다. 변경마다 **이 변경이 영향을 주는 곳**에 어느 모드나 레이어에 기록될지 표시됩니다.
## 작성자 모드, 일시 정지, 중단점
![작성자 모드의 도크: 전송 막대에 일시 정지, 한 단계, 계속, 리소스, 다시 시작. home_kitchen의 시나리오 텍스트에서 6번째 줄 — select "주방으로 꾸며진 방" — 에 빨간 중단점과 현재 줄의 ▶ 표시가 있습니다. 그 아래 "9번째 줄 뒤"에 + 줄, + 선택지, + 장면으로 이동, 그리고 대상 레이어 my_studio.](assets/dock-breakpoint.jpg)
- **일시 정지**는 다음 줄 앞에서 대화를 멈추고, **한 단계**는 한 줄만 실행하며, **계속**은 계속 진행합니다.
- 여백을 클릭하면 **중단점**이 생깁니다: 대화가 그 줄 앞에서 멈춥니다.
- **▶** 표시를 다른 줄로 끌면 그 줄이 다음에 실행됩니다.
- **+ 줄**, **+ 선택지**, **+ 장면으로 이동**은 현재 줄 뒤에 더하고, **텍스트 편집**은 시나리오 전체를 편집합니다.
## 적용과 다시 시작
**적용**은 변경을 기록하고 시나리오를 다시 시작합니다. 여기서는 질문 앞에 "새 줄"을 추가했습니다. 적용 후 화면에 나타납니다:
![적용 후의 도크: 화면에는 "새 줄", 상태는 ""my_studio"에 적용, 되돌려서 시나리오를 다시 시작함".](assets/dock-applied.jpg)
**다시 시작**은 선택지를 제공합니다: 되돌리지 않고 시나리오 다시, **상태를 되돌려** 다시(플래그, 아이템, 시계 등이 시나리오가 시작했을 때의 상태로 돌아갑니다), 장면 다시, 현재 레이블에서 계속하기.
## 상태 살펴보기
![상태 탭: "값을 바꿔 다른 분기를 시험할 수 있습니다", 시계는 24일 23:00.](assets/dock-state.jpg)
**상태** 탭은 게임 상태를 소유자별로 보여 줍니다: 시계, 진행 중인 대화의 변수, 시나리오가 참조하는 퀘스트, 인벤토리, 그리고 어떤 시나리오가 이미 실행됐는지. 변수, 아이템 개수, 퀘스트 상태는 바꿀 수 있고(Enter가 게임에 기록합니다), 이를 통해 다른 분기를 시험할 수 있습니다. **장면** 탭은 현재 장면의 시나리오를, **지도** 탭은 장면과 그 사이의 길(그리고 새 배경을 놓을 곳)을 보여 주고, **로그**는 무슨 일이 있었는지 기록합니다:
![로그 탭: home_kitchen에 들어감, home_kitchen_cooking 시작, 편집 "+6 → my_studio", 다시 시작들, "중단점, 6번째 줄", "다음 줄을 5로 이동", "home_kitchen의 체크포인트".](assets/dock-log.jpg)
## 변경이 기록되는 곳
- 폴더로 설치된 모드는 그 자리에서 바꿀 수 있습니다.
- 그 외의 변경은 게임의 **스튜디오 레이어**(`user://studio/<game>`)로 갑니다. 레이어는 모든 모드보다 우선하며 모드 자체는 건드리지 않습니다. 레이어는 새 모드로 내보낼 수 있고, 이를 게임 컬렉션에 추가하면 됩니다.
- **리소스**는 게임이 실행되는 동안 모드나 레이어의 `backgrounds/` 폴더에 넣은 배경을 다시 읽습니다. 그런 배경 위로는 지도 탭에서 바로 새 장면을 만들 수 있습니다.
## 문제가 생겼을 때
1. **스튜디오 버튼이 없습니다.** 게임 컬렉션에 스튜디오가 들어 있지 않습니다. Developer Tools 도구 모음을 추가하거나 `--studio`로 실행하세요.
2. **한 단계가 아무것도 하지 않습니다.** 대화가 답변을 기다리고 있습니다: 먼저 하나 고르세요.
3. **다른 플레이어에게 변경이 보이지 않습니다.** 스튜디오 레이어의 변경은 이 컴퓨터의 이 게임에만 남습니다. 공유하려면 레이어를 모드로 내보내세요.
+52
View File
@@ -0,0 +1,52 @@
# Scenario Studio — отладка и правка сценариев прямо во время игры
Scenario Studio — это панель рядом с запущенной игрой, которая показывает, какой сценарий играет и какая строка сейчас на экране. Она умеет ставить диалог на паузу, идти по нему строка за строкой, останавливаться на точках останова, переносить следующую строку, перезапускать сценарий с откатом состояния игры и менять сценарий на ходу — и тут же показывает изменения в игре.
Режима два: **Новичок** показывает сюжетный момент простыми блоками, **Автор** — текст сценария с номерами строк.
## Как открыть
У игры, в которую входит набор Developer Tools (механика *Scenario Studio*), на панели инструментов есть кнопка **Студия** — перо. Флаг запуска `--studio` открывает панель сразу при старте. Снимки ниже сделаны на кухне Cthangover; правки уходили в тестовый слой, а не в файлы самой игры.
## Режим «Новичок»
![Кухня с панелью «Студия» справа в режиме «Новичок»: сцена home_kitchen, сценарий home_kitchen_cooking, значок слоя; под «Сейчас на экране» реплика «Новая реплика» и вопрос «Комната оборудованная под кухню»; ответы «Выйти» (ведёт в сцену home_vestibule), «Готовить» (действие toggle_cooking_workbench) и новый ответ, у каждого — «Выбрать, куда» и «Изменить»; кнопки «+ Реплика до вопроса» и «+ Вариант ответа»; блок «Изменение затронет» с целевым слоем и кнопка «Применить» внизу.](assets/studio-novice.jpg)
Вкладка **Сейчас** показывает момент на экране: реплику, вопрос и все ответы с тем, куда каждый ведёт. **Изменить** правит текст, **Выбрать, куда** меняет, куда ведёт ответ (метка, другая сцена, конец), **+ Реплика** и **+ Вариант ответа** добавляют к моменту. У каждой правки блок **Изменение затронет** показывает, в какой мод или слой она попадёт.
## Режим «Автор», пауза и точки останова
![Панель в режиме «Автор»: на транспортной панели «Пауза», «Шаг», «Дальше», «Ресурсы» и «Перезапуск»; текст сценария home_kitchen, где строка 6 — select «Комната оборудованная под кухню» — отмечена красной точкой останова и маркером ▶ текущей строки; под ней «после строки 9» с кнопками «+ Реплика», «+ Выбор», «+ Переход в сцену» и целевым слоем my_studio.](assets/dock-breakpoint.jpg)
- **Пауза** задержит диалог перед следующей строкой; **Шаг** выполнит одну строку; **Дальше** продолжит.
- Клик на поле слева ставит **точку останова**: диалог остановится перед этой строкой.
- Перетаскивание маркера **▶** на другую строку назначает её следующей.
- **+ Реплика**, **+ Выбор**, **+ Переход в сцену** добавляют после текущей строки; **Править текст** правит весь сценарий.
## Применение и перезапуск
**Применить** записывает правки и перезапускает сценарий. Здесь перед вопросом добавлена реплика «Новая реплика»; после применения она на экране:
![Панель после применения: на экране «Новая реплика», статус «Применено в «my_studio», сценарий перезапущен с откатом».](assets/dock-applied.jpg)
**Перезапуск** предлагает: прогнать сценарий заново без отката, прогнать заново **с откатом состояния** (флаги, предметы, часы и остальное вернутся к тому, как было при старте сценария), заново войти в сцену или продолжить с текущей метки.
## Осмотр состояния
![Вкладка «Состояние»: «Значения можно менять, чтобы попробовать другую ветку», часы — день 24, время 23:00.](assets/dock-state.jpg)
Вкладка **Состояние** показывает состояние игры по владельцам: часы, переменные идущего диалога, задания, на которые ссылается сценарий, инвентарь и какие сценарии уже выполнялись. Переменные, количество предметов и статус заданий можно менять (Enter записывает их в игру), чтобы попробовать другую ветку. Вкладка **Сцена** перечисляет сценарии текущей сцены, **Карта** показывает сцены и пути между ними (и куда бросать новые фоны), а **Журнал** записывает, что происходило:
![Вкладка «Журнал»: вход в home_kitchen, старт home_kitchen_cooking, правка «+6 → my_studio», перезапуски, «точка останова, строка 6», «следующая строка перенесена на 5», «контрольная точка в home_kitchen».](assets/dock-log.jpg)
## Куда пишутся изменения
- Мод, установленный папкой, можно менять на месте.
- Иначе правки уходят в **слой студии** игры (`user://studio/<game>`), который главнее любого мода и не трогает сами моды. Слой можно выгрузить в новый мод, который затем добавляется в коллекцию игры.
- **Ресурсы** перечитывает фоны, брошенные во время игры в мод или в папку `backgrounds/` слоя; после этого на таком фоне можно завести новую сцену прямо со вкладки «Карта».
## Если что-то пошло не так
1. **Кнопки «Студия» нет.** В коллекцию игры не входит студия — добавьте набор Developer Tools или запустите с `--studio`.
2. **«Шаг» ничего не делает.** Диалог ждёт ответ: сначала выберите его.
3. **Другие игроки не видят правку.** Изменения в слое студии остаются в этой игре на этом компьютере; выгрузите слой как мод, чтобы поделиться.
+52
View File
@@ -0,0 +1,52 @@
# Scenario Studio — gỡ lỗi và chỉnh sửa kịch bản khi trò chơi đang chạy
Scenario Studio là một bảng gắn bên cạnh trò chơi đang chạy, cho biết kịch bản nào đang chơi và dòng nào đang hiện trên màn hình. Nó có thể tạm dừng hội thoại, đi từng dòng một, dừng ở điểm ngắt, dịch dòng tiếp theo, khởi động lại kịch bản với trạng thái game được hoàn lại, và sửa kịch bản ngay tại chỗ — rồi lập tức hiện thay đổi trong game.
Nó có hai chế độ: **Người mới** hiển thị khoảnh khắc câu chuyện bằng các khối đơn giản; **Tác giả** hiển thị văn bản kịch bản với số dòng.
## Mở nó
Trò chơi có bộ Developer Tools (cơ chế *Scenario Studio*) sẽ có nút **Xưởng** — cây bút lông — trên thanh công cụ. Cờ khởi động `--studio` mở bảng ngay khi bắt đầu. Các hình dưới đây chụp từ căn bếp của Cthangover; các chỉnh sửa được ghi vào một lớp thử nghiệm, không đụng tới tệp của game.
## Chế độ Người mới
![Căn bếp với bảng Xưởng bên phải ở chế độ Người mới: cảnh home_kitchen, kịch bản home_kitchen_cooking, huy hiệu lớp; dưới "Đang trên màn hình" là dòng "Dòng mới" và câu hỏi "Một căn phòng được biến thành bếp"; các câu trả lời Rời đi (chuyển tới cảnh home_vestibule), Nấu ăn (hành động toggle_cooking_workbench) và một câu trả lời mới, mỗi cái có "Chọn nơi đến" và Sửa; các nút "+ Dòng trước câu hỏi" và "+ Câu trả lời"; hộp "Thay đổi này ảnh hưởng đến" với lớp đích, và Áp dụng ở dưới.](assets/studio-novice.jpg)
Thẻ **Hiện tại** hiển thị khoảnh khắc trên màn hình: dòng, câu hỏi và từng câu trả lời cùng nơi nó dẫn tới. **Sửa** đổi một đoạn văn bản, **Chọn nơi đến** đổi nơi một câu trả lời dẫn tới (một nhãn, cảnh khác, hay kết thúc), **+ Dòng** và **+ Câu trả lời** thêm vào khoảnh khắc. Mỗi thay đổi đều cho biết trong **Thay đổi này ảnh hưởng đến** rằng nó sẽ được ghi vào mod hay lớp nào.
## Chế độ Tác giả, tạm dừng và điểm ngắt
![Bảng ở chế độ Tác giả: Tạm dừng, Từng bước, Tiếp tục, Tài nguyên và Khởi động lại trên thanh điều khiển; văn bản kịch bản của home_kitchen với dòng 6 — câu select "Một căn phòng được biến thành bếp" — được đánh dấu chấm đỏ điểm ngắt và ký hiệu ▶ của dòng hiện tại; bên dưới là "sau dòng 9" với + Dòng, + Lựa chọn, + Đến cảnh, và lớp đích my_studio.](assets/dock-breakpoint.jpg)
- **Tạm dừng** giữ hội thoại trước dòng tiếp theo; **Từng bước** chạy một dòng; **Tiếp tục** chơi tiếp.
- Bấm vào lề là đặt một **điểm ngắt**: hội thoại dừng trước dòng đó.
- Kéo ký hiệu **▶** sang dòng khác sẽ khiến dòng đó chạy tiếp theo.
- **+ Dòng**, **+ Lựa chọn**, **+ Đến cảnh** thêm vào sau dòng hiện tại; **Sửa văn bản** sửa cả kịch bản.
## Áp dụng và khởi động lại
**Áp dụng** ghi các thay đổi và chạy lại kịch bản. Ở đây một dòng "Dòng mới" được thêm trước câu hỏi; sau khi áp dụng nó đã hiện trên màn hình:
![Bảng sau khi áp dụng: trên màn hình là "Dòng mới", trạng thái "Đã áp dụng cho "my_studio", kịch bản được khởi động lại và hoàn trạng thái".](assets/dock-applied.jpg)
**Khởi động lại** đưa ra các lựa chọn: chạy lại kịch bản không hoàn trạng thái, chạy lại **có hoàn trạng thái** (cờ, vật phẩm, đồng hồ và mọi thứ trở lại như khi kịch bản bắt đầu), vào lại cảnh, hay tiếp tục từ nhãn hiện tại.
## Xem trạng thái
![Thẻ Trạng thái: "Có thể đổi các giá trị để thử nhánh khác", đồng hồ chỉ ngày 24 giờ 23:00.](assets/dock-state.jpg)
Thẻ **Trạng thái** hiển thị trạng thái game theo từng chủ sở hữu: đồng hồ, các biến của hội thoại đang chạy, các nhiệm vụ mà kịch bản nhắc tới, túi đồ và những kịch bản đã chạy. Biến, số lượng vật phẩm và trạng thái nhiệm vụ có thể đổi (Enter ghi chúng vào game) để thử nhánh khác. **Cảnh** liệt kê các kịch bản của cảnh hiện tại, **Bản đồ** cho thấy các cảnh và đường đi giữa chúng (và nơi thả phông nền mới), còn **Nhật ký** ghi lại những gì đã xảy ra:
![Thẻ Nhật ký: vào home_kitchen, home_kitchen_cooking bắt đầu, chỉnh sửa "+6 → my_studio", các lần khởi động lại, "điểm ngắt, dòng 6", "dòng tiếp theo chuyển tới 5", "điểm kiểm tra trong home_kitchen".](assets/dock-log.jpg)
## Thay đổi được ghi vào đâu
- Mod cài dưới dạng thư mục có thể được sửa trực tiếp.
- Nếu không, thay đổi sẽ vào **lớp xưởng** của game (`user://studio/<game>`), lớp này thắng mọi mod và không đụng tới các mod. Lớp có thể được xuất thành mod mới, rồi thêm vào bộ sưu tập của game.
- **Tài nguyên** đọc lại các phông nền thả vào mod hoặc vào thư mục `backgrounds/` của lớp trong khi game chạy; sau đó có thể tạo cảnh mới trên phông nền đó ngay từ thẻ Bản đồ.
## Khi có trục trặc
1. **Không có nút Xưởng.** Bộ sưu tập của game không chứa xưởng; hãy thêm bộ Developer Tools hoặc chạy với `--studio`.
2. **Từng bước không làm gì.** Hội thoại đang chờ một câu trả lời: hãy chọn một cái trước.
3. **Người chơi khác không thấy thay đổi.** Thay đổi trong lớp xưởng chỉ ở lại game này trên máy này; hãy xuất lớp thành mod để chia sẻ.
+52
View File
@@ -0,0 +1,52 @@
# Scenario Studio — 游戏运行时调试与编辑剧本
Scenario Studio 是一个停靠在运行中游戏旁边的面板,会显示当前播放的是哪个剧本、屏幕上正停在哪一行。它可以暂停对话、逐行单步执行、停在断点上、挪动下一行、带着回滚的游戏状态重启剧本,还能当场修改剧本——并且立刻把改动呈现到游戏里。
它有两种模式:**新手**模式用简单的块面呈现剧情时刻;**作者**模式显示带行号的剧本文本。
## 打开方式
包含 Developer Tools 工具集的游戏(机制 *Scenario Studio*)工具栏上有一个**工作室**按钮——羽毛笔。启动参数 `--studio` 会在开局时直接打开面板。下面的截图来自 Cthangover 的厨房;编辑都写进了测试层,没有碰游戏自己的文件。
## 新手模式
![厨房场景,右侧是新手模式下的工作室面板:场景 home_kitchen、剧本 home_kitchen_cooking、一个层徽标;「当前画面」下方是台词「新台词」和问题「一间布置成厨房的房间」;回答有「离开」(前往场景 home_vestibule)、「做饭」(动作 toggle_cooking_workbench)和「新回答」,每项都带「选择去向」和「编辑」;按钮「+ 在问题前加台词」和「+ 回答」;底部是「此修改影响」框(显示目标层)和「应用」。](assets/studio-novice.jpg)
**现在**标签页显示屏幕上的时刻:台词、问题和每个回答的去向。**编辑**修改文本,**选择去向**修改一个回答指向哪里(某个标签、另一个场景或结尾),**+ 台词**和**+ 回答**往这个时刻里添加内容。每处修改都会在**此修改影响**里显示将写入哪个模组或哪一层。
## 作者模式:暂停与断点
![作者模式下的面板:传输栏上有「暂停」「单步」「继续」「资源」「重启」;home_kitchen 的剧本文本中,第 6 行——select「一间布置成厨房的房间」——标着红色断点和当前行的 ▶ 标记;下方是「第 9 行之后」,带「+ 台词」「+ 选项」「+ 前往场景」和目标层 my_studio。](assets/dock-breakpoint.jpg)
- **暂停**让对话停在下一行之前;**单步**执行一行;**继续**照常往下走。
- 在边栏点一下即可设置**断点**:对话会在那一行之前停下。
- 把 **▶** 标记拖到另一行,就能让那一行成为下一行。
- **+ 台词**、**+ 选项**、**+ 前往场景**添加在当前行之后;**编辑文本**编辑整个剧本。
## 应用与重启
**应用**会写入改动并重启剧本。这里在问题前加了一行「新台词」;应用之后它已经显示在画面上:
![应用后的面板:画面上是「新台词」,状态为「已应用到"my_studio",剧本已回滚并重启」。](assets/dock-applied.jpg)
**重启**提供几种选择:不带回滚地重跑剧本、**带状态回滚**重跑(标记、物品、时钟等都会回到剧本开始时的样子)、重进场景,或从当前标签继续。
## 检查状态
![状态标签页:「可以修改数值来尝试其他分支」,时钟显示第 24 天 23:00。](assets/dock-state.jpg)
**状态**标签页按归属分组显示游戏状态:时钟、正在进行的对话的变量、剧本引用到的任务、背包,以及哪些剧本已经运行过。变量、物品数量和任务状态都可以修改(按 Enter 写入游戏),以便尝试其他分支。**场景**列出当前场景的剧本,**地图**显示各场景及其间的通路(以及可以把新背景拖放到的位置),**日志**记录发生的事情:
![日志标签页:进入 home_kitchen、home_kitchen_cooking 启动、修改「+6 → my_studio」、多次重启、「断点,第 6 行」、「下一行移到 5」、「home_kitchen 中的检查点」。](assets/dock-log.jpg)
## 改动写到哪里
- 以文件夹形式安装的模组可以就地修改。
- 否则改动会进入游戏的**工作室层**(`user://studio/<game>`),它的优先级高于所有模组,且不会碰模组本身。这一层可以导出为新模组,再加入游戏的合集中。
- **资源**会重新读取游戏运行时拖入模组或层的 `backgrounds/` 文件夹的背景;之后可以在「地图」标签页直接用这样的背景新建场景。
## 出问题了怎么办
1. **没有工作室按钮。** 游戏的合集没包含工作室;添加 Developer Tools 工具集,或用 `--studio` 启动。
2. **单步没有反应。** 对话正在等待回答:先选一个。
3. **其他玩家看不到改动。** 工作室层里的修改只留在这台电脑的这个游戏里;把层导出为模组即可分享。
+1 -1
View File
@@ -1,5 +1,5 @@
mod_scenario_studio_name = Scenario Studio
mod_scenario_studio_desc = Debug and edit scenarios while the game runs: pause, step, restart, the current line, why scenarios started, game state, an event log and the scene map. Author and Novice modes.
mod_scenario_studio_desc = A dock beside the running game that pauses, steps and edits the playing scenario: breakpoints, restarts with state rollback, live edits into a mod or a per-game layer.
studio/title = Studio
studio/mode_author = Author
studio/mode_novice = Novice
+167
View File
@@ -0,0 +1,167 @@
mod_scenario_studio_name = Estudio de escenarios
mod_scenario_studio_desc = Un panel junto al juego en marcha que pausa, avanza paso a paso y edita el escenario en reproducción: puntos de ruptura, reinicios revirtiendo el estado y ediciones en vivo en un mod o en la capa propia de cada juego.
studio/title = Estudio
studio/mode_author = Autor
studio/mode_novice = Principiante
studio/close = Cerrar el estudio
studio/state_running = en marcha
studio/state_paused = en pausa
studio/pause = ‖ Pausa
studio/step = ▶| Paso
studio/continue = ▶ Continuar
studio/restart = ⟲ Reiniciar ▾
studio/restart_scenario = Escenario de nuevo (sin revertir)
studio/restart_rollback = Escenario de nuevo revirtiendo el estado
studio/restart_scene = Escena de nuevo
studio/restart_from_label = Continuar desde la etiqueta actual
studio/crumb_scene = escena
studio/crumb_scenario = escenario
studio/tab_now = Ahora
studio/tab_scene = Escena
studio/tab_state = Estado
studio/tab_log = Registro
studio/tab_map = Mapa
studio/edits_go_to = los cambios van a la capa «{0}»
studio/after_line = después de la línea {0}
studio/add_line = + Línea
studio/add_choice = + Elección
studio/add_jump = + Ir a escena
studio/new_line_text = Nueva línea
studio/new_choice_text = Nueva elección
studio/affects = Este cambio afecta a
studio/overrides = sustituye a
studio/pending = Cambios pendientes: {0}
studio/no_pending = Sin cambios
studio/edit_text = Editar texto
studio/apply = Aplicar ⟲
studio/scope_own = carpeta
studio/scope_overlay = zip
studio/scope_layer = capa
studio/scope_readonly = código
studio/cand_running = en marcha
studio/cand_skipped = omitido
studio/cand_completed = completado
studio/cand_shadowed = eclipsado
studio/cand_hint = Los escenarios de esta escena en orden de arranque: por qué empezó o no cada uno.
studio/run_now = Ejecutar
studio/reset_completed = Restablecer «completado»
studio/log_scene = escena
studio/log_skip = omitir
studio/log_scenario = escenario
studio/log_stop = detener
studio/log_edit = edición
studio/state_hint = Los valores se pueden cambiar para probar otra rama.
studio/map_from = Viene de
studio/map_to = Salidas desde aquí
studio/map_go = Ir
studio/map_new_scene = + Nueva escena
studio/map_link = + Enlace
studio/node_here = estás aquí
studio/node_visited = visitada
studio/node_next = salida
studio/node_new = nueva
studio/priority = prioridad {0}
studio/no_condition = sin condición
studio/one_run = de una vez
studio/error_label_missing = etiqueta {0} no encontrada
studio/reason_completed = de una vez, ya completado
studio/group_time = Tiempo
studio/group_quests = Misiones
studio/group_inventory = Inventario
studio/group_dialog_vars = Variables de diálogo
studio/group_completed = Escenarios completados
studio/state_day = día
studio/state_hour = hora
studio/value_yes = sí
studio/log_text_enter = entró en {0}
studio/log_text_condition = {0}: la condición es falsa
studio/log_text_completed = {0}: ya completado
studio/log_text_started = empezó {0}
studio/log_text_breakpoint = punto de interrupción, línea {0}
studio/log_text_applied = {0}: +{1} → {2}
studio/quote = «{0}»
studio/say_question = Pregunta
studio/say_line = Línea
studio/say_new = {0} · nueva
studio/moment_now = En pantalla ahora
studio/moment_answers = Respuestas
studio/moment_next = Lo siguiente en la escena
studio/moment_empty = Nada en pantalla: no se ejecuta ningún escenario o está en una línea de servicio.
studio/outcome_scene = va a la escena
studio/outcome_action = acción
studio/outcome_end = fin del escenario
studio/outcome_continue = el diálogo continúa
studio/outcome_broken = no lleva a ninguna parte
studio/edit = Editar
studio/choose_target = Elige adónde ▾
studio/add_line_before = + Línea antes de la pregunta
studio/add_line_after = + Línea después
studio/add_option = + Respuesta
studio/new_option_text = Nueva respuesta
studio/next_waiting = {0} espera su turno
studio/next_none = No hay nada más en cola en esta escena
studio/reason_condition_false = la condición de cabecera es falsa
studio/applied_to = Aplicado a «{0}», escenario reiniciado con reversión
studio/bad_name = Nombre: letras latinas minúsculas, dígitos y _, empezando por una letra
studio/ok = Aceptar
studio/cancel = Cancelar
studio/cand_failed = falló
studio/cand_none = La escena no se compuso mientras el estudio estaba activo: entra de nuevo en ella.
studio/cand_queued = en cola
studio/edit_done = Hecho
studio/error_no_target = la respuesta no lleva a ninguna parte
studio/error_unknown_command = comando desconocido {0}
studio/exported = Capa exportada como el mod «{0}»: añádelo a la colección del juego
studio/log_end = fin
studio/log_text_ended = terminó {0}
studio/log_text_exported = capa exportada como el mod {0}
studio/log_text_failed = {0}: no se pudo crear
studio/log_text_paused = en pausa, línea {0}
studio/log_text_scenario_created = nuevo escenario {0} para la escena {1}
studio/log_text_scene_created = nueva escena {0} (escenario {1})
studio/log_text_shadowed = {0}: eclipsado ({1})
studio/log_text_state = {0} = {1}
studio/map_export = Exportar capa como mod
studio/new_scenario = + Nuevo escenario para la escena
studio/no_scenario = Todavía no se ha ejecutado ningún escenario. Entra en una escena o inicia uno en la pestaña Escena.
studio/prompt_edit_title = Nuevo texto
studio/prompt_export_title = Id del nuevo mod
studio/prompt_scene_title = Nombre de la nueva escena
studio/reason_failed = no se pudo crear el evento, mira el registro SCENE
studio/reason_queued = en cola con prioridad {0}
studio/reason_running = en marcha ahora
studio/reason_shadowed = eclipsado por un escenario con el mismo nombre de otro mod o de la capa
studio/run_failed = No se pudo iniciar: el cuadro de diálogo está ocupado
studio/scenario_created = Escenario «{0}» creado en la capa: vuelve a entrar en la escena o inícialo
studio/scene_created = Escena «{0}» creada en la capa
studio/state_held = parada
studio/state_idle = sin diálogo
studio/step_needs_answer = Primero elige una respuesta en el diálogo
studio/target_end = Fin del escenario
studio/target_labels = Etiquetas
studio/target_scene = → escena {0}
studio/target_scenes = Escenas
studio/via_layer = nueva escena de la capa
studio/via_scenario = desde {0}
studio/map_here = Estás aquí
studio/map_no_exits = Ningún escenario lleva todavía a ninguna parte desde esta escena: «+ Enlace» añade una salida.
studio/checkpoint = Punto de control
studio/checkpoint_save = Recordar el estado
studio/checkpoint_restore = Volver al punto de control
studio/checkpoint_saved = Estado recordado
studio/checkpoint_restored = De vuelta en el punto de control
studio/checkpoint_none = No hay punto de control guardado
studio/log_text_checkpoint_saved = punto de control en {0}
studio/log_text_checkpoint_restored = de vuelta al punto de control en {0}
studio/drag_next_line = Arrastra a otra línea para ejecutarla a continuación
studio/next_line_failed = El diálogo no puede continuar desde esta línea
studio/log_text_next_line = la siguiente línea pasó a {0}
studio/reload_assets = Recursos
studio/reload_assets_tip = Volver a leer los fondos añadidos durante el juego en backgrounds/ de un mod o de la capa ({0})
studio/map_assets_hint = Pon los fondos nuevos en backgrounds/ de tu mod o de la capa ({0}) y pulsa «Recursos» en la barra de arriba. Un <background>_depth a su lado alimenta la iluminación.
studio/assets_reloaded = Recursos releídos: {0} fondos, nada nuevo
studio/assets_reloaded_new = Recursos releídos: {0} fondos, nuevos: {1}
studio/log_text_assets_reloaded = recursos releídos: {0} fondos, {1} nuevos
studio/background_current = Fondos de la escena actual
studio/backgrounds = Fondos
studio/background_item = fondo {0} · {1}
+167
View File
@@ -0,0 +1,167 @@
mod_scenario_studio_name = シナリオスタジオ
mod_scenario_studio_desc = 実行中のゲームの脇に開くドック。再生中のシナリオを一時停止・ステップ実行・その場で編集します: ブレークポイント、状態を巻き戻しての再開始、MOD やゲームごとのレイヤーへのライブ編集。
studio/title = スタジオ
studio/mode_author = 作者
studio/mode_novice = 初心者
studio/close = スタジオを閉じる
studio/state_running = 実行中
studio/state_paused = 一時停止中
studio/pause = ‖ 一時停止
studio/step = ▶| ステップ
studio/continue = ▶ 続行
studio/restart = ⟲ 再開始 ▾
studio/restart_scenario = シナリオをもう一度(巻き戻しなし)
studio/restart_rollback = 状態を巻き戻してシナリオをもう一度
studio/restart_scene = シーンをもう一度
studio/restart_from_label = 現在のラベルから続ける
studio/crumb_scene = シーン
studio/crumb_scenario = シナリオ
studio/tab_now = 現在
studio/tab_scene = シーン
studio/tab_state = 状態
studio/tab_log = ログ
studio/tab_map = マップ
studio/edits_go_to = 編集は「{0}」レイヤーに書き込まれます
studio/after_line = {0} 行目の後
studio/add_line = + 行
studio/add_choice = + 選択肢
studio/add_jump = + シーンへ移動
studio/new_line_text = 新しい行
studio/new_choice_text = 新しい選択肢
studio/affects = この変更が影響するもの
studio/overrides = 上書き
studio/pending = 保留中の変更:{0}
studio/no_pending = 変更なし
studio/edit_text = テキストを編集
studio/apply = 適用 ⟲
studio/scope_own = フォルダー
studio/scope_overlay = zip
studio/scope_layer = レイヤー
studio/scope_readonly = コード
studio/cand_running = 実行中
studio/cand_skipped = スキップ
studio/cand_completed = 完了
studio/cand_shadowed = 隠された
studio/cand_hint = このシーンのシナリオを開始順に:それぞれが始まった理由、始まらなかった理由。
studio/run_now = 実行
studio/reset_completed = 「完了」をリセット
studio/log_scene = シーン
studio/log_skip = スキップ
studio/log_scenario = シナリオ
studio/log_stop = 停止
studio/log_edit = 編集
studio/state_hint = 値を変えて別の分岐を試せます。
studio/map_from = 来た場所
studio/map_to = ここからの出口
studio/map_go = 移動
studio/map_new_scene = + 新しいシーン
studio/map_link = + リンク
studio/node_here = 現在地
studio/node_visited = 訪問済み
studio/node_next = 出口
studio/node_new = 新規
studio/priority = 優先度 {0}
studio/no_condition = 条件なし
studio/one_run = 一度きり
studio/error_label_missing = ラベル {0} が見つかりません
studio/reason_completed = 一度きり、完了済み
studio/group_time = 時間
studio/group_quests = クエスト
studio/group_inventory = インベントリ
studio/group_dialog_vars = ダイアログ変数
studio/group_completed = 完了したシナリオ
studio/state_day = 日
studio/state_hour = 時
studio/value_yes = はい
studio/log_text_enter = {0} に入った
studio/log_text_condition = {0}:条件が偽
studio/log_text_completed = {0}:完了済み
studio/log_text_started = {0} が始まった
studio/log_text_breakpoint = ブレークポイント、{0} 行目
studio/log_text_applied = {0}:+{1} → {2}
studio/quote = 「{0}」
studio/say_question = 質問
studio/say_line = 行
studio/say_new = {0} · 新規
studio/moment_now = いま画面に
studio/moment_answers = 回答
studio/moment_next = シーンで次に
studio/moment_empty = 画面に何もない:シナリオが動いていないか、サービス行で止まっている。
studio/outcome_scene = シーンへ移動
studio/outcome_action = アクション
studio/outcome_end = シナリオの終わり
studio/outcome_continue = 会話が続く
studio/outcome_broken = どこにも行かない
studio/edit = 編集
studio/choose_target = 行き先を選ぶ ▾
studio/add_line_before = + 質問の前に行
studio/add_line_after = + 後に行
studio/add_option = + 回答
studio/new_option_text = 新しい回答
studio/next_waiting = {0} は順番待ち
studio/next_none = このシーンで他に待っているものはない
studio/reason_condition_false = ヘッダーの条件が偽
studio/applied_to = 「{0}」に適用し、巻き戻してシナリオを再開始した
studio/bad_name = 名前:小文字のラテン文字、数字、_ で、先頭は文字
studio/ok = OK
studio/cancel = キャンセル
studio/cand_failed = 失敗
studio/cand_none = スタジオが有効な間にシーンが組み立てられなかった:もう一度入ってください。
studio/cand_queued = 順番待ち
studio/edit_done = 完了
studio/error_no_target = 回答がどこにも行かない
studio/error_unknown_command = 不明なコマンド {0}
studio/exported = レイヤーを MOD「{0}」として書き出した:ゲームのコレクションに追加してください
studio/log_end = 終了
studio/log_text_ended = {0} が終わった
studio/log_text_exported = レイヤーを MOD {0} として書き出した
studio/log_text_failed = {0}:作成できなかった
studio/log_text_paused = 一時停止、{0} 行目
studio/log_text_scenario_created = シーン {1} の新しいシナリオ {0}
studio/log_text_scene_created = 新しいシーン {0}(シナリオ {1})
studio/log_text_shadowed = {0}:隠された({1})
studio/log_text_state = {0} = {1}
studio/map_export = レイヤーを MOD として書き出す
studio/new_scenario = + シーンの新しいシナリオ
studio/no_scenario = まだどのシナリオも動いていません。シーンに入るか、「シーン」タブで開始してください。
studio/prompt_edit_title = 新しいテキスト
studio/prompt_export_title = 新しい MOD の id
studio/prompt_scene_title = 新しいシーンの名前
studio/reason_failed = イベントを作成できなかった。SCENE ログを見てください
studio/reason_queued = 優先度 {0} で順番待ち
studio/reason_running = いま実行中
studio/reason_shadowed = 他の MOD かレイヤーにある同名のシナリオに隠されている
studio/run_failed = 開始できません:ダイアログボックスが使用中です
studio/scenario_created = レイヤーにシナリオ「{0}」を作成した:シーンに入り直すか開始してください
studio/scene_created = レイヤーにシーン「{0}」を作成した
studio/state_held = 停止
studio/state_idle = ダイアログなし
studio/step_needs_answer = 先にダイアログで回答を選んでください
studio/target_end = シナリオの終わり
studio/target_labels = ラベル
studio/target_scene = → シーン {0}
studio/target_scenes = シーン
studio/via_layer = レイヤーの新しいシーン
studio/via_scenario = {0} から
studio/map_here = 現在地
studio/map_no_exits = このシーンからどこかへ通じるシナリオはまだありません:「+ リンク」で出口を追加できます。
studio/checkpoint = チェックポイント
studio/checkpoint_save = 状態を記憶
studio/checkpoint_restore = チェックポイントに戻る
studio/checkpoint_saved = 状態を記憶した
studio/checkpoint_restored = チェックポイントに戻った
studio/checkpoint_none = 保存されたチェックポイントはありません
studio/log_text_checkpoint_saved = {0} のチェックポイント
studio/log_text_checkpoint_restored = {0} のチェックポイントに戻った
studio/drag_next_line = 別の行へドラッグすると、次にその行を実行します
studio/next_line_failed = この行からは会話を続けられません
studio/log_text_next_line = 次の行を {0} に移した
studio/reload_assets = リソース
studio/reload_assets_tip = ゲーム中に MOD かレイヤーの backgrounds/ に置いた背景を読み直す({0})
studio/map_assets_hint = 新しい背景を自分の MOD かレイヤーの backgrounds/({0})に置き、上のバーの「リソース」を押してください。隣に <background>_depth があればライティングに使われます。
studio/assets_reloaded = リソースを読み直した:背景 {0} 枚、新しいものなし
studio/assets_reloaded_new = リソースを読み直した:背景 {0} 枚、新規:{1}
studio/log_text_assets_reloaded = リソースを読み直した:背景 {0} 枚、新規 {1}
studio/background_current = 現在のシーンの背景
studio/backgrounds = 背景
studio/background_item = 背景 {0} · {1}
+167
View File
@@ -0,0 +1,167 @@
mod_scenario_studio_name = 시나리오 스튜디오
mod_scenario_studio_desc = 실행 중인 게임 옆에 열리는 도크. 재생 중인 시나리오를 일시 정지하고 한 단계씩 진행하며 그 자리에서 편집합니다: 중단점, 상태를 되돌리는 다시 시작, 모드나 게임별 레이어에 바로 반영하는 편집.
studio/title = 스튜디오
studio/mode_author = 작성자
studio/mode_novice = 초보자
studio/close = 스튜디오 닫기
studio/state_running = 실행 중
studio/state_paused = 일시 정지됨
studio/pause = ‖ 일시 정지
studio/step = ▶| 한 단계
studio/continue = ▶ 계속
studio/restart = ⟲ 다시 시작 ▾
studio/restart_scenario = 시나리오 다시 (되돌리기 없음)
studio/restart_rollback = 상태를 되돌려 시나리오 다시
studio/restart_scene = 장면 다시
studio/restart_from_label = 현재 라벨부터 계속
studio/crumb_scene = 장면
studio/crumb_scenario = 시나리오
studio/tab_now = 지금
studio/tab_scene = 장면
studio/tab_state = 상태
studio/tab_log = 로그
studio/tab_map = 지도
studio/edits_go_to = 편집은 "{0}" 레이어에 기록됩니다
studio/after_line = {0}번째 줄 뒤
studio/add_line = + 줄
studio/add_choice = + 선택지
studio/add_jump = + 장면으로 이동
studio/new_line_text = 새 줄
studio/new_choice_text = 새 선택지
studio/affects = 이 변경이 영향을 주는 곳
studio/overrides = 덮어씀
studio/pending = 대기 중인 변경: {0}
studio/no_pending = 변경 없음
studio/edit_text = 텍스트 편집
studio/apply = 적용 ⟲
studio/scope_own = 폴더
studio/scope_overlay = zip
studio/scope_layer = 레이어
studio/scope_readonly = 코드
studio/cand_running = 실행 중
studio/cand_skipped = 건너뜀
studio/cand_completed = 완료됨
studio/cand_shadowed = 가려짐
studio/cand_hint = 이 장면의 시나리오를 시작 순서대로: 각각이 왜 시작했거나 시작하지 않았는지.
studio/run_now = 실행
studio/reset_completed = "완료됨" 초기화
studio/log_scene = 장면
studio/log_skip = 건너뜀
studio/log_scenario = 시나리오
studio/log_stop = 정지
studio/log_edit = 편집
studio/state_hint = 값을 바꿔 다른 분기를 시험할 수 있습니다.
studio/map_from = 온 곳
studio/map_to = 여기서 나가는 곳
studio/map_go = 이동
studio/map_new_scene = + 새 장면
studio/map_link = + 연결
studio/node_here = 현재 위치
studio/node_visited = 방문함
studio/node_next = 출구
studio/node_new = 새로 만듦
studio/priority = 우선순위 {0}
studio/no_condition = 조건 없음
studio/one_run = 한 번만
studio/error_label_missing = 라벨 {0}을(를) 찾을 수 없음
studio/reason_completed = 한 번만, 이미 완료됨
studio/group_time = 시간
studio/group_quests = 퀘스트
studio/group_inventory = 인벤토리
studio/group_dialog_vars = 대화 변수
studio/group_completed = 완료된 시나리오
studio/state_day = 일
studio/state_hour = 시
studio/value_yes = 예
studio/log_text_enter = {0}에 들어감
studio/log_text_condition = {0}: 조건이 거짓
studio/log_text_completed = {0}: 이미 완료됨
studio/log_text_started = {0} 시작됨
studio/log_text_breakpoint = 중단점, {0}번째 줄
studio/log_text_applied = {0}: +{1} → {2}
studio/quote = "{0}"
studio/say_question = 질문
studio/say_line = 줄
studio/say_new = {0} · 새로 만듦
studio/moment_now = 지금 화면에
studio/moment_answers = 답변
studio/moment_next = 장면에서 다음
studio/moment_empty = 화면에 아무것도 없음: 실행 중인 시나리오가 없거나 서비스 줄에 멈춰 있습니다.
studio/outcome_scene = 장면으로 이동
studio/outcome_action = 액션
studio/outcome_end = 시나리오 끝
studio/outcome_continue = 대화가 이어짐
studio/outcome_broken = 아무 데도 가지 않음
studio/edit = 편집
studio/choose_target = 갈 곳 선택 ▾
studio/add_line_before = + 질문 앞에 줄
studio/add_line_after = + 뒤에 줄
studio/add_option = + 답변
studio/new_option_text = 새 답변
studio/next_waiting = {0}이(가) 차례를 기다림
studio/next_none = 이 장면에 더 대기 중인 것이 없음
studio/reason_condition_false = 헤더 조건이 거짓
studio/applied_to = "{0}"에 적용, 되돌려서 시나리오를 다시 시작함
studio/bad_name = 이름: 소문자 라틴 문자, 숫자, _로, 문자로 시작
studio/ok = 확인
studio/cancel = 취소
studio/cand_failed = 실패
studio/cand_none = 스튜디오가 켜져 있는 동안 장면이 구성되지 않았습니다: 다시 들어가세요.
studio/cand_queued = 대기 중
studio/edit_done = 완료
studio/error_no_target = 답변이 아무 데도 가지 않음
studio/error_unknown_command = 알 수 없는 명령 {0}
studio/exported = 레이어를 모드 "{0}"(으)로 내보냄: 게임 컬렉션에 추가하세요
studio/log_end = 끝
studio/log_text_ended = {0} 끝남
studio/log_text_exported = 레이어를 모드 {0}(으)로 내보냄
studio/log_text_failed = {0}: 만들 수 없음
studio/log_text_paused = 일시 정지, {0}번째 줄
studio/log_text_scenario_created = 장면 {1}의 새 시나리오 {0}
studio/log_text_scene_created = 새 장면 {0} (시나리오 {1})
studio/log_text_shadowed = {0}: 가려짐 ({1})
studio/log_text_state = {0} = {1}
studio/map_export = 레이어를 모드로 내보내기
studio/new_scenario = + 장면의 새 시나리오
studio/no_scenario = 아직 실행된 시나리오가 없습니다. 장면에 들어가거나 장면 탭에서 시작하세요.
studio/prompt_edit_title = 새 텍스트
studio/prompt_export_title = 새 모드의 id
studio/prompt_scene_title = 새 장면의 이름
studio/reason_failed = 이벤트를 만들 수 없음, SCENE 로그를 보세요
studio/reason_queued = 우선순위 {0}(으)로 대기 중
studio/reason_running = 지금 실행 중
studio/reason_shadowed = 다른 모드나 레이어의 같은 이름 시나리오에 가려짐
studio/run_failed = 시작할 수 없음: 대화 상자가 사용 중입니다
studio/scenario_created = 레이어에 시나리오 "{0}"을(를) 만들었습니다: 장면에 다시 들어가거나 시작하세요
studio/scene_created = 레이어에 장면 "{0}"을(를) 만들었습니다
studio/state_held = 멈춤
studio/state_idle = 대화 없음
studio/step_needs_answer = 먼저 대화에서 답변을 고르세요
studio/target_end = 시나리오 끝
studio/target_labels = 라벨
studio/target_scene = → 장면 {0}
studio/target_scenes = 장면
studio/via_layer = 레이어의 새 장면
studio/via_scenario = {0}에서
studio/map_here = 현재 위치
studio/map_no_exits = 아직 이 장면에서 어디로든 이어지는 시나리오가 없습니다: "+ 연결"로 출구를 추가하세요.
studio/checkpoint = 체크포인트
studio/checkpoint_save = 상태 기억
studio/checkpoint_restore = 체크포인트로 돌아가기
studio/checkpoint_saved = 상태를 기억했습니다
studio/checkpoint_restored = 체크포인트로 돌아왔습니다
studio/checkpoint_none = 저장된 체크포인트가 없습니다
studio/log_text_checkpoint_saved = {0}의 체크포인트
studio/log_text_checkpoint_restored = {0}의 체크포인트로 돌아감
studio/drag_next_line = 다른 줄로 끌어다 놓으면 다음에 그 줄을 실행합니다
studio/next_line_failed = 이 줄에서는 대화를 이어갈 수 없습니다
studio/log_text_next_line = 다음 줄을 {0}(으)로 옮김
studio/reload_assets = 리소스
studio/reload_assets_tip = 게임 중 모드나 레이어의 backgrounds/에 넣은 배경을 다시 읽습니다 ({0})
studio/map_assets_hint = 새 배경을 내 모드나 레이어의 backgrounds/({0})에 넣고 위쪽 막대의 "리소스"를 누르세요. 옆에 있는 <background>_depth는 조명에 쓰입니다.
studio/assets_reloaded = 리소스를 다시 읽었습니다: 배경 {0}개, 새것 없음
studio/assets_reloaded_new = 리소스를 다시 읽었습니다: 배경 {0}개, 새것: {1}
studio/log_text_assets_reloaded = 리소스 다시 읽음: 배경 {0}개, 새것 {1}개
studio/background_current = 현재 장면의 배경
studio/backgrounds = 배경
studio/background_item = 배경 {0} · {1}
+1 -1
View File
@@ -1,5 +1,5 @@
mod_scenario_studio_name = Студия сценариев
mod_scenario_studio_desc = Отладка и правка сценариев прямо во время игры: пауза, шаг, перезапуск, текущая строка, причины запуска сценариев, состояние игры, журнал и карта сцен. Режимы «Автор» и «Новичок».
mod_scenario_studio_desc = Панель рядом с запущенной игрой, которая ставит играющий сценарий на паузу, делает шаги и правит его на ходу: точки останова, перезапуск с откатом состояния, правки прямо в мод или в слой конкретной игры.
studio/title = Студия
studio/mode_author = Автор
studio/mode_novice = Новичок
+167
View File
@@ -0,0 +1,167 @@
mod_scenario_studio_name = Xưởng kịch bản
mod_scenario_studio_desc = Bảng gắn bên cạnh trò chơi đang chạy, cho tạm dừng, đi từng bước và chỉnh sửa kịch bản đang chơi: điểm ngắt, khởi động lại với hoàn tác trạng thái, chỉnh sửa trực tiếp vào mod hoặc lớp riêng của từng game.
studio/title = Xưởng
studio/mode_author = Tác giả
studio/mode_novice = Người mới
studio/close = Đóng xưởng
studio/state_running = đang chạy
studio/state_paused = đã tạm dừng
studio/pause = ‖ Tạm dừng
studio/step = ▶| Từng bước
studio/continue = ▶ Tiếp tục
studio/restart = ⟲ Khởi động lại ▾
studio/restart_scenario = Chạy lại kịch bản (không hoàn trạng thái)
studio/restart_rollback = Chạy lại kịch bản và hoàn trạng thái
studio/restart_scene = Vào lại cảnh
studio/restart_from_label = Tiếp tục từ nhãn hiện tại
studio/crumb_scene = cảnh
studio/crumb_scenario = kịch bản
studio/tab_now = Hiện tại
studio/tab_scene = Cảnh
studio/tab_state = Trạng thái
studio/tab_log = Nhật ký
studio/tab_map = Bản đồ
studio/edits_go_to = chỉnh sửa được ghi vào lớp "{0}"
studio/after_line = sau dòng {0}
studio/add_line = + Dòng
studio/add_choice = + Lựa chọn
studio/add_jump = + Đến cảnh
studio/new_line_text = Dòng mới
studio/new_choice_text = Lựa chọn mới
studio/affects = Thay đổi này ảnh hưởng đến
studio/overrides = ghi đè
studio/pending = Thay đổi đang chờ: {0}
studio/no_pending = Không có thay đổi
studio/edit_text = Sửa văn bản
studio/apply = Áp dụng ⟲
studio/scope_own = thư mục
studio/scope_overlay = zip
studio/scope_layer = lớp
studio/scope_readonly = mã
studio/cand_running = đang chạy
studio/cand_skipped = bỏ qua
studio/cand_completed = đã xong
studio/cand_shadowed = bị che
studio/cand_hint = Các kịch bản của cảnh này theo thứ tự khởi động: vì sao từng cái đã hoặc chưa bắt đầu.
studio/run_now = Chạy
studio/reset_completed = Đặt lại "đã xong"
studio/log_scene = cảnh
studio/log_skip = bỏ qua
studio/log_scenario = kịch bản
studio/log_stop = dừng
studio/log_edit = sửa
studio/state_hint = Có thể đổi các giá trị để thử nhánh khác.
studio/map_from = Đến từ
studio/map_to = Lối ra từ đây
studio/map_go = Đi
studio/map_new_scene = + Cảnh mới
studio/map_link = + Liên kết
studio/node_here = bạn ở đây
studio/node_visited = đã ghé
studio/node_next = lối ra
studio/node_new = mới
studio/priority = ưu tiên {0}
studio/no_condition = không điều kiện
studio/one_run = chạy một lần
studio/error_label_missing = không tìm thấy nhãn {0}
studio/reason_completed = chạy một lần, đã xong
studio/group_time = Thời gian
studio/group_quests = Nhiệm vụ
studio/group_inventory = Túi đồ
studio/group_dialog_vars = Biến hội thoại
studio/group_completed = Kịch bản đã xong
studio/state_day = ngày
studio/state_hour = giờ
studio/value_yes = có
studio/log_text_enter = đã vào {0}
studio/log_text_condition = {0}: điều kiện sai
studio/log_text_completed = {0}: đã xong
studio/log_text_started = {0} đã bắt đầu
studio/log_text_breakpoint = điểm dừng, dòng {0}
studio/log_text_applied = {0}: +{1} → {2}
studio/quote = "{0}"
studio/say_question = Câu hỏi
studio/say_line = Dòng
studio/say_new = {0} · mới
studio/moment_now = Đang trên màn hình
studio/moment_answers = Câu trả lời
studio/moment_next = Tiếp theo trong cảnh
studio/moment_empty = Không có gì trên màn hình: không kịch bản nào chạy hoặc đang dừng ở một dòng dịch vụ.
studio/outcome_scene = đi đến cảnh
studio/outcome_action = hành động
studio/outcome_end = hết kịch bản
studio/outcome_continue = hội thoại tiếp tục
studio/outcome_broken = không dẫn đến đâu
studio/edit = Sửa
studio/choose_target = Chọn nơi đến ▾
studio/add_line_before = + Dòng trước câu hỏi
studio/add_line_after = + Dòng sau
studio/add_option = + Câu trả lời
studio/new_option_text = Câu trả lời mới
studio/next_waiting = {0} đang chờ đến lượt
studio/next_none = Không còn gì xếp hàng trong cảnh này
studio/reason_condition_false = điều kiện ở đầu tệp sai
studio/applied_to = Đã áp dụng cho "{0}", kịch bản được khởi động lại và hoàn trạng thái
studio/bad_name = Tên: chữ Latin thường, chữ số và _, bắt đầu bằng chữ cái
studio/ok = OK
studio/cancel = Hủy
studio/cand_failed = thất bại
studio/cand_none = Cảnh chưa được dựng khi xưởng đang bật: hãy vào lại.
studio/cand_queued = đang xếp hàng
studio/edit_done = Xong
studio/error_no_target = câu trả lời không dẫn đến đâu
studio/error_unknown_command = lệnh không rõ {0}
studio/exported = Đã xuất lớp thành mod "{0}": hãy thêm nó vào bộ sưu tập game
studio/log_end = kết thúc
studio/log_text_ended = {0} đã kết thúc
studio/log_text_exported = đã xuất lớp thành mod {0}
studio/log_text_failed = {0}: không tạo được
studio/log_text_paused = đã tạm dừng, dòng {0}
studio/log_text_scenario_created = kịch bản mới {0} cho cảnh {1}
studio/log_text_scene_created = cảnh mới {0} (kịch bản {1})
studio/log_text_shadowed = {0}: bị che ({1})
studio/log_text_state = {0} = {1}
studio/map_export = Xuất lớp thành mod
studio/new_scenario = + Kịch bản mới cho cảnh
studio/no_scenario = Chưa có kịch bản nào chạy. Hãy vào một cảnh hoặc khởi động một kịch bản ở thẻ Cảnh.
studio/prompt_edit_title = Văn bản mới
studio/prompt_export_title = Id của mod mới
studio/prompt_scene_title = Tên cảnh mới
studio/reason_failed = không tạo được sự kiện, xem nhật ký SCENE
studio/reason_queued = xếp hàng với ưu tiên {0}
studio/reason_running = đang chạy
studio/reason_shadowed = bị che bởi kịch bản cùng tên của mod khác hoặc của lớp
studio/run_failed = Không thể bắt đầu: hộp thoại đang bận
studio/scenario_created = Đã tạo kịch bản "{0}" trong lớp: vào lại cảnh hoặc khởi động nó
studio/scene_created = Đã tạo cảnh "{0}" trong lớp
studio/state_held = dừng
studio/state_idle = không có hội thoại
studio/step_needs_answer = Hãy chọn một câu trả lời trong hội thoại trước
studio/target_end = Hết kịch bản
studio/target_labels = Nhãn
studio/target_scene = → cảnh {0}
studio/target_scenes = Cảnh
studio/via_layer = cảnh mới của lớp
studio/via_scenario = từ {0}
studio/map_here = Bạn ở đây
studio/map_no_exits = Chưa có kịch bản nào dẫn từ cảnh này đi đâu cả: "+ Liên kết" thêm một lối ra.
studio/checkpoint = Điểm kiểm tra
studio/checkpoint_save = Ghi nhớ trạng thái
studio/checkpoint_restore = Quay về điểm kiểm tra
studio/checkpoint_saved = Đã ghi nhớ trạng thái
studio/checkpoint_restored = Đã quay về điểm kiểm tra
studio/checkpoint_none = Chưa lưu điểm kiểm tra nào
studio/log_text_checkpoint_saved = điểm kiểm tra trong {0}
studio/log_text_checkpoint_restored = quay về điểm kiểm tra trong {0}
studio/drag_next_line = Kéo sang dòng khác để chạy dòng đó tiếp theo
studio/next_line_failed = Hội thoại không thể tiếp tục từ dòng này
studio/log_text_next_line = dòng tiếp theo chuyển sang {0}
studio/reload_assets = Tài nguyên
studio/reload_assets_tip = Đọc lại các phông nền được thả vào backgrounds/ của một mod hoặc của lớp trong lúc chơi ({0})
studio/map_assets_hint = Đặt phông nền mới vào backgrounds/ của mod bạn hoặc của lớp ({0}), rồi nhấn "Tài nguyên" trên thanh phía trên. Tệp <background>_depth bên cạnh dùng cho chiếu sáng.
studio/assets_reloaded = Đã đọc lại tài nguyên: {0} phông nền, không có gì mới
studio/assets_reloaded_new = Đã đọc lại tài nguyên: {0} phông nền, mới: {1}
studio/log_text_assets_reloaded = đã đọc lại tài nguyên: {0} phông nền, {1} mới
studio/background_current = Phông nền của cảnh hiện tại
studio/backgrounds = Phông nền
studio/background_item = phông nền {0} · {1}
+167
View File
@@ -0,0 +1,167 @@
mod_scenario_studio_name = 剧本工作室
mod_scenario_studio_desc = 停靠在运行中游戏旁边的面板:暂停、单步并编辑正在播放的剧本,支持断点、带状态回滚的重启,以及写入模组或游戏专属层的实时修改。
studio/title = 工作室
studio/mode_author = 作者
studio/mode_novice = 新手
studio/close = 关闭工作室
studio/state_running = 运行中
studio/state_paused = 已暂停
studio/pause = ‖ 暂停
studio/step = ▶| 单步
studio/continue = ▶ 继续
studio/restart = ⟲ 重启 ▾
studio/restart_scenario = 重新运行剧本(不回滚)
studio/restart_rollback = 回滚状态后重新运行剧本
studio/restart_scene = 重新进入场景
studio/restart_from_label = 从当前标签继续
studio/crumb_scene = 场景
studio/crumb_scenario = 剧本
studio/tab_now = 现在
studio/tab_scene = 场景
studio/tab_state = 状态
studio/tab_log = 日志
studio/tab_map = 地图
studio/edits_go_to = 修改写入"{0}"层
studio/after_line = 第 {0} 行之后
studio/add_line = + 台词
studio/add_choice = + 选项
studio/add_jump = + 前往场景
studio/new_line_text = 新台词
studio/new_choice_text = 新选项
studio/affects = 此修改影响
studio/overrides = 覆盖
studio/pending = 待应用的修改:{0}
studio/no_pending = 没有修改
studio/edit_text = 编辑文本
studio/apply = 应用 ⟲
studio/scope_own = 文件夹
studio/scope_overlay = zip
studio/scope_layer = 层
studio/scope_readonly = 代码
studio/cand_running = 运行中
studio/cand_skipped = 已跳过
studio/cand_completed = 已完成
studio/cand_shadowed = 被遮蔽
studio/cand_hint = 本场景的剧本按启动顺序排列:每个为何启动或没有启动。
studio/run_now = 运行
studio/reset_completed = 重置"已完成"
studio/log_scene = 场景
studio/log_skip = 跳过
studio/log_scenario = 剧本
studio/log_stop = 停止
studio/log_edit = 编辑
studio/state_hint = 可以修改这些值来测试另一个分支。
studio/map_from = 来自
studio/map_to = 从这里出发
studio/map_go = 前往
studio/map_new_scene = + 新场景
studio/map_link = + 连接
studio/node_here = 你在这里
studio/node_visited = 已访问
studio/node_next = 出口
studio/node_new = 新
studio/priority = 优先级 {0}
studio/no_condition = 无条件
studio/one_run = 仅一次
studio/error_label_missing = 找不到标签 {0}
studio/reason_completed = 仅一次,已完成
studio/group_time = 时间
studio/group_quests = 任务
studio/group_inventory = 背包
studio/group_dialog_vars = 对话变量
studio/group_completed = 已完成的剧本
studio/state_day = 日
studio/state_hour = 时
studio/value_yes = 是
studio/log_text_enter = 进入了 {0}
studio/log_text_condition = {0}:条件不成立
studio/log_text_completed = {0}:已完成
studio/log_text_started = {0} 已启动
studio/log_text_breakpoint = 断点,第 {0} 行
studio/log_text_applied = {0}:+{1} → {2}
studio/quote = "{0}"
studio/say_question = 问题
studio/say_line = 台词
studio/say_new = {0} · 新
studio/moment_now = 当前画面
studio/moment_answers = 回答
studio/moment_next = 场景中的下一项
studio/moment_empty = 画面上什么都没有:没有剧本在运行,或者停在一条服务行上。
studio/outcome_scene = 前往场景
studio/outcome_action = 动作
studio/outcome_end = 剧本结束
studio/outcome_continue = 对话继续
studio/outcome_broken = 无去向
studio/edit = 编辑
studio/choose_target = 选择去向 ▾
studio/add_line_before = + 在问题前加台词
studio/add_line_after = + 在后面加台词
studio/add_option = + 回答
studio/new_option_text = 新回答
studio/next_waiting = {0} 正在排队等候
studio/next_none = 本场景没有其他排队项
studio/reason_condition_false = 头部条件不成立
studio/applied_to = 已应用到"{0}",剧本已回滚并重启
studio/bad_name = 名称:小写拉丁字母、数字和 _,以字母开头
studio/ok = 确定
studio/cancel = 取消
studio/cand_failed = 失败
studio/cand_none = 工作室开启期间该场景没有组装:请重新进入。
studio/cand_queued = 排队中
studio/edit_done = 完成
studio/error_no_target = 回答无去向
studio/error_unknown_command = 未知命令 {0}
studio/exported = 层已导出为模组"{0}":把它加入游戏合集
studio/log_end = 结束
studio/log_text_ended = {0} 已结束
studio/log_text_exported = 层已导出为模组 {0}
studio/log_text_failed = {0}:无法创建
studio/log_text_paused = 已暂停,第 {0} 行
studio/log_text_scenario_created = 场景 {1} 的新剧本 {0}
studio/log_text_scene_created = 新场景 {0}(剧本 {1})
studio/log_text_shadowed = {0}:被遮蔽({1})
studio/log_text_state = {0} = {1}
studio/map_export = 把层导出为模组
studio/new_scenario = + 为场景新建剧本
studio/no_scenario = 还没有运行过剧本。进入一个场景,或在"场景"标签页启动一个。
studio/prompt_edit_title = 新文本
studio/prompt_export_title = 新模组的 id
studio/prompt_scene_title = 新场景的名称
studio/reason_failed = 无法创建事件,请查看 SCENE 日志
studio/reason_queued = 以优先级 {0} 排队
studio/reason_running = 正在运行
studio/reason_shadowed = 被其他模组或层中同名的剧本遮蔽
studio/run_failed = 无法启动:对话框正忙
studio/scenario_created = 已在层中创建剧本"{0}":重新进入场景或启动它
studio/scene_created = 已在层中创建场景"{0}"
studio/state_held = 停住
studio/state_idle = 无对话
studio/step_needs_answer = 请先在对话中选择一个回答
studio/target_end = 剧本结束
studio/target_labels = 标签
studio/target_scene = → 场景 {0}
studio/target_scenes = 场景
studio/via_layer = 层中的新场景
studio/via_scenario = 来自 {0}
studio/map_here = 你在这里
studio/map_no_exits = 还没有剧本从这个场景通往别处:"+ 连接"可添加出口。
studio/checkpoint = 检查点
studio/checkpoint_save = 记住状态
studio/checkpoint_restore = 回到检查点
studio/checkpoint_saved = 已记住状态
studio/checkpoint_restored = 已回到检查点
studio/checkpoint_none = 没有保存的检查点
studio/log_text_checkpoint_saved = {0} 中的检查点
studio/log_text_checkpoint_restored = 回到 {0} 中的检查点
studio/drag_next_line = 拖到另一行,让它下一个执行
studio/next_line_failed = 对话无法从这一行继续
studio/log_text_next_line = 下一行已移到 {0}
studio/reload_assets = 资源
studio/reload_assets_tip = 重新读取游戏期间放入模组或层 backgrounds/ 中的背景({0})
studio/map_assets_hint = 把新背景放进你的模组或层的 backgrounds/({0}),然后按上方栏中的"资源"。旁边的 <background>_depth 用于光照。
studio/assets_reloaded = 已重新读取资源:{0} 个背景,没有新的
studio/assets_reloaded_new = 已重新读取资源:{0} 个背景,新增:{1}
studio/log_text_assets_reloaded = 已重新读取资源:{0} 个背景,{1} 个新的
studio/background_current = 当前场景的背景
studio/backgrounds = 背景
studio/background_item = 背景 {0} · {1}
+1 -1
View File
@@ -3,7 +3,7 @@
"name": "Scenario Studio",
"version": "0.1.0",
"author": "ct",
"description": "In-game scenario debugger and live editor: a non-modal dock over the running game with pause, step, breakpoints and restarts (with state rollback), the current scenario line, scene candidates with the reason they did or did not start, editable game state, an event log and the scene map. Edits go into folder mods or into a per-game studio layer over read-only mods, which can be exported as a mod; backgrounds dropped into a mod or the layer during the game are picked up with the \"Resources\" button of the transport bar. Author mode shows the script, novice mode the story moment.",
"description": "A dock beside the running game that pauses, steps and edits the playing scenario: breakpoints, restarts with state rollback, live edits into a mod or a per-game layer.",
"category": "tools, editor",
"sources": [
"src/**/*.cs"
+2 -3
View File
@@ -29,13 +29,12 @@ namespace Cthangover.Mods.ScenarioStudio
var layer = new StudioLayer(args);
layer.Mount();
var root = (Godot.Engine.GetMainLoop() as SceneTree)?.Root;
root?.CallDeferred("add_child", new StudioLive(layer));
ModRoot.AddDeferred(new StudioLive(layer));
if (!args.Contains(Flag))
return;
GameLogger.Log("UI", "Scenario studio: --studio given, the dock opens with the first scene");
root?.CallDeferred("add_child", new StudioAutoOpenNode());
ModRoot.AddDeferred(new StudioAutoOpenNode());
}
}
}
+3 -22
View File
@@ -2,6 +2,7 @@ namespace Cthangover.Mods.ScenarioStudio
{
using System.Text;
using Cthangover.Core.UI.Theming;
using Cthangover.Mods.Interface.Theming;
using Cthangover.Mods.Dialog.Scenarios;
using Godot;
@@ -15,29 +16,9 @@ namespace Cthangover.Mods.ScenarioStudio
/// </summary>
public static class StudioSyntax
{
/// <summary>
/// Highlighter for the inline text editor with the same palette: every
/// registered command word (plus <c>select</c>/<c>option</c>) gold, quoted
/// text ink, comments faint, <c>:labels</c> teal.
/// </summary>
/// <summary>Uses the same scenario syntax as the full editor and embedded command fields.</summary>
public static CodeHighlighter CreateHighlighter()
{
var highlighter = new CodeHighlighter
{
NumberColor = UiTokens.Body,
SymbolColor = UiTokens.Muted,
FunctionColor = UiTokens.Body,
MemberVariableColor = UiTokens.Body,
};
foreach (var command in ScenarioCommandStrategyFactory.GetAllCommandNames())
highlighter.AddKeywordColor(command, UiTokens.AccentBright);
highlighter.AddKeywordColor("select", UiTokens.AccentBright);
highlighter.AddKeywordColor("option", UiTokens.AccentBright);
highlighter.AddColorRegion("\"", "\"", UiTokens.Ink);
highlighter.AddColorRegion("#", "", UiTokens.Faint, true);
highlighter.AddColorRegion(":", " ", UiTokens.TypeTarget, true);
return highlighter;
}
=> SourceSyntax.CreateScenarioHighlighter(ScenarioCommandStrategyFactory.GetAllCommandNames());
public static string ToBbCode(string line)
{
@@ -35,7 +35,7 @@ namespace Cthangover.Mods.ScenarioStudio.Tests.Live
driverQueued = true;
GameLogger.Log("TEST", $"StudioLiveTestInitializer: activating studio live test, shots='{shots ?? ""}'");
(Godot.Engine.GetMainLoop() as SceneTree)?.Root?.CallDeferred("add_child", new StudioLiveDriverNode(shots));
ModRoot.AddDeferred(new StudioLiveDriverNode(shots));
}
}
}