Перейти к основному содержимому

MMO Inventory

Проверка MMOItems в пользовательских слотах MMOInventory как факт TypeWriter.

Бесплатныеv0.7Интеграции
ТребуетсяTypeWriter0.9Quest (TypeWriter extension)MMOInventoryMMOItemsMythicLib

Обзор​

MMO Inventory связывает MMOInventory с TypeWriter. MMOInventory добавляет пользовательские слоты экипировки (аксессуары, плащи, артефакты и так далее), которые находятся вне ванильного инвентаря. TypeWriter сам их не видит: это расширение восполняет этот пробел.

Оно предоставляет один читаемый факт. Факт отвечает на один вопрос: есть ли сейчас у этого игрока перечисленные вами предметы MMOItems в одном из ваших пользовательских инвентарей MMOInventory? Затем этот факт можно использовать как criteria в диалогах, квестах, аудиториях или любой другой записи, принимающей criteria, например чтобы открывать вариант диалога только игрокам, носящим определённый артефакт.

Распознаются только предметы MMOItems. Предмет сопоставляется по типу и ID MMOItems, а не по названию или материалу.

Возможности​

  • Поддержка пользовательских слотов — читает предметы, хранящиеся в именованном пользовательском инвентаре MMOInventory, а не в ванильном инвентаре.
  • Сопоставление по типу и ID — определяет предметы MMOItems по паре TYPE:ID, например ACCESSORY:RING_OF_FIRE.
  • Количество предметов — для каждого предмета можно требовать минимальное количество, записанное как TYPE:ID:amount.
  • Несколько предметов сразу — перечисляйте сколько угодно предметов через запятую.
  • Любой или все — requireAllItems определяет, достаточно ли одного совпадения или нужны все перечисленные предметы.
  • Используется как условие — факт возвращает 1 или 0, готовые к использованию в любых criteria.

Установка​

  1. Установите на сервер MMOInventory, MMOItems и его обязательную библиотеку MythicLib.
  2. Убедитесь, что установлено официальное расширение TypeWriter Quest: MMO Inventory зависит от него.
  3. Положите JAR-файл MMO Inventory в 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. Для варианта диалога (или любой записи с criteria) добавьте criteria, использующее этот факт со значением 1.
  6. Нажмите Publish и проверьте с игроком, у которого предмет надет в этом инвентаре.
Формат itemsToCheck

Каждый токен имеет вид TYPE:ID (количество 1) или TYPE:ID:amount. Тип и ID не чувствительны к регистру. Токен, не соответствующий этому формату, молча игнорируется; если не остаётся ни одного корректного токена, факт возвращает 0.

Как это работает​

Расширение читает плагин MMOInventory во время работы. Учитываются только предметы с данными MMOItems, а стопки одного и того же предмета суммируются перед сравнением с запрошенным количеством.

Записи​

Записей: 1, сгенерированы из исходного кода расширения.

Факты1

Устранение неполадок​

Факт всегда равен 0. Расширение возвращает 0, как только чего-то не хватает: inventoryName или itemsToCheck пусты, плагин MMOInventory не загружен либо инвентарь пуст. Проверьте каждый пункт в таком порядке.

В логе написано «Inventory 'x' not found». Имя в inventoryName не совпадает ни с одним пользовательским инвентарём, определённым в MMOInventory. Скопируйте имя в точности так, как оно записано в конфигурации MMOInventory.

В консоли появляется «Error accessing MMOInventory». Расширение обращается к MMOInventory через его API во время работы. Эта ошибка означает, что установленная версия MMOInventory не предоставляет ожидаемых методов. Обновите MMOInventory и сообщите полный stack trace, если проблема сохранится.

Ванильный предмет или предмет не из MMOItems никогда не учитывается. Учитываются только предметы, у которых есть тип и ID MMOItems. Создайте предмет через MMOItems или используйте другое расширение для проверки других видов предметов.

Проверка проходит, имея только один из моих предметов. requireAllItems выключен, поэтому достаточно любого одного совпадения. Включите его, чтобы требовать каждый предмет из списка.

Количество игнорируется. Проверьте формат: количество должно быть третьей частью токена (TYPE:ID:3) и быть целым числом. Токен вроде TYPE:ID:three отбрасывается.