UpgradeItem
Команда предназначена для обработки (улучшения) предмета, заданного идентификатором, то есть повышение его ранга (уровня).
К таким предметам относятся волшебные камни и руны, знаки скакунов, артефактная экипировка и т. д.
Описание алгоритма
- В инвентаре персонажа производится поиск предмета, заданного комбинацией признаков.
- По умолчанию производится поиск непривязанного предмета. Если нужно улучшить привязанный предмет, требуется установить флаги: AllowBoundToCharacter и/или AllowBoundToAccount. В этом случае приоритеты выставлены в следующем порядке:
- непривязанный;
- привязанный к аккаунту;
- привязанный к персонажу.
- При прочих равных для обработки будет выбран предмет, расположенный в ближайшей к началу ячейке инвентаря.
- При поиске обрабатываемого предмета бот не может определить количество ранее произведенных попыток улучшения, поэтому этот параметр не учитывается.
- По умолчанию производится поиск непривязанного предмета. Если нужно улучшить привязанный предмет, требуется установить флаги: AllowBoundToCharacter и/или AllowBoundToAccount. В этом случае приоритеты выставлены в следующем порядке:
- Проводится поиск частицы Mote, подлежащей использованию в процессе улучшения. Команда завершается, если необходимая частица в инвентаре отсутствует.
- Проводится проверка наличия необходимых для улучшения компонентов (Очков обработки, камней усиления и т.п.). Если компонентов недостаточно, команда завершается.
- Производится сопоставление списка необходимых для улучшения компонентов со списком подлежащих защите компонентов ProtectedCatalysts. Если для защиты требуемых компонентов не хватает страхующих катализаторов, команда завершается.
- При наличии всех необходимых компонентов производится попытка улучшение предмета и команда завершается.
Настройки команды
Наименование | Описание |
---|---|
Настройки идентификации предмета (категория “Item”) |
|
ItemId | Идентификатор предмета, который подлежит обработке. |
ItemIdType | Переключатель способа интерпретации ItemId: - Simple : Простая текстовая строка. В начале и в конце строки допускается использование символа подстановки "*" , заменяющего произвольное число алфавитно-цифровых символов;- Regex : Регулярное выражение, составленное по правилам .Net Framework. |
AllowBoundToCharacter | Флаг, позволяющий обрабатывать предмет, привязанный к персонажу. |
AllowBoundToAccount | Флаг, позволяющий обрабатывать предмет, привязанный к аккаунту. |
Дополнительные настройки (Optional) | |
Forced | Флаг, принудительного улучшения предмета, отключающий проверки возможности улучшения и наличия необходимых компонентов. Требуется для улучшения квестовых (обучающих) предметов, и первого улучшения некоторых предметов. Применять следует с осторожностью, так как может спровоцировать отключение игрового клиента от сервера или аварийное завершение программы. |
Mote | Тип частицы, увеличивающей шанс успеха и подлежащей применению при улучшении. |
AfterDelay | Интервал бездействия после попытки улучшения в миллисекундах. При закциливании команды отсутствие перерыва между последовательными попытками улучшения может привести к краху игрового клиента. |
Защита компонентов (Protection) | |
Catalysts | Список идентификаторов компонентов, подлежащих защите страхующими катализаторами. |
CopperMinimum | Минимальное количество меди, которая должна быть защищена страхующим катализатором. Страхующий катализатор не используется, если для улучшения требуется меньшее количество меди. |
RefinementCurrencyMinimum | Минимальное количество очков улучшения, которые должны быть защищена страхующим катализатором. Страхующий катализатор не используется, если для улучшения требуется меньшее количество меди. |
Завершение команды
Команда завершается после выполнения попытки улучшения, независимо от достижения успеха (т.е. повышения ранга (уровня) предмета).
Аналоги
Ближайшим аналогом является команда RunUpgradeProfile, реализованная в плагине QuesterAssistant. В отличие от неё команда UpgradeItem:
- по умолчанию не выполняет обработку привязанных предметов. Для их обработки требуется установить флаги AllowBoundToCharacter и/или AllowBoundToAccount;
- выполняет поиск компонентов для обработки не только среди обычных предметов, но и в ценностях (Numeric). Кроме того, исправлена проверка компонентов при объединении осколков волшебных камней (невалиден объект-описатель Catalyst.ItemDef);
- проводится только одна попытка обработки предмета.