Расширение для роли Quester
Quester - это подсистема бота Astral, предназначенная для управления одним персонажем и выполнения заранее определенной последовательности действий, которая называется профиль (рrofile).
Профили создаются в специальном редакторе путем добавления команд (action), каждая из которых имеет собственные настройки и условия запуска (conditions).
Команды, как правило, управляют игровым персонажем и совершают несколько внутриигровых действий для достижения нужного результата. Например, команда InteractSpecificNPC для взаимодействия с неигровым персонажем (NPC), выполняет перемещение игрового персонажа к месту нахождения NPC, активацию диалога и последовательный выбор заранее заданных вариантов ответов.
Плагин EntityTools реализует дополнительные команды и условия, которые могут быть использованы в профилях Quester’a, а также инструменты для их настройки. Большое внимание уделено обработке Entity - внутриигровым объектам, являющимся частью игрового процесса или декорациями. К Entity относятся все игровые или неигровые персонажи, спутники, противники и босы подземелий, порталы и т.д. В некоторых случаях, Entity используются для реализации игровых механик. Например, пылающие и отравленные области на земле, причиняющие урон находящимся в них персонажам.
Команды
- MoveToEntity : патрулирование по заданному маршруту, поиск и нападение на заданную Entity.
- InteractEntities : патрулирование по заданному маршруту, поиск и взаимодействие с заданной Entity.
- MoveToTeammate : сопровождение и оказание поддержки заданному члену группы.
- PickUpMissionExt : взятие квестового задания (миссии) у конкретного неигрового персонажа (NPC) или у вспомогательной внутриигровой диалоговой подсистемы.
- TurnInMissionExt : сдача квестового задания (миссии) конкретному неигровому персонажу (NPC).
- AddIgnoredFoes : задает список противников, игнорируемых во время боя.
- RemoveIgnoredFoes : удаление противников, игнорируемых во время боя, которые были добавлены командой AddIgnoreFoes.
- ChangeInstanceToLeader : переход игрового персонажа на инстанс текущей карты, в котором находится лидер группы.
- PromoteTeammate : Передача другому игроку лидерства в группе.
- ExecutePowerExt : Активация умения персонажа в заданном месте и в заданную цель.
- Jumping : Перемещение персонажа одним или серией прыжков из заданной точки к целевой.
- UpgradeItem : Повышение ранга (уровня) предмета, заданного идентификатором. К таким предметам относятся волшебные камни и руны, знаки скакунов, артефактная экипировка и т.д.
Условия
- EntityCount : подсчёт количества Entity и сравнение его с референтным значением.
- EntityProperty : сопоставление значения заданного свойства ближайшего Entity с референтным значением.
- TeamMemberCount : подсчёт количества членов группы и сравнивает его с референтным значением.
- TeamLeaderMapInstance : сравнение инстанса, в котором находится игрок, с инстансом, в котором находится лидер группы.
- CheckShard : проверка названия сервера, к которому подключен игровой клиент.
- IsInCustomRegionSet : проверка местонахождения персонажа относительно области, заданной набором CustomRegion’ов.
- EquipmentLevel : проверка уровня заданного(го) предмета(ов) экипировки.
Правила проверки условий, ассоциированных с командой, описаны в отдельной статье.