API UO GetYellowBar - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
UO.GetYellowBar
Оглавление · Алфавитный указатель · Character
ClassicUO • Runtime API
Проверяет флаг жёлтой полосы здоровья mobile.
Точный синтаксис
UO.GetYellowBar(id:Any) -> Integer
Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.
Параметры
id / ObjID / MobID— Обязательный serial/ID конкретного объекта: Integer, hex-строка либо алиас self, backpack, lasttarget, lastobject, lastcontainer, laststatus, finditem, lastcorpse или имя AddObject. Это не graphic/type. Неустановленное имя разрешается в 0; никакой новый target команда не открывает. Аргумент обязателен; для себя передайте self.
Возвращает
Integer 1 — загруженный mobile имеет признак IsYellowHits. Integer 0 — признак отсутствует, объект не является mobile, неизвестен или удалён. Это серверный/совместимый флаг, а не цвет темы IDE и не количество HP. Отсутствие флага не доказывает уязвимость: сервер может обозначать защиту иначе.
Это логический результат: 1 = TRUE, 0 = FALSE. После VAR result = команда(...) можно писать IF result = TRUE THEN или IF result = 1 THEN; для отрицательного результата — IF result = FALSE THEN или IF result = 0 THEN. TRUE/FALSE пишутся без кавычек. Вызовите команду один раз и сохраните результат: повторный вызов может повторить действие или прочитать уже изменившееся состояние.
Поведение
- Читается локальная модель клиента; запросов серверу, ожидания и перемещения нет.
- Результат относится к моменту чтения. После WAIT или другого действия объект и его флаги могут измениться.
- Это серверный/совместимый флаг, а не цвет темы IDE и не количество HP. Отсутствие флага не доказывает уязвимость: сервер может обозначать защиту иначе.
Примеры
Пример 1. Проверить собственное состояние
# Проверить собственное состояние
#
# Проверяет флаг жёлтой полосы здоровья mobile.
#
# Integer 1 — загруженный mobile имеет признак IsYellowHits. Integer 0 — признак отсутствует,
# объект не является mobile, неизвестен или удалён. Это серверный/совместимый флаг, а не цвет
# темы IDE и не количество HP. Отсутствие флага не доказывает уязвимость: сервер может
# обозначать защиту иначе.
#
# Это логический результат: 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 явно выбирает своего персонажа. state — только 1/0.
# Это серверный/совместимый флаг, а не цвет темы IDE и не количество HP. Отсутствие флага не
# доказывает уязвимость: сервер может обозначать защиту иначе.
VAR state = UO.GetYellowBar('self')
VAR hp = UO.GetHP('self')
UO.Print('Yellow flag: ' + STR(state))
UO.Print('Known HP: ' + STR(hp))
END SUB
Разбор параметров и выполнения:
- Аргумент self явно выбирает своего персонажа. state — только 1/0.
- Это серверный/совместимый флаг, а не цвет темы IDE и не количество HP. Отсутствие флага не доказывает уязвимость: сервер может обозначать защиту иначе.
Пример 2. Проверить выбранного mobile
# Проверить выбранного mobile
#
# Проверяет флаг жёлтой полосы здоровья mobile.
#
# Integer 1 — загруженный mobile имеет признак IsYellowHits. Integer 0 — признак отсутствует,
# объект не является mobile, неизвестен или удалён. Это серверный/совместимый флаг, а не цвет
# темы IDE и не количество HP. Отсутствие флага не доказывает уязвимость: сервер может
# обозначать защиту иначе.
#
# Это логический результат: 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()
# IsNpc исключает предмет и неизвестный объект. target сохраняет один serial, а не живую ссылку
# на меняющийся lasttarget.
# Результат относится к полю IsYellowHits. Данные обновляются только после получения
# соответствующего состояния клиентом.
VAR target = UO.GetSerial('lasttarget')
IF UO.IsNpc(target) THEN
VAR state = UO.GetYellowBar(target)
UO.Print('Selected mobile state 1/0: ' + STR(state))
ELSE
UO.Print('No loaded mobile selected')
END IF
END SUB
Разбор параметров и выполнения:
- IsNpc исключает предмет и неизвестный объект. target сохраняет один serial, а не живую ссылку на меняющийся lasttarget.
- Результат относится к полю IsYellowHits. Данные обновляются только после получения соответствующего состояния клиентом.
Пример 3. Сравнить состояние до и после паузы
# Сравнить состояние до и после паузы
#
# Проверяет флаг жёлтой полосы здоровья mobile.
#
# Integer 1 — загруженный mobile имеет признак IsYellowHits. Integer 0 — признак отсутствует,
# объект не является mobile, неизвестен или удалён. Это серверный/совместимый флаг, а не цвет
# темы IDE и не количество HP. Отсутствие флага не доказывает уязвимость: сервер может
# обозначать защиту иначе.
#
# Это логический результат: 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()
# WAIT(500) — пауза в миллисекундах. После неё отдельно проверяется, что mobile ещё существует.
# Сравниваются два снимка. Промежуточные изменения могут быть пропущены, и это не непрерывная
# подписка на серверные события.
VAR target = UO.GetSerial('lasttarget')
IF UO.IsNpc(target) THEN
VAR before = UO.GetYellowBar(target)
WAIT(500)
IF UO.IsNpc(target) THEN
VAR after = UO.GetYellowBar(target)
IF before <> after THEN
UO.Print('Flag changed: ' + STR(before) + ' -> ' + STR(after))
END IF
ELSE
UO.Print('Mobile left the local world')
END IF
END IF
END SUB
Разбор параметров и выполнения:
- WAIT(500) — пауза в миллисекундах. После неё отдельно проверяется, что mobile ещё существует.
- Сравниваются два снимка. Промежуточные изменения могут быть пропущены, и это не непрерывная подписка на серверные события.