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 остаётся числом из первого поиска. Второе чтение относится к реагенту даже при отсутствии совпадений.