MoveToEntity
Команда предназначена для патрулирования по маршруту, заданному набором точек HotSpots, в поисках заданного Entity.
Описание алгоритма
- Бот перемещается между точками HotSpots производя поиск ближайшего Entity, удовлетворяющего критериям поиска.
- Патрулирование может производиться в режиме игнорирования боя IgnoreCombat.
- Область поиска Entity может быть ограничена опциями CurrentMap, CustomRegions, ReactionRange и ReactionZRange.
- Патрулирование может производиться в режиме игнорирования боя IgnoreCombat.
- Когда целевое Entity найдено, бот следует к нему по кратчайшему пути.
- Целевое Entity может быть принудительно атаковано, если установлен флаг AttackTargetEntity. При этом игнорируется список Blacklist выполняемого quester-профиля.
- При перво воздействии на целевое Entity применяется умение PowerId.
- После исчезновения (уничтожения) всех Entity, удовлетворяющих критериям поиска, бот возобновляет патрулирование.
Настройки команды
Наименование | Описание |
---|---|
Настройки идентификации Entity (категория “Entity”) | |
EntityID EntityIdType EntityNameType |
Идентификация 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. |
CustomRegionsPlayerCheck | Флаг, устанавливающий требование нахождения персонажа в области, заданной опцией CustomRegions. Команда не будет запущена, если персонаж находится за пределами заданной области. |
CurrentMap | Идентификатор карты, на которой должен производиться поиск Entity. Команда не будет запущена, если персонаж находится за пределами заданной карты. Опция игнорируется, если идентификатор не задан. |
Управление боем (категория “Manage Combat Options”) | |
IgnoreCombat | Флаг, предписывающий активировать режим игнорирования боя IgnoreCombat при следовании к целевой Entity. |
IgnoreCombatCondition | Дополнительное условие, управляющее режимом прерывания боя. Если условие на выполняется, то режим игнорирования боя не активируется. |
IgnoreCombatMinHP | Величина минимального здоровья персонажа HP (в процентах), при котором может быть активирован режим игнорирования боя. Если здоровье персонажа опустится ниже указанной величины, то персонаж вступи в бой. При значении -1 команда не меняетт системное значение IgnoreCombatMinHP при активации режима игнорирования боя. |
CombatDistance | Расстояние до целевой Entity, на котором отключается режим игнорирования боя IgnoreCombat. Минимальное значение 5 . |
AbortCombatDistance | Расстояние от Entity, за пределами которого бой принудительно прерывается. Бой снова активируются на расстоянии CombatDistance от целевой Entity. При значении меньшем CombatDistance или при выключенном флаге IgnoreCombat, опция отключается. |
AttackTargetEntity | Флаг, предписывающий атаковать целевую Entity. Опция игнорируется, если флаг IgnoreCombat не установлен. |
PowerId | Идентификатор умения, применяемого к целевому Entity в качестве первого удара. Заданное умение может применяться, даже если цель является дружественной. |
PowerCastingTime | Время активации умения, заданного опцией PowerId. |
Прерывание команды (категория “Interruptions”) | |
StopOnApproached | Флаг, завершающий выполнение команды после того как персонаж приблизился к целевой Entity на расстояние CombatDistance. |
EntitySearchTime | Время поиска в миллисекундах, в течение которого бот пытается обнаружить заданную Entity, удовлетворяющую критериям поиска. Команда прерывается, если до истечения заданного времени Entity не будет обнаружен. Опция отключается при установке значения 0 . При этом поиск продолжается неограниченное время. |
Прочие опции | |
ResetCurrentHotSpot | Флаг, предписывающий двигаться к ближайшему HotSpot‘у после исчезновения (уничтожения) всех видимых целевых Entity. Если флаг не установлен, бот “запоминает” последний HotSpot, к которому двигался перед обнаружением Entity, и после уничтожения всех видимых Entity (их исчезновения), продолжает движение к этому HotSpot’у. |
Внутренние условия
Перед запуском команды проверяется истинность следующих условий: 1) Персонаж находится на карте CurrentMap, если задана соответствующая опция. 2) Персонаж находится в области, заданной опцией CustomRegions, если установлен флаг опцией CustomRegionsPlayerCheck. 3) Кроме того, должно быть истинным одно из условий:
- Задан идентификатор EntityID.
- Опция EntityNameType имеет значение Empty.
Завершение команды
Команда завершается в следующих случаях: 1) Персонаж приблицился к заданному Entity, при условии, что задан флаг StopOnApproached. 2) Истекло время поиска Entity, заданное опцией EntitySearchTime. 3) Внутренние условия стали ложны.
Если опции StopOnApproached и EntitySearchTime не заданы, то команда выполняется до тех пор, пока не будет прервана принудительно одним из способов, перечисленных в статье.
Блок-схема
Аналоги
Похожие команды, входящие в базовый функционал бота: