跳到主要内容

MMO Inventory

检查放在自定义 MMOInventory 槽位中的 MMOItems,作为 TypeWriter 事实。

免费v0.7集成
依赖TypeWriter0.9Quest (TypeWriter extension)MMOInventoryMMOItemsMythicLib

概述​

MMO Inventory 将 MMOInventory 与 TypeWriter 连接起来。MMOInventory 添加了位于原版物品栏之外的自定义装备槽位(饰品、披风、神器等)。TypeWriter 自身无法看到这些槽位:本扩展填补了这一空白。

它只提供一个可读取的 fact。这个 fact 回答一个问题:该玩家当前是否在你的某个自定义 MMOInventory 物品栏中持有你列出的 MMOItems?之后你可以把这个 fact 用作对话、任务、audience 或任何接受条件(criteria)的条目的条件,例如仅对佩戴某件神器的玩家解锁某个对话选项。

只识别 MMOItems。物品是通过其 MMOItems 的 type 和 ID 来匹配的,而不是通过名称或材质。

功能​

  • 识别自定义槽位 — 读取 MMOInventory 中某个具名自定义物品栏里存放的物品,而不是原版物品栏。
  • 按类型和 ID 匹配 — 通过 TYPE:ID 组合来识别 MMOItems,例如 ACCESSORY:RING_OF_FIRE。
  • 物品数量 — 每件物品都可以要求一个最小数量,写作 TYPE:ID:amount。
  • 同时检查多件物品 — 想列多少件都可以,用逗号分隔。
  • 任一或全部 — requireAllItems 决定只需一件匹配即可,还是列出的每一件都必须具备。
  • 可作为条件使用 — 该 fact 返回 1 或 0,可直接用于任何条件(criteria)。

安装​

  1. 在服务器上安装 MMOInventory、MMOItems 及其所需的库 MythicLib。
  2. 确保已安装 TypeWriter 官方的 Quest 扩展:MMO Inventory 依赖它。
  3. 将 MMO Inventory 的 JAR 放入 plugins/Typewriter/extensions/。
  4. 重启服务器。
  5. 在 MMOInventory 的配置中定义你的自定义物品栏。你在那里为物品栏起的名称,就是你将在面板中使用的名称。

快速上手​

仅对在 accessories 物品栏中佩戴特定戒指的玩家解锁某个对话选项:

  1. 在 TypeWriter 网页面板中,打开一个 static 页面,添加一个 Check Item Fact 条目。
  2. 将 inventoryName 设为 MMOInventory 中自定义物品栏的名称,例如 accessories。
  3. 将 itemsToCheck 设为 ACCESSORY:RING_OF_FIRE。若要检查多件物品,用逗号分隔:ACCESSORY:RING_OF_FIRE, ACCESSORY:AMULET:2。
  4. 如果一件匹配即可,请保持 requireAllItems 关闭;若要求列表中的每一件都具备,则将其开启。
  5. 在对话选项(或任何带有条件的条目)上,添加一个使用此 fact、值为 1 的条件。
  6. 点击 Publish(发布),并用一位在该物品栏中装备了该物品的玩家进行测试。
itemsToCheck 的格式

每个片段为 TYPE:ID(数量为 1)或 TYPE:ID:amount。类型和 ID 不区分大小写。不符合此格式的片段会被静默忽略;如果没有剩余的有效片段,该 fact 返回 0。

工作原理​

扩展会在运行时读取 MMOInventory 插件。只有带有 MMOItems 数据的物品才会被计数,同一物品的多个堆叠会先相加,再与所要求的数量进行比较。

条目​

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

事实1

故障排查​

该 fact 始终为 0。 只要缺少任何一项,扩展就会返回 0:inventoryName 或 itemsToCheck 为空、MMOInventory 插件未加载,或物品栏为空。请按此顺序逐一检查。

日志显示 “Inventory 'x' not found”。 inventoryName 中的名称与 MMOInventory 中定义的任何自定义物品栏都不匹配。请按 MMOInventory 配置中显示的名称原样复制。

控制台中出现 “Error accessing MMOInventory”。 扩展在运行时通过 API 与 MMOInventory 通信。此错误意味着已安装的 MMOInventory 版本没有提供预期的方法。请更新 MMOInventory;如果问题依然存在,请附上完整的堆栈跟踪进行反馈。

原版物品或非 MMOItems 物品永远不会被计数。 只有拥有 MMOItems 类型和 ID 的物品才会被计入。请用 MMOItems 创建该物品,或使用其他扩展来检查其他类型的物品。

只拥有我列出的其中一件物品,检查也通过了。 requireAllItems 处于关闭状态,所以任意一件匹配即可。开启它即可要求列表中的每件物品都具备。

数量被忽略了。 请检查格式:数量必须是片段的第三部分(TYPE:ID:3),并且必须是整数。像 TYPE:ID:three 这样的片段会被丢弃。