API UO GetFindedList - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
Оглавление · Алфавитный указатель · Search
ClassicUO • Runtime API
Создаёт копию списка ID последнего обычного поиска.
UO.GetFindedList(UserList:Any) -> Any
Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.
-
UserList— Обязательный аргумент совместимости. В текущей реализации не заполняется и не изменяется: список возвращается результатом команды. Можно передать 0. Для формы без аргументов используйте GetFoundItems.
Array — отдельный массив serial/ID в порядке последнего поиска. Пустой Array, если совпадений не было. Не содержит graphic, hue или Amount. Изменение возвращённого массива не редактирует сохранённый список поиска.
- Читаются данные, уже загруженные клиентом. Команда не открывает контейнер, не перемещает предметы и не загружает объекты со всего сервера.
- Array — массив с индексами от 0. Сохраняйте его в VAR, проверяйте GetArrayLength перед доступом. Элементы могут исчезнуть из мира после создания снимка: перед действием проверяйте Exists(serial).
- Данные принадлежат последнему обычному поиску этого скрипта. FindType с 1–5 аргументами, FindTypeEx, Count/CountEx/CountGround заменяют результаты. Расширенные фильтрованные команды персонажей не обязаны менять этот снимок.
- Новый поиск без совпадений обнуляет FindItem, FindCount и FindFullQuantity и очищает GetFoundItems. Чтение результата само по себе новый поиск не запускает.
# Получить размер списка
#
# Создаёт копию списка ID последнего обычного поиска.
#
# Array<Integer> — отдельный массив serial/ID в порядке последнего поиска. Пустой Array, если
# совпадений не было. Не содержит graphic, hue или Amount. Изменение возвращённого массива не
# редактирует сохранённый список поиска.
SUB Main()
# Предварительно выполнен обычный FindType для золота в рюкзаке. UserList=0 — не выходной
# параметр.
# Длина — число записей/ID. Это не сумма Amount в стопках. Пустой список даёт 0.
VAR found = UO.FindType(0x0EED, -1, 'backpack')
VAR items = UO.GetFindedList(0)
UO.Print(STR(GetArrayLength(items)))
END SUBРазбор параметров и выполнения:
- Предварительно выполнен обычный FindType для золота в рюкзаке. UserList=0 — не выходной параметр.
- Длина — число записей/ID. Это не сумма Amount в стопках. Пустой список даёт 0.
# Обойти все найденные ID
#
# Создаёт копию списка ID последнего обычного поиска.
#
# Array<Integer> — отдельный массив serial/ID в порядке последнего поиска. Пустой Array, если
# совпадений не было. Не содержит graphic, hue или Amount. Изменение возвращённого массива не
# редактирует сохранённый список поиска.
SUB Main()
# Предварительно выполнен обычный FindType для золота в рюкзаке. UserList=0 — не выходной
# параметр.
# items[i] — числовой serial. Hex используется только для вывода. Цикл не обращается за
# последним индексом.
VAR found = UO.FindType(0x0EED, -1, 'backpack')
VAR items = UO.GetFindedList(0)
VAR i = 0
WHILE i < GetArrayLength(items)
UO.Print('0x' + Hex(items[i]))
i = i + 1
WEND
END SUBРазбор параметров и выполнения:
- Предварительно выполнен обычный FindType для золота в рюкзаке. UserList=0 — не выходной параметр.
- items[i] — числовой serial. Hex используется только для вывода. Цикл не обращается за последним индексом.
# Проверить первую запись перед чтением
#
# Создаёт копию списка ID последнего обычного поиска.
#
# Array<Integer> — отдельный массив serial/ID в порядке последнего поиска. Пустой Array, если
# совпадений не было. Не содержит graphic, hue или Amount. Изменение возвращённого массива не
# редактирует сохранённый список поиска.
SUB Main()
# Предварительно выполнен обычный FindType для золота в рюкзаке. UserList=0 — не выходной
# параметр.
# Проверяются две разные вещи: запись в снимке и существование объекта сейчас. Порядок без явной
# сортировки не означает близость.
VAR found = UO.FindType(0x0EED, -1, 'backpack')
VAR items = UO.GetFindedList(0)
IF GetArrayLength(items) > 0 THEN
VAR first = items[0]
IF UO.Exists(first) THEN
UO.Print(UO.GetName(first))
END IF
ELSE
UO.Print('Empty list')
END IF
END SUBРазбор параметров и выполнения:
- Предварительно выполнен обычный FindType для золота в рюкзаке. UserList=0 — не выходной параметр.
- Проверяются две разные вещи: запись в снимке и существование объекта сейчас. Порядок без явной сортировки не означает близость.