Skip to content

API UO SelectIgnoreList

Codex edited this page Sep 22, 2026 · 5 revisions

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.

1. ExecuteLegacyManualAlias

Разбирает имя списка и числовые аргументы; вызывает Add/Remove/Clear либо меняет SelectedIgnoreList.

Unit: значения нет. Не запрашивает сервер и не перемещает предметы.

Исходник проекта: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; функция ExecuteLegacyManualAlias.

2. FilterFor

Поиск один раз получает неизменяемый снимок выбранного списка.

Набор serial не разрастается при загрузке новых предметов. Пустое имя отключает именованный фильтр.

Исходник проекта: external/InjectionScript/src/InjectionScript/Runtime/State/NamedIgnoreLists.cs; функция FilterFor.

3. Matches

Проверяет точный type/hue и маски любого type/hue.

Числовые пары проверяются без разбора строк на каждом объекте.

Исходник проекта: external/InjectionScript/src/InjectionScript/Runtime/State/NamedIgnoreLists.cs; функция Matches.

4. FindType

Совмещает правила выбранного списка с serial-фильтром и остальными условиями поиска.

Исключённый объект не попадает в новый результат/счётчик.

Исходник проекта: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; функция FindType.

5. FindList

Применяет снимок того же именованного фильтра к строкам выбранного FindList.

Режим includeIgnored обходит и именованные правила, и serial-исключения.

Исходник проекта: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; функция FindList.

В примерах конфигурация списка отделена от его включения и от поиска. Названия списков произвольные; 0x0EED — graphic золота, а не ID отдельной стопки.

Примеры

Пример 1. Переключить режим сортировки

# Переключить режим сортировки
#
# Переключает активный именованный фильтр поиска. Полезно менять набор исключений между добычей,
# сортировкой и выбором цели без удаления сохранённых правил. Сам поиск эта команда не
# выполняет.
#
# 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 — один список. Поиск выбирает первый разрешённый объект рюкзака; сохранение имени не переносит его.

Пример 2. Выключить правила type, сохранив сами наборы

SUB Main()
    UO.SelectIgnoreList("")
    # Золото снова допустимо, если его serial отдельно не игнорируется.
    VAR gold = UO.FindType(0x0EED, -1, "backpack")
    IF gold <> "" THEN
        UO.AddObject("gold_candidate", gold)
    END IF
END SUB

Разбор параметров и выполнения:

  • Пустая строка отключает только именованный фильтр. Чтобы позже восстановить его, снова передайте имя набора.

Пример 3. Подготовить фильтр уже после выбора имени

# Подготовить фильтр уже после выбора имени
#
# Переключает активный именованный фильтр поиска. Полезно менять набор исключений между добычей,
# сортировкой и выбором цели без удаления сохранённых правил. Сам поиск эта команда не
# выполняет.
#
# 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 пуст. После добавления ни одна стопка золота не проходит следующий поиск, даже если она только что появилась.

Clone this wiki locally