Skip to content

RU UO Topic proxy

Codex edited this page Oct 12, 2026 · 4 revisions

Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어

Прокси

Главная · C# · IDE · UO API · A–Z · Примеры · Языки

Совместимые имена API для прокси. Само наличие имени в реестре не доказывает поддержку транспорта: фактические ограничения указаны в каждой карточке.

Разделы

Тема Команды и пояснения
UseProxy UO.UseProxy
ProxyIP UO.ProxyIP
ProxyPort UO.ProxyPort
Authentication UO.UseProxy

Все команды темы

Конфигурация прокси

UO.UseProxy · UO.ProxyIP · UO.ProxyPort

Примеры по теме

В каждой карточке команды есть несколько самостоятельных сценариев: прямой код, функции и классы. Ниже приведены отдельные короткие сценарии; ограничения и полный разбор находятся в карточках.

UO.ProxyIP

Параметры, результат и все сценарии

return UO.ProxyIP();

UO.ProxyPort

Параметры, результат и все сценарии

return UO.ProxyPort();

Полное описание команд


UO.ProxyIP

Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어

C#-сигнатуры

dynamic UO.ProxyIP();

Читает адрес прокси текущего профиля, чтобы проверить выбранный маршрут перед подключением.

Параметры

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

Возвращает

string: указанный IP или DNS-имя прокси. Пустая строка при прямом соединении. DNS-имя здесь не преобразуется в IP; это не адрес игрового сервера.

Поведение

  • Параметров нет. Читает настройки владельца этого сеанса, в том числе без соединения. Не включает и не отключает прокси, не обращается к нему, не переподключает и не раскрывает пароль. Обычный Full без управляемого прокси возвращает значения прямого соединения. Чтобы применить изменения подключения, измените профиль и перезапустите его сеанс. Профиль используется и для входа, и для игрового соединения.

Самостоятельные C#-скрипты

Каждый пример можно сохранить отдельным файлом .csx и запускать в IDE. Объект UO и функции ожидания предоставляет host текущей игровой сессии. Демонстрационные serial, имена, координаты и адреса замените своими.

Простой пример

Выполните этот код как отдельный файл .csx. Аргументы видны прямо в вызове; демонстрационные имена, serial и адреса замените своими.

Результат одного вызова выводится в журнал. Число не преобразуется в bool; для массива показано количество элементов.

object? result = UO.ProxyIP();
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));

1. UO.ProxyIP — 1 — прямой скрипт

Параметры и ход выполнения:

  • Main возвращает текущую настройку. Для proxy.example.invalid:1080 адрес равен "proxy.example.invalid", порт 1080, UseProxy == 1. Для прямого соединения соответственно "", 0, 0. Домен примера — заглушка, а не работающий прокси.
return UO.ProxyIP();

2. UO.ProxyIP — 2 — функция сценария

Параметры и ход выполнения:

  • В массиве два разрешённых адреса с точным совпадением. Цикл сравнивает настроенное имя только при UseProxy == 1 и возвращает 1 при совпадении, иначе 0. Замените имена своими. Это проверка настройки, а не подлинности удалённого прокси.
return  RunScenario();
 object? RunScenario()
{
    dynamic[] allowed = new dynamic[checked((int)(1) + 1)];
    allowed[0] = "proxy.example.invalid";
    allowed[1] = "127.0.0.1";
    if (Truth(UO.UseProxy()))
    {
        var index = 0;
        while (Truth(index < ArrayLength(allowed)))
        {
            if (Truth(UO.ProxyIP() == allowed[index]))
            {
                return 1;
            }

            index = index + 1;
        }
    }

    return 0;
    return null;
}

int ArrayLength(object? value) => value is System.Array array ? array.Length : 0;
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;

3. UO.ProxyIP — 3 — класс сценария

Параметры и ход выполнения:

  • RequireRoute получает address="proxy.example.invalid", port=1080. Проверяет все три настройки до UO.Connect. Несовпадение даёт 0 без подключения. Совпадение запрашивает подключение и даёт 1; это запрос, а не подтверждение входа в игру. Замените обе заглушки; UO.Connected проверяйте отдельно.
