跳到主要内容

MMOItems

在任务中发放、统计和追踪 MMOItems 物品,并提供分页的动态物品提示。

付费v2.4RPG 与成长

概述​

MMOItems 将 MMOItems 插件与 TypeWriter 连接起来。你通过 MMOItems 的 type(例如 SWORD)和 id 来选择一件物品,TypeWriter 就可以给予它、收取它、统计它,或者在玩家制作、使用、装备它或向其镶嵌宝石时作出响应。

该扩展还附带一个 Advanced Tooltip System(高级提示框系统)。它会以发送给玩家的数据包形式,实时改写 MMOItems 物品的 lore,因此一件物品可以显示多个页面、实时的“需求已满足”标记,以及与另一件物品的属性对比。存储的物品本身从不会被更改。

一切都在网页面板中配置:物品类型和 id 会根据你的 MMOItems 配置给出建议。

功能​

  • 给予和移除物品 — 向单个玩家或整个组发放或收取 MMOItems 物品,来源可以是列表或 fact。
  • 物品计数 — 一个 fact 统计物品栏(包括盔甲、副手和光标上的物品)和/或主手中匹配的物品。
  • 使用事件和目标 — 响应右键点击或消耗 MMOItems 物品。
  • 制作事件和目标 — 响应在 MMOItems 制作站中制作的物品,可选择按制作站过滤。
  • 宝石事件和目标 — 响应向物品镶嵌的宝石,可按目标物品和宝石过滤。
  • 装备目标 — 统计在盔甲槽位中穿戴的 MMOItems 部件。
  • 技能施放目标 — 统计 MMOItems 技能的施放次数。
  • 持有物品目标 — 当玩家持有足够数量的指定物品时完成,并带有完成时的修改器。
  • 物品变量 — 在任何需要物品的地方使用 MMOItems 物品。
  • 高级提示框 — 多页 lore、需求标记、属性对比和分类图标。

安装​

  1. 安装 MMOItems 及其库 MythicLib。如果你希望提示框系统的需求标记能检查职业、等级和专业,也请安装 MMOCore。
  2. 安装 TypeWriter 官方的 Quest 扩展(目标需要它)。
  3. 从商店获取该扩展(见上方摘要面板中的按钮),并将 JAR 放入 plugins/Typewriter/extensions/。
  4. 重启服务器。TypeWriter 0.9 依赖 PacketEvents,提示框系统用它来改写物品 lore。

快速上手​

当玩家在炼金站制作药水时,奖励他们一把剑:

  1. 在 TypeWriter 网页面板中,打开一个 sequence 页面,添加一个 Give MMOItem 动作。
  2. 让 items 保持为空。设置 item,填入 type(例如 SWORD)和 id(例如 STEEL_BLADE),并将 amount 设为 1。
  3. 打开一个 static 页面,添加一个 Craft Objective。填写 quest、display、amount,并在 fact 中设置一个用于保存进度的持久 fact。
  4. 在 items 中添加所制作的 MMOItems 物品(留空表示任意物品),如有需要,在 stationIds 中填写 MMOItems 制作站的 id。
  5. 将 onComplete 设为 Give MMOItem 动作,然后发布。

如果只想响应一次而不追踪进度,请改用 Craft Event,并在其 triggers 中链接 Give 动作。

创造模式

事件和提示框会忽略处于创造模式的玩家。请使用生存或冒险模式的玩家进行测试。

工作原理​

物品匹配会比较 MMOItems 的 type 和 id,忽略大小写。type 和 id 为空时匹配任意 MMOItems 物品。不是 MMOItems 的物品永远不会匹配。

基于 fact 字段的目标(制作、使用、装备、宝石、技能施放、打开工作台)会把进度写入持久(可缓存)的 fact,并在达到 amount 时触发一次 onComplete。

高级提示框​

在 manifest 页面上添加一个 Advanced Tooltip System 条目并发布。它会作用于物品栏、快捷栏和容器中的每一件 MMOItems 物品,对所有非创造模式的玩家生效。

仅限生存和冒险

分页和高级 lore 仅在生存和冒险模式下生效。在创造模式下,会原样显示 MMOItems 的原始 lore(包括标签),因为创造模式客户端会把物品按其显示的样子发回,改写 lore 会永久改变真实物品。

如果系统被禁用、overrideDefaultLore 关闭或没有发布条目,标签会被移除,整个 lore 保持在同一页。

编辑你的 MMOItems 物品的 lore(在 MMOItems 物品编辑器或其配置中),并添加以下标签:

