View on GitHub

EntityToolsDocs

Документация к EntityTools

PickUpMissionExt

Команда предназначена для взятия квестового задания (миссии) у конкретного неигрового персонажа - квестодателя (NPC) или у вспомогательной внутриигровой диалоговой подсистемы (Remote).

Описание алгоритма

  1. Проверяется отсутствие миссии в журнале активных и выполненных задач персонажа. Если миссия есть в журнале - команда завершается.
  2. Если задан квестодатель-NPC, проверяется текущая карта и регион в котором находится персонаж. При несоответствии карты/региона - команда завершается.
  3. Персонаж перемещается к квестодателю-NPC и производит взаимодействие с ним, либо активирует внутриигровую диалоговую подсистему Remote.
  4. Если задан RequiredRewardItem, то проверяется его наличие в составе наград за выполнение миссии.
    В случае отсутствия необходимого предмета, выполняется переход к команде с идентификатором TargetActionOnRequiredRewardMissing.
  5. Персонаж принимает миссию и команда завершается.

Настройки команды

Наименование Описание
  Настройки миссии
(категория “Mission Options”)
MissionId Текстовый идентификатор миссии состоящий из алфавитно-цифровых символов.
В начале и в конце строки допускается использование символа подстановки *, заменяющего произвольное число алфавитно-цифровых символов.
Giver Комплексная опция, идентифицирующая квестодателя, который выдает миссию.
Подробное описание приведено в статье MissionGiverInfo.
ContactHaveMission Переключатель, активирующий проверку на наличие у квестодателя-NPC квестового задания:
- Any : любой тип миссии (значение по умолчанию)
- Main : миссия, относящаяся к Приключению (Adventure)
- RepeatablesOnly : повторяемая миссия (дейлик)
- Event : Миссия, связанная с временными событиями
- Disable : проверка отключена
Активация данной опции позволяет исключить лишние перемещения персонажа, поскольку позволяет определить отсутствие у квестодателя-NPC миссии не приближаясь к нему в плотную и не выполняя взаимодействия.
Следует отметить, что проверка будет работать некорректно, если иконка над персонажем отличается от стандартных иконок квестовых заданий, например, иконка магазина.
  Настройки взаимодействия
(категория “Interaction”)
Dialogs Последовательность ответов в диалоге с квестодателем, которую необходимо пройти перед получением возможности принять миссию. Опция не обязательна.
InteractDistance Максимальное допустимое расстояние, на котором возможно взаимодейтсвие с квестодателем-NPC.
ReactionZRange Максимальная допустимая разница по высоте (ZAxis) между квестодателем-NPC и персонажем.
Минимальное допустимое значение : 5.
SkipOnFail Флаг, предписывающий завершить команду после безуспешной попытки принять заданную миссию.
CloseContactDialog Флаг, предписывающий закрывать диалог с квестодателем после взятия миссии. По умолчанию не установлен.
  Настройки управления боем
(категория “Manage Combat Options”)
IgnoreCombat Флаг, предписывающий активировать режим игнорирования боя IgnoreCombat при следовании к квестодателю-NPC.
Режим игнорирования боя отключается только при штатном завершении команды. В случае принудительного прерывания команды режим игнорирования боя может продолжать действовать и влиять на выполнение quester-профиля.
IgnoreCombatCondition Дополнительное условие, управляющее режимом прерывания боя. Если условие на выполняется, то режим игнорирования боя не активируется.
IgnoreCombatMinHP Величина минимального здоровья персонажа HP (в процентах), при котором может быть активирован режим игнорирования боя. Если здоровье персонажа опустится ниже указанной величины, то персонаж вступи в бой.
При значении -1 команда не меняетт системное значение IgnoreCombatMinHP при активации режима игнорирования боя.
  Дополнительные настройки
(категория “Optional”)
RequiredRewardItem Идентификатор предмета, который должен быть в наградах за выполнение миссии. Пустая строка отключает проверку.
Миссия не будет принята при отсутствии заданного предмета.
В начале и в конце строки допускается использование символа подстановки * , заменяющего произвольное число алфавитно-цифровых символов.
Чтобы выбрать нужный предмет в игре должно быть открыто диалоговое окно принятия миссии.
TargetActionOnRequiredRewardMissing Идентификатор команды скрипта, которая будет выполнена в случае, если в наградах за выполнение миссии не будет найден обязательный предмет RequiredRewardItem.

Мастер настройки (GatherInfo)

Мастер настройки вызывается автоматически при добавлении новой команды, или при нажатии кнопки [GatherInfo]. Для настройки команды выполните следующие действия:

  1. В quester-редакторе в диалоговом окне SelectForm выберите типа квестодателя:
    • NPC : неигровой персонаж-квестодатель, расположенный в определенном месте игрового мира;
    • Remote : дистанционная диалоговая система, доступная из любой точки игрового мира. Обычно с таких миссий начинаются кампании.

  2. Идентифицируйте квестодателя.
    • Идентификация квестодателя-NPC производится в игровом окне. Для этого нужно подвести игрового персонажа вплотную к соответствующему NPC, направить на него игровую камеру и нажать F12.
      Информация о выбранном NPC будет занесена в опцию Giver.

    • Идентификация дистанционного квестодателя (Remote) производится в диалоговорм окне GetAnId в quester-редакторе.

    После идентификации квестодателя-NPC игровой персонаж самостоятельно произведет взаимодействие с ним и дождётся появления внутриигрового диалогового окна.

  3. В окне quester-редактора в диалоговом окне SelectForm выберите пункт диалога, соответствующий принимаемому квестовому заданию.

    Если закрыть окно SelectForm без выбора пункта диалога - откроется стандартное окно выбора миссии.
    После выбора пункта диалога в редакторе, бот активирует в игре соответствующий пункт диалога, что приводит к открытию экрана принятия миссии. На этом этапе возможно подвисание до 3 секунд, связанное с необходимостью “ожидания отклика” игрового интерфейса и обновления игрового журнала заданий.
    Бот попытается самостоятельно извлечь идентификатор MissionId.

  4. Если боту не удалось извлечь идентификатор MissionId, в quester-редакторе отобразится диалоговое окно Get a mission id, в котором необходимо выбрать нужную миссию.

  5. В quester-редакторе в диалоговом окне Get an item id, можно выбрать один из предметов, выдаваемых в качестве награды за выполнение миссии.
    По умолчанию открывается вкладка с наградами за выполнение миссии, однако, для поиска нужного предмета можно переключиться другую вкладку.
    Идентификатор выбранной награды заносится в опцию RequiredRewardItem.
    Если закрыть окно, то опция RequiredRewardItem останется незаполненной, а проверка - отключится.


Внутренние условия

Перед запуском команды проверяется истинность следующих условий:

Команда пропускается, если хотя бы одно из условие не выполняется.


Завершение команды

Команда завершается:

Принудительное завершение команды возможно одним из способов, перечисленных в статье.


Аналоги

Отличия от команд PickUpMission и InteractNPC, встроенных в базовый функционал бота:


Назад
Назад к перечню команд
Назад к содержанию