跳到主要内容

从 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 不变。

检查清单​

  1. 备份你的页面。
  2. 更新 JAR 并启动服务器。阅读日志,查看关于缺少 runtimeArtifact 或队伍菜单的警告。
  3. 检查每个副本的 isolation。
  4. 复查你的 NPC 实例上的 allowedDungeonIds。
  5. 复查分类槽位上的 criteria 以及房间上的 verticalMargin。
  6. 替换所有对 /typewriter dungeon start 的使用。