Патчи
В плагине EntityTools реализовано несколько патчей,исправляющих наиболее неприятные ошибки бота, или улучшающие его функционал.
Патчи реализованы с помощью библиотеки Harmony, которая в целях удобства использования интегрирована в dll-плагина.
Комплексный патч сериализации, сохранения и загрузки профилей
Профили квестовой подсистемы (Quester’a) и боевой подсистемы (UCC) сериализуются и сохраняются в виде xml-файлов.
Патч сериализации
Плагин EntityTools является динамически загружаемой сборкой .Net с поздним связыванием, поэтому сериализатору должны быть предоставлены списки типов объектов, используемых при построении вышеуказанных профилей и реализованных в плагине.
Патч сериализации улучшает механизм формирования списков типов, путем:
- добавления в список недостающие типы, реализованные в плагине EntityTools;
- сохраняет список типов в кэше, что избавляет от необходимости формировать его при каждой сериализации/десериализации профилей Quester’а и UCC.
Патч сохранения Quester-профиля
Основным назначением данного патча является оптимизация путевого графа.
Кроме того, улучшена работа с zip-архивами. Бот Астрал перед сохранением Quester-профиля выполнял загрузку всех элементов архива (файл профиля и меши карт), формировал новый архив и перезаписывал содержимое файла целиком.
Реализованный в патче подход перезаписывает лишь те элементы архива, которые были изменены, тем самым сокращая затраты вычислительных ресурсов компьютера.
Патч загрузки Quester-профиля
Патч загрузки необходим, чтобы при десериализации Quester-профиля использовался расширенный список типов. В противном случае во время загрузки профиля, использующего расширения Quester’a из плагина EntityTools, возникнет ошибка.
Патч VipProfessionVendorEntity
Данный патч исправляет идентификатор призываемого торговца профессиональными ресурсами, в результате чего, бот может с ним корректно взаимодействовать.
Патч VipSealTraiderEntity
Данный патч исправляет идентификатор призываемого торговца печатями, в результате чего, бот может с ним корректно взаимодействовать.
Патч CheckAlly
Данный патч изменяет поведение бота в бою. Он исключает спутников персонажей из числа дружественных NPC, на которых применяются исцеляющие умения.
Патч Окна картографирования (Mapper)
Патча заменяет штатное окно картографирования бота Астрал на расширенное. Подробнее…