-
Notifications
You must be signed in to change notification settings - Fork 0
API UO SelectIgnoreList
ClassicUO / Basic IDE
Home · Все команды · Каталоги
Переключает активный именованный фильтр поиска. Полезно менять набор исключений между добычей, сортировкой и выбором цели без удаления сохранённых правил. Сам поиск эта команда не выполняет.
UO.SelectIgnoreList(list:Any) -> Unit
Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.
-
list— Произвольное непустое имя, например "loot_skip". Имя не учитывает регистр. Это не имя предмета, не serial контейнера и не имя FindList. Здесь допустима также пустая строка "": отключить именованные правила.
Unit — значения нет. Используйте отдельной строкой без VAR result = и без проверки =True. Команда изменяет локальный фильтр; не возвращает число предметов и ничего не отправляет серверу.
- Несуществующее имя выбирает пустой фильтр. Поздний AddIgnoreList с этим именем начнёт действовать в следующих поисках. Обычные Ignore(serial) продолжают действовать при любом выборе.
- Именованный список содержит правила graphic/type + hue, а обычный Ignore содержит конкретные serial. Это разные фильтры: они объединяются при поддерживающем их поиске. Объекты остаются видимыми и доступными прямому UseObject/MoveItem; это не Hide и не запрет действий.
- Имя списка не учитывает регистр; пробелы по краям удаляются. Активен один именованный список, первоначально default. AddIgnoreList не выбирает его автоматически. SelectIgnoreList("") отключает только именованный фильтр.
- Правила действуют на новые поиски, включая предметы, загруженные ПОСЛЕ их добавления. Уже полученный массив и предыдущий результат FindCount не пересчитываются до нового поиска. Не выбирайте список с правилом -1,-1, если не хотите исключить всё.
- Фильтр учитывают FindType/FindTypeEx/FindTypesArrayEx, FindList, FindAtCoord, FindNotoriety, Count/CountEx и расширенные выборки GetMobiles, GetWorldItems, UseType, WaitTarget, Attack/AttackNearest/FindMan. includeIgnored=True, где он предусмотрен, обходит и serial, и type/hue. Полное перечисление GetContent/GetEquipment, GetWorldItems() без аргументов и словесный FindMobile(human,near,...) не используют эти правила.
- GetIgnoreList возвращает только явно добавленные serial; строки именованного списка в этот массив не входят. IgnoreReset очищает весь serial-фильтр, IgnoreOff(serial) снимает одно serial-исключение; именованные правила сохраняются. ClearIgnoreList() без аргументов очищает оба вида.
- Состояние принадлежит общему состоянию скриптов профиля клиента; изменение влияет на другие скрипты с этим состоянием. Настройки входят в сохраняемый снимок. После изменения правил другой скрипт может уже выполнять поиск со снятым ранее снимком — следующий поиск увидит обновление.
Ниже описана реализация этого движка. Имена внутренних методов не являются дополнительными командами BASIC.
Разбирает имя списка и числовые аргументы; вызывает Add/Remove/Clear либо меняет SelectedIgnoreList.
Unit: значения нет. Не запрашивает сервер и не перемещает предметы.
Исходник проекта: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; функция ExecuteLegacyManualAlias.
Поиск один раз получает неизменяемый снимок выбранного списка.
Набор serial не разрастается при загрузке новых предметов. Пустое имя отключает именованный фильтр.
Исходник проекта: external/InjectionScript/src/InjectionScript/Runtime/State/NamedIgnoreLists.cs; функция FilterFor.
Проверяет точный type/hue и маски любого type/hue.
Числовые пары проверяются без разбора строк на каждом объекте.
Исходник проекта: external/InjectionScript/src/InjectionScript/Runtime/State/NamedIgnoreLists.cs; функция Matches.
Совмещает правила выбранного списка с serial-фильтром и остальными условиями поиска.
Исключённый объект не попадает в новый результат/счётчик.
Исходник проекта: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; функция FindType.
Применяет снимок того же именованного фильтра к строкам выбранного FindList.
Режим includeIgnored обходит и именованные правила, и serial-исключения.
Исходник проекта: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; функция FindList.
В примерах конфигурация списка отделена от его включения и от поиска. Названия списков произвольные; 0x0EED — graphic золота, а не ID отдельной стопки.
# Переключить режим сортировки
#
# Переключает активный именованный фильтр поиска. Полезно менять набор исключений между добычей,
# сортировкой и выбором цели без удаления сохранённых правил. Сам поиск эта команда не
# выполняет.
#
# Unit — значения нет. Используйте отдельной строкой без VAR result = и без проверки =True.
# Команда изменяет локальный фильтр; не возвращает число предметов и ничего не отправляет
# серверу.
SUB Main()
# SORT и sort — один список. Поиск выбирает первый разрешённый объект рюкзака; сохранение имени
# не переносит его.
UO.AddIgnoreList("sort", 0x0EED)
UO.SelectIgnoreList("SORT")
VAR item = UO.FindType(-1, -1, "backpack")
IF item <> "" THEN
UO.AddObject("sort_candidate", item)
END IF
END SUBРазбор параметров и выполнения:
- SORT и sort — один список. Поиск выбирает первый разрешённый объект рюкзака; сохранение имени не переносит его.
SUB Main()
UO.SelectIgnoreList("")
# Золото снова допустимо, если его serial отдельно не игнорируется.
VAR gold = UO.FindType(0x0EED, -1, "backpack")
IF gold <> "" THEN
UO.AddObject("gold_candidate", gold)
END IF
END SUBРазбор параметров и выполнения:
- Пустая строка отключает только именованный фильтр. Чтобы позже восстановить его, снова передайте имя набора.
# Подготовить фильтр уже после выбора имени
#
# Переключает активный именованный фильтр поиска. Полезно менять набор исключений между добычей,
# сортировкой и выбором цели без удаления сохранённых правил. Сам поиск эта команда не
# выполняет.
#
# Unit — значения нет. Используйте отдельной строкой без VAR result = и без проверки =True.
# Команда изменяет локальный фильтр; не возвращает число предметов и ничего не отправляет
# серверу.
SUB Main()
# До добавления правила later пуст. После добавления ни одна стопка золота не проходит следующий
# поиск, даже если она только что появилась.
UO.SelectIgnoreList("later")
UO.AddIgnoreList("later", 0x0EED)
VAR item = UO.FindType(0x0EED, -1, "ground")
IF item = "" THEN
UO.Print("Gold is excluded by the selected rule")
END IF
END SUBРазбор параметров и выполнения:
- До добавления правила later пуст. После добавления ни одна стопка золота не проходит следующий поиск, даже если она только что появилась.
ClassicUO
Bad Newbie & Basic IDE
Найти в справочнике
Клиент и скрипты
Каталоги значений
Разработка и помощь