API UO Picking - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
UO.Picking
Оглавление · Алфавитный указатель · Items
ClassicUO • Runtime API
Проверяет, занят ли курсор клиента поднятым предметом.
Точный синтаксис
UO.Picking() -> Integer
Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.
Параметры
Параметров нет.
Возвращает
Integer 1 — ItemHold.Enabled установлен; 0 — не установлен. Это состояние клиента, не ID и не подтверждение серверной доставки. Учитывается предмет, поднятый мышью или другим скриптом.
Это логический результат: 1 = TRUE, 0 = FALSE. После VAR result = команда(...) можно писать IF result = TRUE THEN или IF result = 1 THEN; для отрицательного результата — IF result = FALSE THEN или IF result = 0 THEN. TRUE/FALSE пишутся без кавычек. Вызовите команду один раз и сохраните результат: повторный вызов может повторить действие или прочитать уже изменившееся состояние.
Поведение
- Чтение не поднимает и не сбрасывает предмет.
- Для собственного переноса проверяйте также результат Drag/DragItem; чужой занятый курсор не означает, что нужный предмет успешно взят.
Примеры
Пример 1. Показать состояние
# Показать состояние
#
# Проверяет, занят ли курсор клиента поднятым предметом.
#
# Integer 1 — ItemHold.Enabled установлен; 0 — не установлен. Это состояние клиента, не ID и не
# подтверждение серверной доставки. Учитывается предмет, поднятый мышью или другим скриптом.
#
# Это логический результат: 1 = TRUE, 0 = FALSE. После VAR result = команда(...) можно писать IF
# result = TRUE THEN или IF result = 1 THEN; для отрицательного результата — IF result = FALSE
# THEN или IF result = 0 THEN. TRUE/FALSE пишутся без кавычек. Вызовите команду один раз и
# сохраните результат: повторный вызов может повторить действие или прочитать уже изменившееся
# состояние.
SUB Main()
# Аргументов нет.
# Выводится 1 или 0.
UO.Print(STR(UO.Picking()))
END SUB
Разбор параметров и выполнения:
- Аргументов нет.
- Выводится 1 или 0.
Пример 2. Проверить занятые руки до захвата
# Проверить занятые руки до захвата
#
# Проверяет, занят ли курсор клиента поднятым предметом.
#
# Integer 1 — ItemHold.Enabled установлен; 0 — не установлен. Это состояние клиента, не ID и не
# подтверждение серверной доставки. Учитывается предмет, поднятый мышью или другим скриптом.
#
# Это логический результат: 1 = TRUE, 0 = FALSE. После VAR result = команда(...) можно писать IF
# result = TRUE THEN или IF result = 1 THEN; для отрицательного результата — IF result = FALSE
# THEN или IF result = 0 THEN. TRUE/FALSE пишутся без кавычек. Вызовите команду один раз и
# сохраните результат: повторный вызов может повторить действие или прочитать уже изменившееся
# состояние.
SUB Main()
# Один аргумент Drag означает весь стек и timeout=0.
# Picking проверяет общий курсор клиента. Не запускайте два независимых переноса одновременно.
IF UO.Picking() = 0 THEN
IF UO.Drag('loot') THEN
VAR dropped = UO.DropItem('backpack', -1, -1, 0)
END IF
END IF
END SUB
Разбор параметров и выполнения:
- Один аргумент Drag означает весь стек и timeout=0.
- Picking проверяет общий курсор клиента. Не запускайте два независимых переноса одновременно.
Пример 3. Подождать свободный курсор с пределом
# Подождать свободный курсор с пределом
#
# Проверяет, занят ли курсор клиента поднятым предметом.
#
# Integer 1 — ItemHold.Enabled установлен; 0 — не установлен. Это состояние клиента, не ID и не
# подтверждение серверной доставки. Учитывается предмет, поднятый мышью или другим скриптом.
#
# Это логический результат: 1 = TRUE, 0 = FALSE. После VAR result = команда(...) можно писать IF
# result = TRUE THEN или IF result = 1 THEN; для отрицательного результата — IF result = FALSE
# THEN или IF result = 0 THEN. TRUE/FALSE пишутся без кавычек. Вызовите команду один раз и
# сохраните результат: повторный вызов может повторить действие или прочитать уже изменившееся
# состояние.
SUB Main()
# Проверка повторяется до двадцати раз с паузами по 50 мс.
# Команда не освобождает курсор и не отменяет чужой перенос.
VAR tries = 0
WHILE UO.Picking() AND tries < 20
WAIT(50)
tries = tries + 1
WEND
IF UO.Picking() THEN
UO.Print('Cursor is still occupied')
END IF
END SUB
Разбор параметров и выполнения:
- Проверка повторяется до двадцати раз с паузами по 50 мс.
- Команда не освобождает курсор и не отменяет чужой перенос.