InteractEntities
Команда предназначена для патрулирования по маршруту, заданному набором точек HotSpots, в поисках заданного Entity и последующего с ним взаимодействия.
Описание алгоритма
- Бот перемещается между точками HotSpots, производя поиск ближайшего Entity, удовлетворяющего критериям поиска.
- Патрулирование может производиться в режиме игнорирования боя IgnoreCombat.
- Область поиска Entity может быть ограничена опциями CustomRegions, ReactionRange и ReactionZRange.
- Патрулирование может производиться в режиме игнорирования боя IgnoreCombat.
- Когда целевое Entity найдено, бот следует к нему по кратчайшему пути.
- В отличие от штатной команды InteractNPC возможно взаимодействие с движущимися Entity.
- В случае, если взаимодействие прервано нападением противников, оно повторяется после выхода из боя.
- После завершения взаимодействия или исчерпания попыток, целевая Entity временно помещается в черный список для предотвращения повторных безуспешных попыток взаимодействия с ним.
- После исчезновения всех Entity, удовлетворяющих критериям поиска, бот возобновляет патрулирование.
Настройки команды
Наименование | Описание |
---|---|
Настройки идентификации Entity (категория “Entity”) | |
EntityID EntityIdType EntityNameType EntitySetType |
Идентификация Entity производится сочетанием четырех перечисленных слева свойств, которые подробно описаны в разделе Идентификация Entity. |
Дополнительные фильтры Entity (категория “Entity Search Options”) | |
HealthCheck | Дополнительная проверка уровня здоровья Entity (HP). - True : Игнорируются Entity с нулевым количеством очков здоровья (HP) либо, имеющие флаг IsDead; - False : Здоровье Entity (HP) не проверяется. |
HoldTargetEntity | Флаг удержания Entity. - True : Бот продолжает следовать к ранее найденному Entity, даже в том случае, если будет обнаружено Entity поближе; - False : Бот постоянно производит поиск и следует к ближайшему Entity. |
Область поиска Entity (категория “Search Area”) | |
ReactionRange | Максимальное допустимое расстояние от Entity до персонажа. Entity на большем расстоянии игнорируются. Опция отключается при установке значения 0 . При этом поиск производится среди всех видимых боту Entity. |
ReactionZRange | Максимальная допустимая разница по высоте (ZAxis) между Entity и персонажем. Entity игнорируются, если находятся выше (ниже) заданной величины относительно персонажа. Опция отключается при установке значения 0 . При этом поиск производится среди всех видимых боту Entity. |
RegionCheck | Флаг, активирующий дополнительную проверку внутриигрового региона (не то же самое, что CustomRegion), в котором находится Entity. - True : Поиск Entity производится в том же регионе, в котором находится персонаж; - False : Проверка региона при поиске Entity не производится. |
CustomRegions | Набор CustomRegion‘ов, задающих область поиска Entity. Подробное описание приведено в разделе CustomRegionSet. |
Опции взаимодействия (категория “Interaction”) | |
Dialogs | Ответы в окне диалога с Entity. |
InteractDistance | Максимальное допустимое расстояние, на котором возможно взаимодейтсвие с целевой Entity. В пределах заданного расстояния также отключается режим игнорирования боя, если задан флаг IgnoreCombat. При установке значения более 5 на Mapper соответствующая область отображается окружностью, центром которой является целевая Entity. |
InteractTime | Время взаимодействия в миллисекундах. |
InteractOnce | Флаг, запрещающий повторное взаимодействие с Entity. После взаимодействия Entity бессрочно помещается в черный списо. |
InteractionTimeout | Время запрета на повторное взаимодействие с Entity. Опция игнорируется если установлен флаг InteractOnce |
Управление боем (категория “Manage Combat Options”) | |
IgnoreCombat | Флаг, предписывающий активировать режим игнорирования боя IgnoreCombat при следовании к целевой Entity. |
IgnoreCombatCondition | Дополнительное условие, управляющее режимом прерывания боя. Если условие на выполняется, то режим игнорирования боя не активируется. |
IgnoreCombatMinHP | Величина минимального здоровья персонажа HP (в процентах), при котором может быть активирован режим игнорирования боя. Если здоровье персонажа опустится ниже указанной величины, то персонаж вступи в бой. При значении -1 команда не меняетт системное значение IgnoreCombatMinHP при активации режима игнорирования боя. |
AbortCombatDistance | Расстояние от Entity, за пределами которого бой принудительно прерывается. Бой снова активируются на расстоянии CombatDistance от целевой Entity. При значении меньшем CombatDistance или при выключенном флаге IgnoreCombat, опция отключается. |
Прерывание команды (категория “Interruptions”) | |
EntitySearchTime | Время поиска в миллисекундах, в течение которого бот пытается обнаружить заданную Entity, удовлетворяющую критериям поиска. Команда прерывается, если до истечения заданного времени Entity не будет обнаружен. Опция отключается при установке значения 0 . При этом поиск продолжается неограниченное время. |
Прочие настройки (категория “Optional”) | |
ResetCurrentHotSpot | Флаг, предписывающий двигаться к ближайшему HotSpot‘у после взаимодействия со всеми видимыми целевыми Entity (их исчезновения). Если флаг не установлен, бот “запоминает” последний HotSpot, к которому двигался перед обнаружением Entity, и, после взаимодействия со всеми видимыми Entity (их исчезновения), продолжает движение к этому HotSpot’у. |
Внутренние условия
Перед запуском команды проверяется истинность одного из условий:
- Задана опция EntityID.
- Опции EntityNameType имеет значение Empty.
Завершение команды
Команда самостоятельно не завершается, если не задан флаг StopOnApproached.
Принудительное завершение команды возможно одним из способов, перечисленных в статье.
Аналоги
Похожие команды, входящие в базовый функционал бота: