API UO ClientInfo - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
UO.ClientInfo
UO API · Все команды · Возвращаемые значения
Читает краткие сведения о запущенном клиенте.
Точный синтаксис
UO.ClientInfo() -> Array
Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.
Параметры
Параметров нет.
Возвращает
Array из трёх String: [0] — название продукта, [1] — версия запущенного клиента, [2] — каталог клиента. Индексы начинаются с 0. Это не строка JSON и не словарь.
Поведение
- Данные читаются из RuntimeProductName, RuntimeProductVersion и ClientPath. Команда ничего не меняет и не отправляет серверу.
- Используйте GetArrayLength перед индексированием в общей вспомогательной функции. Не путайте сведения о клиенте с характеристиками персонажа или версией сервера.
- Читает сведения о текущем клиенте ClassicUO.
Внутренние функции: последовательность выполнения
Ниже описана реализация этого движка. Имена внутренних методов не являются дополнительными командами BASIC.
1. ExecuteClientApiCompatibility
Читает три свойства bridge в заданном порядке.
Создаёт новый массив из трёх строковых InjectionValue.
Исходник проекта: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; функция ExecuteClientApiCompatibility.
Функция не перечисляет установленные плагины, оборудование компьютера или доступные скрипты.
Примеры
Пример 1. Прочитать все три поля
# Прочитать все три поля
#
# Читает краткие сведения о запущенном клиенте.
#
# Array из трёх String: [0] — название продукта, [1] — версия запущенного клиента, [2] — каталог
# клиента. Индексы начинаются с 0. Это не строка JSON и не словарь.
SUB Main()
# 0 — продукт, 1 — версия, 2 — каталог. Значение версии берётся при запуске, в примере оно не
# зафиксировано.
VAR info = UO.ClientInfo()
UO.Print("Product: " + info[0])
UO.Print("Client version: " + info[1])
UO.Print("Client folder: " + info[2])
END SUB
Разбор параметров и выполнения:
- 0 — продукт, 1 — версия, 2 — каталог. Значение версии берётся при запуске, в примере оно не зафиксировано.
Пример 2. Перебрать массив
# Перебрать массив
#
# Читает краткие сведения о запущенном клиенте.
#
# Array из трёх String: [0] — название продукта, [1] — версия запущенного клиента, [2] — каталог
# клиента. Индексы начинаются с 0. Это не строка JSON и не словарь.
SUB Main()
# GetArrayLength возвращает число полей. Последний допустимый индекс равен длине минус 1.
VAR info = UO.ClientInfo()
VAR i = 0
WHILE i < GetArrayLength(info)
UO.Print(CStr(i) + ": " + info[i])
i = i + 1
WEND
END SUB
Разбор параметров и выполнения:
- GetArrayLength возвращает число полей. Последний допустимый индекс равен длине минус 1.
Пример 3. Полная функция получения подписи клиента
# Полная функция получения подписи клиента
#
# Читает краткие сведения о запущенном клиенте.
#
# Array из трёх String: [0] — название продукта, [1] — версия запущенного клиента, [2] — каталог
# клиента. Индексы начинаются с 0. Это не строка JSON и не словарь.
SUB Main()
# ClientCaption возвращает строку из названия и версии. Исходный массив не изменяется.
UO.Print(ClientCaption())
END SUB
FUNCTION ClientCaption()
VAR info = UO.ClientInfo()
IF GetArrayLength(info) < 2 THEN
RETURN "Client information unavailable"
END IF
RETURN info[0] + " / " + info[1]
END FUNCTION
Разбор параметров и выполнения:
- ClientCaption возвращает строку из названия и версии. Исходный массив не изменяется.