API UO DropHere - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki

UO.DropHere

Оглавление · Алфавитный указатель · Items

ClassicUO • Runtime API

Переносит весь указанный предмет/стек на землю в текущую точку персонажа.

Точный синтаксис

UO.DropHere(object:Any) -> Integer

Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.

Параметры

  • object — Serial конкретного предмета/персонажа: число, hex/десятичная строка, self/backpack/lasttarget/lastobject/lastcontainer/lastcorpse/finditem/laststatus либо сохранённое имя AddObject. Это не type. Объект должен быть загружен; перед действием проверяйте Exists.

Возвращает

Integer 1 — запрос переноса принят клиентом; 0 — не выполнен. Это не serial и не подтверждение сервера.

Это логический результат: 1 = TRUE, 0 = FALSE. После VAR result = команда(...) можно писать IF result = TRUE THEN или IF result = 1 THEN; для отрицательного результата — IF result = FALSE THEN или IF result = 0 THEN. TRUE/FALSE пишутся без кавычек. Вызовите команду один раз и сохраните результат: повторный вызов может повторить действие или прочитать уже изменившееся состояние.

Поведение

  • Зарегистрирована форма ровно с одним аргументом. Для части стека используйте Drop(item,count) либо MoveItem.
  • X/Y/Z берутся у персонажа во время вызова. Предварительный DragItem не требуется.

Примеры

Пример 1. Бросить известный предмет

# Бросить известный предмет
#
# Переносит весь указанный предмет/стек на землю в текущую точку персонажа.
#
# Integer 1 — запрос переноса принят клиентом; 0 — не выполнен. Это не serial и не подтверждение
# сервера.
#
# Это логический результат: 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()
    # object — serial, замените реальным.
    # Весь стек переносится под персонажа.

    VAR ok = UO.DropHere(0x40001234)
END SUB

Разбор параметров и выполнения:

  • object — serial, замените реальным.
  • Весь стек переносится под персонажа.

Пример 2. Использовать сохранённое имя

# Использовать сохранённое имя
#
# Переносит весь указанный предмет/стек на землю в текущую точку персонажа.
#
# Integer 1 — запрос переноса принят клиентом; 0 — не выполнен. Это не serial и не подтверждение
# сервера.
#
# Это логический результат: 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()
    # loot задан через AddObject.
    # Exists проверяет доступность, а не разрешение сервера на перенос.

    IF UO.Exists('loot') THEN
        VAR ok = UO.DropHere('loot')
    END IF
END SUB

Разбор параметров и выполнения:

  • loot задан через AddObject.
  • Exists проверяет доступность, а не разрешение сервера на перенос.

Пример 3. Обработать отказ клиента

# Обработать отказ клиента
#
# Переносит весь указанный предмет/стек на землю в текущую точку персонажа.
#
# Integer 1 — запрос переноса принят клиентом; 0 — не выполнен. Это не serial и не подтверждение
# сервера.
#
# Это логический результат: 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()
    # ok — Integer 1/0.
    # Для подтверждения серверного результата отдельно проверяйте положение и контейнер предмета.

    VAR ok = UO.DropHere('loot')
    IF ok = 0 THEN
        UO.Print('Drop request was not accepted')
    END IF
END SUB

Разбор параметров и выполнения:

  • ok — Integer 1/0.
  • Для подтверждения серверного результата отдельно проверяйте положение и контейнер предмета.