从 0.10 迁移
更新之前,请备份你的 Typewriter pages 文件夹和 plugins/Typewriter/ 数据。条目会按原样读取:现有页面可以加载,但有若干行为会有所不同。
已移除
| 内容 | 替代方案 |
|---|---|
Dungeon Instance 上的 aggroMultiplier | 无。它从未被读取,现已移除。 |
/typewriter dungeon start | /typewriter dungeon enter <instance>。 |
partyLobbyArtifact 链接 | 无。它已不再使用:大厅在重载或重启后不再恢复。条目 Dungeon Party Lobby Artifact 仍可加载,但已失效,计划在后续版本中移除。 |
| 加入大厅时在 MMOCore 或 Parties 中创建队伍 | 队伍是只读的。玩家的整支队伍会与其一起加入大厅。 |
行为变化
- Dungeon NPC Instance 上的
allowedDungeonIds。 它现在是对副本实例的引用列表(字段名相同,存储的数据相同,所以旧页面可以加载)。空列表现在表示所有副本的每一次运行。 在 0.10 中,NPC 根本不会显示。包含 id 的列表,只要这些 id 仍然存在,就继续有效。group的默认值现在是该次运行的成员。 - Dungeon NPC Instance 会显示。 在 0.10 中它从不出现。如果你曾用锚定在其他扩展 NPC 上的箱子作为变通办法,现在可以改为锚定在这个上。
- 分类槽位上的
criteria按玩家评估。在 0.10 中,任何一个条件都会为所有人锁定该槽位。请移除你曾用作硬性锁定的条件。 - 副本的
criteria和damageMultiplier现在会生效(damageMultiplier默认为 1)。 cooldownSeconds:0或留空表示没有时间限制。- 房间现在会触发。 Dungeon Room 的
onEnter、onLeave、修饰器和条件会执行。重叠的房间会全部进入,priority较高的先进入。verticalMargin是新增的,默认值为 2.0 格:现在对每个房间,玩家从最低节点下方 2 格到最高节点上方 2 格都算在内部。将其设为 0 可保持你原来的精确高度。较高的房间(大厅、塔楼)可能需要更大的值,这样跳跃或乘坐载具时仍在房间内。 - 事实。
indungeon和indungeon_instance返回真实的值。 - 统计会被写入。 它们从零开始。
- 隔离。 新的
isolation字段默认为AUTO:有 Advanced Slime Paper 时为SLIME_CLONE,否则为WORLD_PER_RUN(templateWorld的副本,运行结束后删除)。在 0.10 中,普通 Paper 直接使用模板世界本身,并从中移除所有非玩家实体。若要继续共享世界,请设置SHARED_WORLD_SLOTS并在每个槽位中构建副本。参见运行与世界隔离。 - 队伍菜单由其
dungeonInstance字段选择,为空的菜单服务所有没有被其他菜单指定的副本。以前是“找到的第一个菜单”。 - Loot Chest Trigger 的
ONCE是每次运行一次,而不是直到服务器重启。 - 如果链接了
runtimeArtifact,运行可以在重载后保留(否则使用runs.json)。服务器重启则会结束它们。 - Dungeon Enter 和
/typewriter dungeon enter会检查分组人数、条件、进入费用和运行数量上限。 - 扩展的怪物(新增):除非你添加 Dungeon Mob Spawn 条目,否则不会创建任何怪物。
新的 snippet 与字段
玩家在菜单、大厅、侧边栏、战利品箱和启动拒绝中读到的所有文本现在都是 Typewriter 的 snippet (content.dungeon_menu., content.dungeon_lobby., content.dungeon_run.sidebar., content.dungeon_chest., content.dungeon_launch.). 其默认值就是扩展原本显示的文本,因此在你编辑之前不会有任何变化。列表见索引。 管理命令的回复同样是 snippet(content.dungeon_command.)。
有两组新字段,其默认值保持旧的行为:
- Dungeon Instance 上的
lobbyIdleKickSeconds(默认120,即以前固定的 2 分钟)。 - Loot Chest Trigger 上的:
triggerSoundVolume、triggerSoundPitch、triggerParticleCount、triggerParticleSpread、triggerParticleSpeed(默认值为1、1、30、0.5、0.1)。broadcastMessage现在接受颜色代码。
数据兼容性
- 运行日志可读取版本 1 到 3。当其中没有生成型运行时,以版本 2 写入;一旦有了生成型运行,就以版本 3 写入(同时增加可选的
mobs和mobsOwed列表)。因此,只有在没有保存过生成型运行时,回退到旧构建才是安全的;使用过生成型副本之后请不要降级。无法读取的 artifact 绝不会被覆盖。 - 房间模板的
MarkerKind列表在末尾增加了NPC和MOB。现有的房间模板保持其标识,不发生变化。 - 实体条目
dungeon_npc_instance的 id 不变。
检查清单
- 备份你的页面。
- 更新 JAR 并启动服务器。阅读日志,查看关于缺少
runtimeArtifact或队伍菜单的警告。 - 检查每个副本的
isolation。 - 复查你的 NPC 实例上的
allowedDungeonIds。 - 复查分类槽位上的
criteria以及房间上的verticalMargin。 - 替换所有对
/typewriter dungeon start的使用。