API UO FindItem - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
UO.FindItem
Оглавление · Алфавитный указатель · Search
ClassicUO • Runtime API
Читает serial первого результата последнего обычного поиска.
Точный синтаксис
UO.FindItem() -> Any
Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.
Параметры
Параметров нет.
Возвращает
Integer — serial/ID первого найденного объекта, 0 при отсутствии результата. Это числовой serial, тогда как FindType возвращает hex-строку или пустую строку. Не возвращает type.
Поведение
- Данные принадлежат последнему обычному поиску этого скрипта. FindType с 1–5 аргументами, FindTypeEx, Count/CountEx/CountGround заменяют результаты. Расширенные фильтрованные команды персонажей не обязаны менять этот снимок.
- Новый поиск без совпадений обнуляет FindItem, FindCount и FindFullQuantity и очищает GetFoundItems. Чтение результата само по себе новый поиск не запускает.
Примеры
Пример 1. Измерить результат поиска золота
# Измерить результат поиска золота
#
# Читает serial первого результата последнего обычного поиска.
#
# Integer — serial/ID первого найденного объекта, 0 при отсутствии результата. Это числовой
# serial, тогда как FindType возвращает hex-строку или пустую строку. Не возвращает type.
SUB Main()
# type=0x0EED — золото; color=-1 — любой hue; backpack — только прямое содержимое рюкзака в этой
# форме FindType.
# Integer — serial/ID первого найденного объекта, 0 при отсутствии результата. Это числовой
# serial, тогда как FindType возвращает hex-строку или пустую строку. Не возвращает type.
VAR found = UO.FindType(0x0EED, -1, 'backpack')
VAR value = UO.FindItem()
UO.Print(STR(value))
END SUB
Разбор параметров и выполнения:
- type=0x0EED — золото; color=-1 — любой hue; backpack — только прямое содержимое рюкзака в этой форме FindType.
- Integer — serial/ID первого найденного объекта, 0 при отсутствии результата. Это числовой serial, тогда как FindType возвращает hex-строку или пустую строку. Не возвращает type.
Пример 2. Сравнить предметы и единицы
# Сравнить предметы и единицы
#
# Читает serial первого результата последнего обычного поиска.
#
# Integer — serial/ID первого найденного объекта, 0 при отсутствии результата. Это числовой
# serial, тогда как FindType возвращает hex-строку или пустую строку. Не возвращает type.
SUB Main()
# Все четыре чтения относятся к одному поиску, пока между ними не вызван другой поиск.
# Например, две стопки по 50: Items=2, First stack=50, All units=100; First ID содержит
# уникальный ID одной стопки.
VAR found = UO.FindType(0x0EED, -1, 'backpack')
UO.Print('Items: ' + STR(UO.FindCount()))
UO.Print('First stack: ' + STR(UO.FindQuantity()))
UO.Print('All units: ' + STR(UO.FindFullQuantity()))
UO.Print('First ID: 0x' + Hex(UO.FindItem()))
END SUB
Разбор параметров и выполнения:
- Все четыре чтения относятся к одному поиску, пока между ними не вызван другой поиск.
- Например, две стопки по 50: Items=2, First stack=50, All units=100; First ID содержит уникальный ID одной стопки.
Пример 3. Сохранить результат до следующего поиска
# Сохранить результат до следующего поиска
#
# Читает serial первого результата последнего обычного поиска.
#
# Integer — serial/ID первого найденного объекта, 0 при отсутствии результата. Это числовой
# serial, тогда как FindType возвращает hex-строку или пустую строку. Не возвращает type.
SUB Main()
# Первый type — золото, второй 0x0F7A — отдельный тип реагента. Новая команда меняет общий
# снимок.
# saved остаётся числом из первого поиска. Второе чтение относится к реагенту даже при
# отсутствии совпадений.
VAR found = UO.FindType(0x0EED, -1, 'backpack')
VAR saved = UO.FindItem()
found = UO.FindType(0x0F7A, -1, 'backpack')
UO.Print('Saved: ' + STR(saved))
UO.Print('Current: ' + STR(UO.FindItem()))
END SUB
Разбор параметров и выполнения:
- Первый type — золото, второй 0x0F7A — отдельный тип реагента. Новая команда меняет общий снимок.
- saved остаётся числом из первого поиска. Второе чтение относится к реагенту даже при отсутствии совпадений.