API UO ClientPath - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki

UO.ClientPath

UO API · Все команды · Возвращаемые значения

Возвращает каталог установки/исполняемых файлов клиента.

Точный синтаксис

UO.ClientPath() -> String

Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.

Параметры

Параметров нет.

Возвращает

String — путь к каталогу. Это не Boolean, не массив и не ID. Пустой путь означает, что значение недоступно; не используйте его как текущую рабочую папку по умолчанию.

Поведение

  • Читается CUOEnviroment.ExecutablePath. Это не маршрут движения, не список точек, не папка скрипта и не путь к данным игры.
  • Команда только читает путь, ничего не открывает, не создаёт и не сохраняет. Конечный разделитель не следует предполагать; пример helper добавляет его при необходимости.
  • Имя является игровым/клиентским API и пишется с UO. ClientPath возвращает каталог клиента, ClientProfilePath — каталог активного профиля.

Внутренние функции: последовательность выполнения

Ниже описана реализация этого движка. Имена внутренних методов не являются дополнительными командами BASIC.

1. ExecuteClientApiCompatibility

Выбирает ветку ClientPath и читает bridge.ClientPath.

Оборачивает путь в InjectionValue со значением String; сетевого запроса нет.

Исходник проекта: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; функция ExecuteClientApiCompatibility.

Читается CUOEnviroment.ExecutablePath. Это не маршрут движения, не список точек, не папка скрипта и не путь к данным игры.

Примеры

Пример 1. Прочитать путь

# Прочитать путь
#
# Возвращает каталог установки/исполняемых файлов клиента.
#
# String — путь к каталогу. Это не Boolean, не массив и не ID. Пустой путь означает, что
# значение недоступно; не используйте его как текущую рабочую папку по умолчанию.

SUB Main()
    # Аргументов нет. folder — строка; пустое значение обрабатывается отдельно.

    VAR folder = UO.ClientPath()
    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.ClientPath()
    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 — имя файла. Это соединение строк для заданного имени, не универсальный нормализатор путей.
  • Файл не создаётся и не читается; сначала можно проверить полученную строку.