-
Notifications
You must be signed in to change notification settings - Fork 0
API UO IsFlying
Оглавление · Алфавитный указатель · Character
ClassicUO • Runtime API
Проверяет полёт персонажа.
UO.IsFlying() -> Integer
UO.IsFlying(value:Any) -> Integer
Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.
-
value— Необязательный объект в показанных формах: serial числом/hex-строкой, self, lasttarget или зарегистрированное имя AddObject. Это не type. Без аргумента читается self. Неизвестный текст в некоторых формах вызывает ошибку преобразования; проверяйте имя перед вызовом.
Integer Boolean: 1 = TRUE, 0 = FALSE. Сравнивать можно с числами или логическими константами без кавычек. 1 — mobile имеет IsFlying, 0 — флага нет или mobile отсутствует. Высота Z сама по себе не означает полёт.
Это логический результат: 1 = TRUE, 0 = FALSE. После VAR result = команда(...) можно писать IF result = TRUE THEN или IF result = 1 THEN; для отрицательного результата — IF result = FALSE THEN или IF result = 0 THEN. TRUE/FALSE пишутся без кавычек. Вызовите команду один раз и сохраните результат: повторный вызов может повторить действие или прочитать уже изменившееся состояние.
- Читает локальную модель: не открывает target, не запрашивает status, не меняет флаг и не отправляет пакет. Уничтоженный объект считается отсутствующим ещё до удаления записи из словаря.
- Результат — отдельное чтение. Мир может измениться между Exists и следующим вызовом; несколько запросов не образуют атомарный снимок.
- Для Poisoned/Flying учитывается версия протокола: до 7.0.0.0 бит 0x04 означает яд; начиная с 7.0.0.0 он означает полёт, а яд хранится отдельно. Полёт не вычисляется из Z.
Ниже реальные внутренние C#-этапы. ReadState — полностью определённая вспомогательная функция примера, а не скрытая встроенная команда.
При создании runtime RegisterCharacterGetterAliases регистрирует имена и формы. Без аргумента используется bridge.Self; с аргументом передаётся выбранный serial. Ранее зарегистрированные формы сохраняются.
1 — mobile имеет IsFlying, 0 — флага нет или mobile отсутствует. Высота Z сама по себе не означает полёт.
Исходник проекта: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; функция RegisterCharacterGetterAliases.
TryGetObject распознаёт число, hex-строку и сохранённые имена. Запись AddObject разрешается заново при вызове; это не поиск graphic/type и не интерактивный выбор.
Необязательный объект в показанных формах: serial числом/hex-строкой, self, lasttarget или зарегистрированное имя AddObject. Это не type. Без аргумента читается self. Неизвестный текст в некоторых формах вызывает ошибку преобразования; проверяйте имя перед вызовом.
Исходник проекта: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; функция TryGetObject.
Invoke выполняет чтение на игровом потоке; с рабочего потока ожидается обработка запроса менеджером. Отмена скрипта прерывает ожидание. Паузы и дополнительные сетевые запросы не добавляются.
Результат — отдельное чтение. Мир может измениться между Exists и следующим вызовом; несколько запросов не образуют атомарный снимок.
Исходник проекта: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; функция Invoke.
World.Get ищет объект по serial и возвращает null для IsDestroyed. Затем выбирается флаг Mobile. Для Alive проверяются Exists и отсутствие IsDead; предмет допускается. При чтении собственного Dead используется Player.IsDead.
1 — mobile имеет IsFlying, 0 — флага нет или mobile отсутствует. Высота Z сама по себе не означает полёт.
Исходник проекта: src/ClassicUO.Client/Game/World.cs; функция Get.
Читает локальную модель: не открывает target, не запрашивает status, не меняет флаг и не отправляет пакет. Уничтоженный объект считается отсутствующим ещё до удаления записи из словаря.
# Проверить собственное состояние
#
# Проверяет полёт персонажа.
#
# Integer Boolean: 1 = TRUE, 0 = FALSE. Сравнивать можно с числами или логическими константами
# без кавычек. 1 — mobile имеет IsFlying, 0 — флага нет или mobile отсутствует. Высота Z сама по
# себе не означает полёт.
#
# Это логический результат: 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()
# Пустые скобки читают self. active сохраняет результат один раз; TRUE и FALSE задают две ветви.
# Print только выводит пример сообщения.
VAR active = UO.IsFlying()
IF active = TRUE THEN
UO.Print('State is active')
ELSE
UO.Print('State is inactive or unavailable')
END IF
END SUBРазбор параметров и выполнения:
- Пустые скобки читают self. active сохраняет результат один раз; TRUE и FALSE задают две ветви. Print только выводит пример сообщения.
# Выбранный объект и полная функция ReadState
#
# Проверяет полёт персонажа.
#
# Integer Boolean: 1 = TRUE, 0 = FALSE. Сравнивать можно с числами или логическими константами
# без кавычек. 1 — mobile имеет IsFlying, 0 — флага нет или mobile отсутствует. Высота Z сама по
# себе не означает полёт.
#
# Это логический результат: 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()
# lasttarget — ранее выбранный объект. Exists проверяет его наличие. obj — единственный параметр
# ReadState; функция возвращает результат команды без изменения. Её определение входит в
# копируемый код.
IF UO.Exists('lasttarget') THEN
VAR observed = ReadState('lasttarget')
UO.Print('State 1/0: ' + CStr(observed))
END IF
END SUB
SUB ReadState(obj)
RETURN UO.IsFlying(obj)
END SUBРазбор параметров и выполнения:
- lasttarget — ранее выбранный объект. Exists проверяет его наличие. obj — единственный параметр ReadState; функция возвращает результат команды без изменения. Её определение входит в копируемый код.
# Заметить изменение за полсекунды
#
# Проверяет полёт персонажа.
#
# Integer Boolean: 1 = TRUE, 0 = FALSE. Сравнивать можно с числами или логическими константами
# без кавычек. 1 — mobile имеет IsFlying, 0 — флага нет или mobile отсутствует. Высота Z сама по
# себе не означает полёт.
#
# Это логический результат: 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()
# Два вызова без аргументов читают self, WAIT(500) задаёт 500 миллисекунд. Сравниваются два
# снимка; промежуточные переходы могут быть пропущены. Бесконечного ожидания нет.
VAR before = UO.IsFlying()
WAIT(500)
VAR after = UO.IsFlying()
IF before <> after THEN
UO.Print('State changed: ' + CStr(before) + ' -> ' + CStr(after))
END IF
END SUBРазбор параметров и выполнения:
- Два вызова без аргументов читают self, WAIT(500) задаёт 500 миллисекунд. Сравниваются два снимка; промежуточные переходы могут быть пропущены. Бесконечного ожидания нет.
ClassicUO - Bad Newbie & Basic IDE Edition