return  new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
    private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
    private readonly Func<int, Task> WaitAsync;
    private readonly string[] Args;
    private readonly CancellationToken Cancellation;
    private readonly Action Checkpoint;
    public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
    {
        UO = api;
        WaitAsync = wait;
        Args = args;
        Cancellation = cancellation;
        Checkpoint = checkpoint;
    }

     public object? RunScenario()
    {
        return RequireRoute("proxy.example.invalid", 1080);
        return null;
    }

    dynamic RequireRoute(dynamic address, dynamic port)
    {
        if (!(Truth(UO.UseProxy())))
        {
            return 0;
        }

        if (Truth(UO.ProxyIP() != address) || Truth(UO.ProxyPort() != port))
        {
            return 0;
        }

        UO.Connect();
        return 1;
    }

    bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;
}

Реализация команды

C# учитывает регистр. Используйте точное имя UO. Числовые флаги сравнивайте с 0; bool используйте только там, где сигнатура возвращает bool.

UO.ProxyIP() — UO.ProxyIP()

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

Результат: dynamic / Any.

При вызове:

Внутренний код реализации, не самостоятельный скрипт.

case "proxyip": return new InjectionValue((bridge as IProxyMetadataBridge)?.ProxyAddress ?? string.Empty);

UO.ProxyPort

Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어

C#-сигнатуры

dynamic UO.ProxyPort();

Читает порт прокси текущего профиля для проверки пары адрес/порт.

Параметры

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

Возвращает

int: настроенный порт прокси в 1..65535; 0 при прямом соединении. Это не порт игрового сервера.

Поведение

  • Параметров нет. Читает настройки владельца этого сеанса, в том числе без соединения. Не включает и не отключает прокси, не обращается к нему, не переподключает и не раскрывает пароль. Обычный Full без управляемого прокси возвращает значения прямого соединения. Чтобы применить изменения подключения, измените профиль и перезапустите его сеанс. Профиль используется и для входа, и для игрового соединения.

Самостоятельные C#-скрипты

Каждый пример можно сохранить отдельным файлом .csx и запускать в IDE. Объект UO и функции ожидания предоставляет host текущей игровой сессии. Демонстрационные serial, имена, координаты и адреса замените своими.

Простой пример

Выполните этот код как отдельный файл .csx. Аргументы видны прямо в вызове; демонстрационные имена, serial и адреса замените своими.

Результат одного вызова выводится в журнал. Число не преобразуется в bool; для массива показано количество элементов.

object? result = UO.ProxyPort();
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));

1. UO.ProxyPort — 1 — прямой скрипт

Параметры и ход выполнения:

  • Main возвращает текущую настройку. Для proxy.example.invalid:1080 адрес равен "proxy.example.invalid", порт 1080, UseProxy == 1. Для прямого соединения соответственно "", 0, 0. Домен примера — заглушка, а не работающий прокси.
return UO.ProxyPort();

2. UO.ProxyPort — 2 — функция сценария

Параметры и ход выполнения:

  • RouteLabel строит подпись настроенного маршрута: адрес:порт либо "direct" для прямого соединения. Логин и пароль не читаются.
return  RunScenario();
 object? RunScenario()
{
    return RouteLabel();
    return null;
}

dynamic RouteLabel()
{
    if (Truth(UO.UseProxy()))
    {
        return UO.ProxyIP() + ":" + Convert.ToString(UO.ProxyPort());
    }

    return "direct";
}

bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;

3. UO.ProxyPort — 3 — класс сценария

Параметры и ход выполнения:

  • RequireRoute получает address="proxy.example.invalid", port=1080. Проверяет все три настройки до UO.Connect. Несовпадение даёт 0 без подключения. Совпадение запрашивает подключение и даёт 1; это запрос, а не подтверждение входа в игру. Замените обе заглушки; UO.Connected проверяйте отдельно.
return  new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
    private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
    private readonly Func<int, Task> WaitAsync;
    private readonly string[] Args;
    private readonly CancellationToken Cancellation;
    private readonly Action Checkpoint;
    public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
    {
        UO = api;
        WaitAsync = wait;
        Args = args;
        Cancellation = cancellation;
        Checkpoint = checkpoint;
    }

     public object? RunScenario()
    {
        return RequireRoute("proxy.example.invalid", 1080);
        return null;
    }

    dynamic RequireRoute(dynamic address, dynamic port)
    {
        if (!(Truth(UO.UseProxy())))
        {
            return 0;
        }

        if (Truth(UO.ProxyIP() != address) || Truth(UO.ProxyPort() != port))
        {
            return 0;
        }

        UO.Connect();
        return 1;
    }

    bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;
}

Реализация команды

