API UO InParty - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
UO.InParty
Оглавление · Алфавитный указатель · Party
ClassicUO • Runtime API
Проверяет наличие текущей группы по состоянию Party клиента.
Точный синтаксис
UO.InParty() -> Integer
Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.
Параметры
Параметров нет.
Возвращает
Integer 1 — в Party известен ненулевой serial лидера. Integer 0 — лидера нет. Это не число участников и не индекс собственного персонажа в списке.
Это логический результат: 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 или другого действия объект и его флаги могут измениться.
- В этом клиенте проверяется Party.Leader, а не просто число непустых строк списка. При принятом приглашении состояние изменится после серверного обновления.
Примеры
Пример 1. Разветвить скрипт по наличию группы
# Разветвить скрипт по наличию группы
#
# Проверяет наличие текущей группы по состоянию Party клиента.
#
# Integer 1 — в Party известен ненулевой serial лидера. Integer 0 — лидера нет. Это не число
# участников и не индекс собственного персонажа в списке.
#
# Это логический результат: 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()
# Аргументов нет. Проверяется группа текущего персонажа.
# Команда не создаёт группу и не принимает приглашение.
IF UO.InParty() THEN
UO.Print('Party is active')
ELSE
UO.Print('No active party')
END IF
END SUB
Разбор параметров и выполнения:
- Аргументов нет. Проверяется группа текущего персонажа.
- Команда не создаёт группу и не принимает приглашение.
Пример 2. Сохранить состояние один раз
# Сохранить состояние один раз
#
# Проверяет наличие текущей группы по состоянию Party клиента.
#
# Integer 1 — в Party известен ненулевой serial лидера. Integer 0 — лидера нет. Это не число
# участников и не индекс собственного персонажа в списке.
#
# Это логический результат: 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()
# inParty — числовой Boolean, не число участников.
# Повторное использование переменной не перечитывает изменившуюся группу.
VAR inParty = UO.InParty()
UO.Print('Party 1/0: ' + STR(inParty))
END SUB
Разбор параметров и выполнения:
- inParty — числовой Boolean, не число участников.
- Повторное использование переменной не перечитывает изменившуюся группу.
Пример 3. Подождать обновления не больше нескольких проверок
# Подождать обновления не больше нескольких проверок
#
# Проверяет наличие текущей группы по состоянию Party клиента.
#
# Integer 1 — в Party известен ненулевой serial лидера. Integer 0 — лидера нет. Это не число
# участников и не индекс собственного персонажа в списке.
#
# Это логический результат: 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()
# Не больше 10 пауз по 200 мс; цикл ограничен примерно двумя секундами плюс выполнение команд.
# Ожидание не отправляет приглашений и не гарантирует вступление в группу.
VAR attempts = 0
WHILE UO.InParty() = 0 AND attempts < 10
WAIT(200)
attempts = attempts + 1
WEND
IF UO.InParty() THEN
UO.Print('Party state received')
ELSE
UO.Print('Party still absent')
END IF
END SUB
Разбор параметров и выполнения:
- Не больше 10 пауз по 200 мс; цикл ограничен примерно двумя секундами плюс выполнение команд.
- Ожидание не отправляет приглашений и не гарантирует вступление в группу.