API UO Connected - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
UO.Connected
Оглавление · Алфавитный указатель · Client & Connection
ClassicUO • Runtime API
Проверяет вход в игровой мир.
Точный синтаксис
UO.Connected() -> Any
Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.
Параметры
Параметров нет.
Возвращает
Integer Boolean (1/0): 1 — клиент находится в игровом мире; 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 пишутся без кавычек. Вызовите команду один раз и сохраните результат: повторный вызов может повторить действие или прочитать уже изменившееся состояние.
Поведение
- Читаются уже полученные локальные данные. Запрос не открывает status и не заставляет сервер прислать обновление. После смерти, перехода карты или удаления объекта значения могут измениться между двумя вызовами.
- Это функции чтения: присваивание результата переменной сохраняет снимок. Оно не изменяет характеристику персонажа. Имена нечувствительны к регистру; используйте именно показанную форму с нужным числом аргументов.
Примеры
Пример 1. Проверить собственное состояние
# Проверить собственное состояние
#
# Проверяет вход в игровой мир.
#
# Integer Boolean (1/0): 1 — клиент находится в игровом мире; 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()
# Пустые скобки читают self. active — число 1 или 0; текст сообщения служит примером обработки
# ветвей.
# 1 — клиент находится в игровом мире; 0 — вход не завершён или игровое соединение не активно.
# Это не проверка доступа к интернету и не обещание ответа сервера на следующий пакет.
VAR active = UO.Connected()
IF active THEN
UO.Print('State is active')
ELSE
UO.Print('State is inactive or unavailable')
END IF
END SUB
Разбор параметров и выполнения:
- Пустые скобки читают self. active — число 1 или 0; текст сообщения служит примером обработки ветвей.
- 1 — клиент находится в игровом мире; 0 — вход не завершён или игровое соединение не активно. Это не проверка доступа к интернету и не обещание ответа сервера на следующий пакет.
Пример 2. Проверка с учётом наличия персонажа
# Проверка с учётом наличия персонажа
#
# Проверяет вход в игровой мир.
#
# Integer Boolean (1/0): 1 — клиент находится в игровом мире; 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()
# У команды нет аргумента объекта: даже после Exists(self) она читает только собственное
# состояние.
# Exists(self) проверяет загруженность игрока отдельно от запрашиваемого флага. Между проверками
# мир может измениться.
IF UO.Exists('self') THEN
VAR state = UO.Connected()
UO.Print('State 1/0: ' + STR(state))
END IF
END SUB
Разбор параметров и выполнения:
- У команды нет аргумента объекта: даже после Exists(self) она читает только собственное состояние.
- Exists(self) проверяет загруженность игрока отдельно от запрашиваемого флага. Между проверками мир может измениться.
Пример 3. Заметить изменение состояния без бесконечного ожидания
# Заметить изменение состояния без бесконечного ожидания
#
# Проверяет вход в игровой мир.
#
# Integer Boolean (1/0): 1 — клиент находится в игровом мире; 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()
# Два вызова без аргументов читают self; WAIT(500) — пауза полсекунды.
# Сравниваются два снимка флага. Переходы между снимками могут быть пропущены; это не подписка
# на все серверные события.
VAR before = UO.Connected()
WAIT(500)
VAR after = UO.Connected()
IF before <> after THEN
UO.Print('State changed from ' + STR(before) + ' to ' + STR(after))
END IF
END SUB
Разбор параметров и выполнения:
- Два вызова без аргументов читают self; WAIT(500) — пауза полсекунды.
- Сравниваются два снимка флага. Переходы между снимками могут быть пропущены; это не подписка на все серверные события.