API UO GetQuantity - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
UO.GetQuantity
Оглавление · Алфавитный указатель · Items
ClassicUO • Runtime API
Читает количество единиц в одном стеке предмета.
Точный синтаксис
UO.GetQuantity(id:String) -> Integer
UO.GetQuantity(id:Integer) -> Integer
UO.GetQuantity(ObjID:Any) -> Any
Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.
Параметры
id / ObjID— Serial/ID объекта, а не graphic/type. Число, hex-строка, стандартное имя self/backpack/lasttarget/lastobject/lastcontainer/laststatus/finditem/lastcorpse или имя AddObject. Алиас должен быть установлен; существование проверяется Exists. В зарегистрированной форме без аргументов используется self. Для этой команды id обязателен.
Возвращает
Integer — поле Amount конкретного предмета. Стек из 1000 единиц обычно возвращает 1000; одиночный предмет — 1. Для неизвестного serial и для персонажа возвращается 0. Это не число дочерних предметов сундука и не лимит items команды MassMove.
Поведение
- Читаются последние данные, уже известные клиенту; запрос обновления серверу не отправляется.
- Неизвестный объект и ещё не полученное свойство могут иметь нулевое/пустое значение. Проверяйте Exists и условия конкретного действия.
Примеры
Пример 1. Посмотреть размер найденной стопки
# Посмотреть размер найденной стопки
#
# Читает количество единиц в одном стеке предмета.
#
# Integer — поле Amount конкретного предмета. Стек из 1000 единиц обычно возвращает 1000;
# одиночный предмет — 1. Для неизвестного serial и для персонажа возвращается 0. Это не число
# дочерних предметов сундука и не лимит items команды MassMove.
SUB Main()
# FindType ищет type золота любого цвета в рюкзаке.
# gold содержит один serial, поэтому amount относится только к одной найденной стопке.
VAR gold = UO.FindType(0x0EED, -1, 'backpack')
IF gold <> '' THEN
VAR amount = UO.GetQuantity(gold)
UO.Print('Units in this stack: ' + STR(amount))
END IF
END SUB
Разбор параметров и выполнения:
- FindType ищет type золота любого цвета в рюкзаке.
- gold содержит один serial, поэтому amount относится только к одной найденной стопке.
Пример 2. Проверить минимальное количество
# Проверить минимальное количество
#
# Читает количество единиц в одном стеке предмета.
#
# Integer — поле Amount конкретного предмета. Стек из 1000 единиц обычно возвращает 1000;
# одиночный предмет — 1. Для неизвестного serial и для персонажа возвращается 0. Это не число
# дочерних предметов сундука и не лимит items команды MassMove.
SUB Main()
# id=sample — последний использованный предмет.
# 50 означает единицы в данном стеке. Здесь не подсчитываются 50 отдельных items.
VAR sample = UO.GetSerial('lastobject')
IF UO.Exists(sample) THEN
IF UO.GetQuantity(sample) >= 50 THEN
UO.Print('At least 50 units in this item')
END IF
END IF
END SUB
Разбор параметров и выполнения:
- id=sample — последний использованный предмет.
- 50 означает единицы в данном стеке. Здесь не подсчитываются 50 отдельных items.
Пример 3. Отличить количество стопок от единиц
# Отличить количество стопок от единиц
#
# Читает количество единиц в одном стеке предмета.
#
# Integer — поле Amount конкретного предмета. Стек из 1000 единиц обычно возвращает 1000;
# одиночный предмет — 1. Для неизвестного serial и для персонажа возвращается 0. Это не число
# дочерних предметов сундука и не лимит items команды MassMove.
SUB Main()
# FindCount относится к результатам последнего поиска; GetQuantity — к одному serial.
# Числа могут сильно различаться. MassMove quantity ограничивает целые items, включая стопки.
VAR item = UO.FindType(0x0EED, -1, 'backpack')
VAR stacks = UO.FindCount()
IF item <> '' THEN
VAR units = UO.GetQuantity(item)
UO.Print('Matching items: ' + STR(stacks))
UO.Print('Units in selected item: ' + STR(units))
END IF
END SUB
Разбор параметров и выполнения:
- FindCount относится к результатам последнего поиска; GetQuantity — к одному serial.
- Числа могут сильно различаться. MassMove quantity ограничивает целые items, включая стопки.