API UO GetParalyzed - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
UO.GetParalyzed
Оглавление · Алфавитный указатель · Character
ClassicUO • Runtime API
Проверяет известный клиенту флаг паралича персонажа.
Точный синтаксис
UO.GetParalyzed() -> Integer
UO.GetParalyzed(value:Any) -> Integer
Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.
Параметры
value— Необязательный serial/ID mobile: число, hex-строка, self, lasttarget либо другое стандартное имя объекта или имя AddObject. Это не graphic/type. Без аргумента используется self. Неизвестное имя разрешается в 0; target не открывается.
Возвращает
Integer Boolean: 1 = TRUE — загруженный mobile имеет флаг IsParalyzed; 0 = FALSE — флага нет, mobile неизвестен, удалён либо объект является предметом. Это не время паралича и не гарантия возможности движения при результате 0.
Поведение
- Используйте Paralyzed для проверки флага паралича. Варианты Is/Get, GetParalisa, Frozen и GetLocked читают тот же флаг.
- Команда только читает локальные данные. Она не накладывает и не снимает паралич, не ждёт его окончания и не отправляет запрос обновления серверу.
- Для результата этой проверки условия value = TRUE, value = 1 и IF value равнозначны. TRUE/FALSE пишутся без кавычек. Значение сохраняет смысл флага, а не количества или ID.
Примеры
Пример 1. Проверить себя через TRUE
# Проверить себя через TRUE
#
# Проверяет известный клиенту флаг паралича персонажа.
#
# Integer Boolean: 1 = TRUE — загруженный mobile имеет флаг IsParalyzed; 0 = FALSE — флага нет,
# mobile неизвестен, удалён либо объект является предметом. Это не время паралича и не гарантия
# возможности движения при результате 0.
SUB Main()
# Пустые скобки выбирают self. state сохраняет один снимок флага; TRUE — числовая константа 1.
# Результат FALSE не исключает стену, отсутствие выносливости или другую причину остановки.
VAR state = UO.GetParalyzed()
IF state = TRUE THEN
UO.Print('Paralysis flag is set')
ELSE
UO.Print('Paralysis flag is absent or unavailable')
END IF
END SUB
Разбор параметров и выполнения:
- Пустые скобки выбирают self. state сохраняет один снимок флага; TRUE — числовая константа 1.
- Результат FALSE не исключает стену, отсутствие выносливости или другую причину остановки.
Пример 2. Проверить выбранного mobile
# Проверить выбранного mobile
#
# Проверяет известный клиенту флаг паралича персонажа.
#
# Integer Boolean: 1 = TRUE — загруженный mobile имеет флаг IsParalyzed; 0 = FALSE — флага нет,
# mobile неизвестен, удалён либо объект является предметом. Это не время паралича и не гарантия
# возможности движения при результате 0.
SUB Main()
# target сохраняет hex-строку serial последней цели. IsNpc проверяет, что это загруженный
# mobile, включая игроков.
# Команда с аргументом читает именно target. Она не выбирает нового персонажа и не меняет
# lasttarget.
VAR target = UO.GetSerial('lasttarget')
IF UO.IsNpc(target) THEN
VAR state = UO.GetParalyzed(target)
UO.Print('Selected mobile paralysis 1/0: ' + STR(state))
ELSE
UO.Print('No loaded mobile selected')
END IF
END SUB
Разбор параметров и выполнения:
- target сохраняет hex-строку serial последней цели. IsNpc проверяет, что это загруженный mobile, включая игроков.
- Команда с аргументом читает именно target. Она не выбирает нового персонажа и не меняет lasttarget.
Пример 3. Ограниченно подождать снятия паралича
# Ограниченно подождать снятия паралича
#
# Проверяет известный клиенту флаг паралича персонажа.
#
# Integer Boolean: 1 = TRUE — загруженный mobile имеет флаг IsParalyzed; 0 = FALSE — флага нет,
# mobile неизвестен, удалён либо объект является предметом. Это не время паралича и не гарантия
# возможности движения при результате 0.
SUB Main()
# Не больше 10 пауз по 100 мс. Каждый вызов без аргумента заново читает self.
# После цикла отдельно проверяется наличие self. Это наблюдение примерно на секунду плюс
# исполнение команд, а не гарантированное снятие паралича.
VAR attempts = 0
WHILE UO.GetParalyzed() = TRUE AND attempts < 10
WAIT(100)
attempts = attempts + 1
WEND
IF UO.IsNpc('self') THEN
IF UO.GetParalyzed() = FALSE THEN
UO.Print('Paralysis flag is clear')
ELSE
UO.Print('Still paralyzed')
END IF
ELSE
UO.Print('Self is unavailable')
END IF
END SUB
Разбор параметров и выполнения:
- Не больше 10 пауз по 100 мс. Каждый вызов без аргумента заново читает self.
- После цикла отдельно проверяется наличие self. Это наблюдение примерно на секунду плюс исполнение команд, а не гарантированное снятие паралича.