C# учитывает регистр. Используйте точное имя UO. Числовые флаги сравнивайте с 0; bool используйте только там, где сигнатура возвращает bool.

UO.ProxyPort() — UO.ProxyPort()

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

Результат: dynamic / Any.

При вызове:

Внутренний код реализации, не самостоятельный скрипт.

case "proxyport": return new InjectionValue((bridge as IProxyMetadataBridge)?.ProxyPort ?? 0);

UO.UseProxy

Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어

C#-сигнатуры

dynamic UO.UseProxy();

Проверяет, настроено ли подключение этого сеанса через прокси.

Параметры

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

Возвращает

int 1 (true), если прокси настроен, иначе 0 (false). В C# проверяйте if (result != 0) либо if (result == 1); result имеет тип int, поэтому if (result) и сравнение с true недопустимы. Единица не подтверждает доступность прокси или успешную авторизацию.

Поведение

  • Параметров нет. Читает настройки владельца этого сеанса, в том числе без соединения. Не включает и не отключает прокси, не обращается к нему, не переподключает и не раскрывает пароль. Обычный Full без управляемого прокси возвращает значения прямого соединения. Чтобы применить изменения подключения, измените профиль и перезапустите его сеанс. Профиль используется и для входа, и для игрового соединения.

Самостоятельные C#-скрипты

Каждый пример можно сохранить отдельным файлом .csx и запускать в IDE. Объект UO и функции ожидания предоставляет host текущей игровой сессии. Демонстрационные serial, имена, координаты и адреса замените своими.

Простой пример

Выполните этот код как отдельный файл .csx. Аргументы видны прямо в вызове; демонстрационные имена, serial и адреса замените своими.

Результат одного вызова выводится в журнал. Число не преобразуется в bool; для массива показано количество элементов.

object? result = UO.UseProxy();
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));

1. UO.UseProxy — 1 — прямой скрипт

Параметры и ход выполнения:

  • Main возвращает текущую настройку. Для proxy.example.invalid:1080 адрес равен "proxy.example.invalid", порт 1080, UseProxy == 1. Для прямого соединения соответственно "", 0, 0. Домен примера — заглушка, а не работающий прокси.
return UO.UseProxy();

2. UO.UseProxy — 2 — функция сценария

Параметры и ход выполнения:

  • RouteLabel строит подпись настроенного маршрута: адрес:порт либо "direct" для прямого соединения. Логин и пароль не читаются.
return  RunScenario();
 object? RunScenario()
{
    return RouteLabel();
    return null;
}

dynamic RouteLabel()
{
    if (Truth(UO.UseProxy()))
    {
        return UO.ProxyIP() + ":" + Convert.ToString(UO.ProxyPort());
    }

    return "direct";
}

bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;

3. UO.UseProxy — 3 — класс сценария

Параметры и ход выполнения:

  • RequireRoute получает address="proxy.example.invalid", port=1080. Проверяет все три настройки до UO.Connect. Несовпадение даёт 0 без подключения. Совпадение запрашивает подключение и даёт 1; это запрос, а не подтверждение входа в игру. Замените обе заглушки; UO.Connected проверяйте отдельно.
return  new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
    private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
    private readonly Func<int, Task> WaitAsync;
    private readonly string[] Args;
    private readonly CancellationToken Cancellation;
    private readonly Action Checkpoint;
    public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
    {
        UO = api;
        WaitAsync = wait;
        Args = args;
        Cancellation = cancellation;
        Checkpoint = checkpoint;
    }

     public object? RunScenario()
    {
        return RequireRoute("proxy.example.invalid", 1080);
        return null;
    }

    dynamic RequireRoute(dynamic address, dynamic port)
    {
        if (!(Truth(UO.UseProxy())))
        {
            return 0;
        }

        if (Truth(UO.ProxyIP() != address) || Truth(UO.ProxyPort() != port))
        {
            return 0;
        }

        UO.Connect();
        return 1;
    }

    bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;
}

Реализация команды

C# учитывает регистр. Используйте точное имя UO. Числовые флаги сравнивайте с 0; bool используйте только там, где сигнатура возвращает bool.

UO.UseProxy() — UO.UseProxy()

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

Результат: dynamic / Any.

При вызове:

Внутренний код реализации, не самостоятельный скрипт.

case "useproxy": return new InjectionValue((bridge as IProxyMetadataBridge)?.UsesProxy == true ? 1 : 0);

Clone this wiki locally