Update characters_editor implementation, assets and documentation

This commit is contained in:
cthangover committed 2026-10-31 15:28:49 +03:00
1 parent c975b5ae86
commit d7250b26b2
28 files changed
+429 -73

No files matched your search

+14 -6
View File
@@ -6,9 +6,9 @@ Characters Editor 在游戏运行时编辑模组的角色:各种语言的名
## 一次编辑及其在游戏中的结果
RPG Plus 里村庄的英雄是模组 `rpg_demo_game` 的角色 `rpg_hero`。顶部选择该模组,选**英雄**,输入新的英文名称,按**保存**(Ctrl+S):
RPG Plus 里村庄的英雄是模组 `rpg_plus_game` 的角色 `rpg_hero`。顶部选择该模组,选**英雄**,输入新的英文名称,按**保存**(Ctrl+S):
![rpg_demo_game 上的「角色」窗口:列表中有 Aldric · rpg_hero、史莱姆 · rpg_slime、狼 · rpg_wolf;rpg_hero 的表单,名称键 rpg_demo/character/hero,文本 (en) Aldric,其余六种语言未变,立绘 characters/village/hero 及其图片,行走图(RPG)为空,等级 1,生命 24,攻击 6,防御 0,行动点 1,经验 0,招募几率 0。状态行:「已保存:模组 rpg_demo_game 中 0 个文件、1 条文本;游戏已重新读取数据」。](assets/editor-saved.jpg)
![rpg_plus_game 上的「角色」窗口:列表中有 Aldric · rpg_hero、史莱姆 · rpg_slime、狼 · rpg_wolf;rpg_hero 的表单,名称键 rpg_demo/character/hero,文本 (en) Aldric,其余六种语言未变,立绘 characters/village/hero 及其图片,行走图(RPG)为空,等级 1,生命 24,攻击 6,防御 0,行动点 1,经验 0,招募几率 0。状态行:「已保存:模组 rpg_plus_game 中 0 个文件、1 条文本;游戏已重新读取数据」。](assets/editor-saved.jpg)
只有模组 `locale/en.properties` 的英文一行变了。紧接着角色面板上的队伍成员:
@@ -21,7 +21,7 @@ RPG Plus 里村庄的英雄是模组 `rpg_demo_game` 的角色 `rpg_hero`。顶
- **Id** —— 角色的 id;剧本、队伍、战斗和地图都靠它找到角色。
- **名称** —— 翻译键和模组每种语言的一行文字。
- **立绘** —— 卡片和面板上的图片;**…** 打开网格挑选。
- **行走图(RPG)** —— 角色在 RPG 地图上的行走图(3 帧 × 4 朝向)。RPG 地图编辑器会把带行走图的角色列为可放置对象。
- **行走图(RPG)** —— 角色在 RPG 地图上的行走图(3 帧 × 4 朝向)。
- **等级**、**生命**、**攻击**、**防御**、**行动点**、**经验** —— 角色的战斗数值。
- **招募几率** —— 0 到 100:击败后收编该角色的几率(见 Recruiting)。
- **行为**和**行动** —— 角色怎么打,以及有哪些战斗行动。
@@ -30,12 +30,20 @@ RPG Plus 里村庄的英雄是模组 `rpg_demo_game` 的角色 `rpg_hero`。顶
工具栏:**新建**(Ctrl+N)、**复制**(Ctrl+D)、**删除**、**撤销**/**重做**(Ctrl+Z / Ctrl+Y)、**保存** —— 只写改动的文件;文字进入模组的本地化文件。
## 哪些角色可以编辑
## 其他模组的角色
列表里是所选模组自己文件中的角色;只提供以文件夹安装的模组。其他模组的角色不在列表里,它们的文件也绝不会被写入。想改这样的角色,可以在自己的模组里带上相同的 id 并声明对属主的依赖,或者用补丁添加字段。
列表显示所选模组的角色。勾选 **Entries of other mods** 可加入其依赖模组的角色,并标记 `↗ 所有者`。编辑这类角色时,会在你的模组中写入补丁 `patches/character/<你的模组>.json`,只包含你改动的值;所有者的文件逐字节保持不变。**Reset to inherited** 删除补丁,字段旁的 **↺** 删除你对该字段的值。只能写入以文件夹形式安装的模组。
## 队伍区块
表单下方的队伍区块显示两项内容:
- **队长(Party leader)** —— 玩家在 RPG 地图上以其行走图行动的角色。队长是游戏的 `stats.player` 所指的角色;若没有,则是战斗队伍中的第一个角色。该区块会对当前角色显示「Party leader」或「Not the party leader」。目前还没有设置新队长的按钮:这是合集的设置,通过模组管理器修改。
- **计算出的战斗数值** —— 角色有 `Stats` 时,列出每个属性及其战斗数值。提示说明生命、攻击和防御来自属性,因此应编辑属性而不是这些字段。带 `Stats` 的角色,**Health**、**Attack** 和 **Defence** 为只读。没有 `Stats` 时,区块会说明,战斗数值即上方字段的值。
- **对话时加入队伍** — 勾选后写入加入剧本 `scenarios/<你的模组>/party/<id>.scenario`:它把标志 `<id>_joined` 设为 1,并把角色加入队伍(`action party.add`)。取消勾选会立即删除该文件。队长从不加入(复选框已禁用)。要让角色在地图上成为同伴,请在 RPG 地图编辑器的「游戏角色」标签页放置它:与放置的角色对话即可加入,该角色离开原来的格子,同伴跟在主角身后移动。
## 出问题了怎么办
1. **改了生命或攻击没有效果。** 游戏会从属性推算数值,RPG Plus 对自己的队伍就是这样做的。
2. **角色不在 RPG 地图编辑器的「角色」标签页。** 该标签页列出带战斗属性的角色;任何行走图都可以从 Appearance 标签页放置。
2. **角色不在 RPG 地图编辑器的调色板中。** 「游戏角色」标签页只列出有行走图(**Charset**)的角色,没有行走图就无法放置。「角色」标签页(Actors)列出的是 `rpg_object` 的 actor 对象,不是游戏里的角色。
3. **模组列表是空的。** 打包模组不能编辑。