标签效果
<page_break>开始新的一页。空页面会被丢弃。
<category_image>被替换为 categoryImages 中为该物品类型设置的图标。
<pagination_indicator>被替换为 paginationIndicator。
<comparison_indicator>被替换为 comparisonIndicator。
<requirement_met> 和 <requirement_not_met>两者只会显示其中一个,分别使用 requirementMetSymbol 或 requirementNotMetSymbol。
<comparison_value> 和 <comparison_sign>与对比基准物品的属性差值,以及在为正数时显示的 +。

翻页和对比由按键驱动,通过 paginationKeybind(默认 SWAP_OFFHAND,即 F 键)和 comparisonKeybind(默认 SNEAK)设置。可接受的值有 SWAP_OFFHAND、DROP、SNEAK、SHIFT_LEFT、SHIFT_RIGHT、LEFT_CLICK、RIGHT_CLICK 和 MIDDLE_CLICK。

  • 在 MMOItems 物品上按下翻页键,总会取消原版操作(交换、丢弃、点击)以避免意外,即使对于只有一页的物品也是如此。页面会循环回到第 1 页,两次按键之间有短暂的冷却。
  • 在某件物品上按下对比键,会将它设为对比基准。在同一件物品上再次按下则会清除。只会对比相同 MMOItems 类型的物品,并且基准会在物品栏关闭时被清除。
  • 需求会对照 MMOCore 数据进行检查:等级、职业、专业等级和权限。只要有任何一项需求不满足,所有 <requirement_not_met> 都会显示。

目标显示格式​

任务追踪器中目标的那一行并未硬编码,而是从在 plugins/Typewriter/snippets.yml 中编辑的 TypeWriter snippet 读取。占位符:<display>(目标的 display 字段)、<current> 和 <required>;PlaceholderAPI 占位符同样会被解析。

Snippet使用者默认值
advancedQuest.displayCraft、Use、Equip、Gem Stone、Ability Cast 和 Open Crafting Table 目标(进行中)<display> (<current>/<required>),灰色调
advancedQuest.completed相同的目标,达到 amount 后✔,随后是带删除线的 <display> 和进度
mmoitems.countObjective.displayMmoitems Count Objective,进行中<display> (<current>/<required>),灰色调
mmoitems.countObjective.completed相同的目标,达到 amount 后绿色带删除线的 <display>,随后是进度

这两个 advancedQuest.* 键与其他 BTC 目标类扩展共用:一次编辑即可改变它们全部的样式。

条目​

16 个条目,由扩展源码生成。

动作3
事件3
目标7
事实1
变量1
清单1

故障排查​

面板中的物品类型或 id 列表为空。 这些列表来自正在运行的服务器的 MMOItems 配置。请确保 MMOItems 已加载,并且该类型至少有一个模板,然后在面板中重新打开该页面。

Give MMOItem 没有任何效果。 该动作会从控制台运行 mmoitems give <type> <id> <player> <amount>。未知的 type 会静默跳过该物品,因此请检查类型的拼写。如果设置了 fact,则只会给出由该 fact 提供的物品(并且在填写了 item / items 时还需要与之匹配),数量取动作的 amount。

Remove MMOItem 没有收走任何东西。 默认情况下只扫描物品栏(checkInventory 开启,checkHand 关闭)。物品栏扫描包括盔甲、副手和光标。开启 checkHand 可先从主手收取。

制作目标始终没有进展。 默认只统计即时配方和制作队列。detectUpgradeRecipe 虽然存在,但当前代码从不统计升级配方的结果。同时请检查制作站 id(stationIds,会与旧版的 stationId 合并),以及 fact 中是否链接了持久 fact。

在创造模式下事件和目标不会触发。 使用、制作和宝石事件会对创造模式的玩家提前返回,并且提示框系统对他们是禁用的。请在生存模式下测试。

提示中的标签显示为文本,或页面不切换。 先确认玩家不在创造模式,该模式下 lore 保持原样。只有在已发布的 Advanced Tooltip System 条目中 isEnabled 和 overrideDefaultLore 都开启时页面才会切换;否则标签会被移除,lore 保持在同一页。如果默认的 F 键与其他插件冲突,请在 paginationKeybind 中选择其他按键。

需求标记始终显示为已满足。 该检查读取的是 MMOCore 的玩家数据。没有 MMOCore(或玩家没有档案)时,检查会回退为“已满足”。

相关扩展​

  • MMOCore — 同一套 Phoenix Development RPG 套件中的职业、专业和技能。
  • MMO Inventory — MMOInventory 集成,可用作 Give 和 Remove 动作的提供物品的 fact。