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