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) — пауза полсекунды.
  • Сравниваются два снимка флага. Переходы между снимками могут быть пропущены; это не подписка на все серверные события.