TurnInMissionExt
Команда предназначена для сдачи квестового задания (миссии) конкретному неигровому персонажу (NPC).
Описание алгоритма
- Проверяется статус миссии в журнале задач персонажа. Если миссия отсутствует в журнале или её статус отличен от Succeeded - команда завершается.
- Проверяется совпадение текущей карты и регион, в котором находится персонаж, с информацией о местонахождении NPC, заданной в опции Giver. При несоответствии карты или региона - команда завершается.
- Персонаж перемещается к NPC и производит взаимодействие с ним.
- Если задан RequiredRewardItem, то проверяется его наличие в составе наград за выполненную миссию.
В случае отсутствия необходимого предмета, выполняется переход к команде с идентификатором TargetActionOnRequiredRewardMissing. - Персонаж сдает миссию и команда завершается.
Настройки команды
Наименование | Описание |
---|---|
Настройки миссии (категория “Mission Options”) |
|
MissionId | Текстовый идентификатор миссии состоящий из алфавитно-цифровых символов. В начале и в конце строки допускается использование символа подстановки * , заменяющего произвольное число алфавитно-цифровых символов. |
Giver | Комплексная опция, идентифицирующая NPC, которому сдается миссия. Подробное описание приведено в статье MissionGiverInfo. |
Настройки взаимодействия (категория “Interaction”) |
|
Dialogs | Последовательность ответов в диалоге с Giver, которую необходимо пройти перед получением возможности сдать миссию. Опция не обязательна. |
InteractDistance | Максимальное допустимое расстояние, на котором возможно взаимодейтсвие с Giver. |
ReactionZRange | Максимальная допустимая разница по высоте (ZAxis) между Giver и персонажем. Минимальное допустимое значение 5 . |
SkipOnFail | Флаг, предписывающий завершить команду после безуспешной попытки сдать заданную миссию. |
CloseContactDialog | Флаг, предписывающий закрывать диалог с Giver после сдачи миссии. По умолчанию не установлен. |
Настройки управления боем (категория “Manage Combat Options”) |
|
IgnoreCombat | Флаг, предписывающий активировать режим игнорирования боя IgnoreCombat при следовании к Giver. Режим игнорирования боя отключается только при штатном завершении команды. В случае принудительного прерывания команды режим игнорирования боя может продолжать действовать и влиять на выполнение quester-профиля. |
IgnoreCombatCondition | Дополнительное условие, управляющее режимом прерывания боя. Если условие на выполняется, то режим игнорирования боя не активируется. |
IgnoreCombatMinHP | Величина минимального здоровья персонажа HP (в процентах), при котором может быть активирован режим игнорирования боя. Если здоровье персонажа опустится ниже указанной величины, то персонаж вступи в бой. При значении -1 команда не меняетт системное значение IgnoreCombatMinHP при активации режима игнорирования боя. |
Дополнительные опции (категория “Optional”)** |
|
RequiredRewardItem | Идентификатор предмета, который должен быть в наградах за выполнение миссии. Пустая строка отключает проверку. Миссия не будет сдана при отсутствии заданного предмета. В начале и в конце строки допускается использование символа подстановки * , заменяющего произвольное число алфавитно-цифровых символов.Чтобы выбрать нужный предмет в игре должно быть открыто диалоговое окно принятия миссии. |
TargetActionOnRequiredRewardMissing | Идентификатор команды скрипта, которая будет выполнена в случае, если в наградах за выполнение миссии не будет найден обязательный предмет RequiredRewardItem. |
Мастер настройки (GatherInfo)
Мастер настройки вызывается автоматически при добавлении новой команды, или при нажатии кнопки [GatherInfo]. Для настройки команды выполните следующие действия:
- В quester-редакторе в диалоговом Get a mission id выберите идентификатор миссии MissionId.
- Укажите NPC, принимающего миссию.
Для этого в игровом окне нужно подвести игрового персонажа вплотную к соответствующему NPC, направить на него игровую камеру и нажать F12.
Информация о выбранном NPC будет занесена в опцию Giver, игровой персонаж самостоятельно произведет взаимодействие с ним, дождется появления внутриигрового диалогового окна и активирует пункт меню, соответствующий выбранной миссии MissionId. При этом сдавать миссиию бот не будет.
- В quester-редакторе откроется диалоговое окне Get an item id, в котором можно выбрать один из предметов, выдаваемых в качестве награды за выполнение миссии.
По умолчанию открывается вкладка с наградами за выполнение миссии, однако, для поиска нужного предмета можно переключиться другую вкладку.
Идентификатор выбранной награды заносится в опцию RequiredRewardItem.
Если закрыть окно, то опция RequiredRewardItem останется незаполненной, а проверка - отключится.
Внутренние условия
Перед запуском команды проверяется истинность следующих условий:
- Миссия, заданная опцией MissionId, имеет статус Succeeded, то есть содержится в журнале задач и выполнена успешно.
- Персонаж и Giver находятся на одной карте и в одном регионе.
Команда пропускается, если хотя бы одно из условие не выполняется.
Завершение команды
Команда завершается:
- после взаимодействия с Giver и успешной сдачи миссии, которая меняет статус на Completed.
- при отсутствии RequiredRewardItem в списке наград за выполнение миссии.
Принудительное завершение команды возможно одним из способов, перечисленных в статье.
Аналоги
Отличия от команд TurnInMission и InteractNPC, встроенных в базовый функционал бота:
- возможность проверки наличия в наградах за миссию заданного предмета и отказ от завершения миссии при его отсутствии.
- встроенная проверка статуса миссии в журнале активных или завершенных задач персонажа;
- встроенная проверка карты и региона, в которых находится Giver. Команда прерывается, если персонаж находится на иной карте или в ином регионе;
- возможность активировать режим игнорирования боя;
- Удобный мастер настройки (GatherInfo)