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