API UO ClientProfilePath - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
UO.ClientProfilePath
UO API · Все команды · Возвращаемые значения
Возвращает текущий каталог профиля клиента.
Точный синтаксис
UO.ClientProfilePath() -> String
Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.
Параметры
Параметров нет.
Возвращает
String — путь к каталогу. Это не Boolean, не массив и не ID. Пустой путь означает, что значение недоступно; не используйте его как текущую рабочую папку по умолчанию.
Поведение
- Читается ProfileManager.ProfilePath; если профиль ещё не выбран, возвращается пустая строка. Сам вызов не создаёт профиль и не переносит настройки.
- Команда только читает путь, ничего не открывает, не создаёт и не сохраняет. Конечный разделитель не следует предполагать; пример helper добавляет его при необходимости.
- Имя является игровым/клиентским API и пишется с UO. ClientPath возвращает каталог клиента, ClientProfilePath — каталог активного профиля.
Внутренние функции: последовательность выполнения
Ниже описана реализация этого движка. Имена внутренних методов не являются дополнительными командами BASIC.
1. ExecuteClientApiCompatibility
Выбирает ветку ClientProfilePath и читает bridge.CurrentProfilePath.
Оборачивает путь в InjectionValue со значением String; сетевого запроса нет.
Исходник проекта: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; функция ExecuteClientApiCompatibility.
Читается ProfileManager.ProfilePath; если профиль ещё не выбран, возвращается пустая строка. Сам вызов не создаёт профиль и не переносит настройки.
Примеры
Пример 1. Прочитать путь
# Прочитать путь
#
# Возвращает текущий каталог профиля клиента.
#
# String — путь к каталогу. Это не Boolean, не массив и не ID. Пустой путь означает, что
# значение недоступно; не используйте его как текущую рабочую папку по умолчанию.
SUB Main()
# Аргументов нет. folder — строка; пустое значение обрабатывается отдельно.
VAR folder = UO.ClientProfilePath()
IF folder = "" THEN
UO.Print("Folder is not available")
RETURN
END IF
UO.Print(folder)
END SUB
Разбор параметров и выполнения:
- Аргументов нет. folder — строка; пустое значение обрабатывается отдельно.
Пример 2. Сравнить папку клиента с папкой профиля
# Сравнить папку клиента с папкой профиля
#
# Возвращает текущий каталог профиля клиента.
#
# String — путь к каталогу. Это не Boolean, не массив и не ID. Пустой путь означает, что
# значение недоступно; не используйте его как текущую рабочую папку по умолчанию.
SUB Main()
# Эти папки имеют разное назначение. Скрипт выводит обе строки, не меняя конфигурацию или
# профиль.
VAR client = UO.ClientPath()
VAR profile = UO.ClientProfilePath()
UO.Print("Client: " + client)
IF profile = "" THEN
UO.Print("No current profile")
ELSE
UO.Print("Profile: " + profile)
END IF
END SUB
Разбор параметров и выполнения:
- Эти папки имеют разное назначение. Скрипт выводит обе строки, не меняя конфигурацию или профиль.
Пример 3. Полная функция построения пути к своему файлу
# Полная функция построения пути к своему файлу
#
# Возвращает текущий каталог профиля клиента.
#
# String — путь к каталогу. Это не Boolean, не массив и не ID. Пустой путь означает, что
# значение недоступно; не используйте его как текущую рабочую папку по умолчанию.
SUB Main()
# ChildPath показана целиком: folder — полученный каталог, leaf — имя файла. Это соединение
# строк для заданного имени, не универсальный нормализатор путей.
# Файл не создаётся и не читается; сначала можно проверить полученную строку.
VAR folder = UO.ClientProfilePath()
VAR filePath = ChildPath(folder, "sample.json")
IF filePath <> "" THEN
UO.Print("Example path: " + filePath)
END IF
END SUB
FUNCTION ChildPath(folder, leaf)
# Только имя собственного файла, например sample.json.
IF folder = "" THEN
RETURN ""
END IF
VAR last = Right(folder, 1)
IF last = "/" OR last = "\" THEN
RETURN folder + leaf
END IF
RETURN folder + "/" + leaf
END FUNCTION
Разбор параметров и выполнения:
- ChildPath показана целиком: folder — полученный каталог, leaf — имя файла. Это соединение строк для заданного имени, не универсальный нормализатор путей.
- Файл не создаётся и не читается; сначала можно проверить полученную строку.