Skip to content

UO Topic proxy

Codex edited this page Oct 12, 2026 · 8 revisions

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

Проксі

Головна · C# · IDE · Команди UO · За абеткою · Приклади · Мови

Команди налаштування проміжного сервера — проксі. Перевіряйте опис кожної команди: збережене в API ім’я саме по собі не означає, що підключення через проксі реалізовано.

Розділи

Тема Команди та пояснення
Увімкнення проксі UO.UseProxy
Адреса проксі UO.ProxyIP
Порт проксі UO.ProxyPort
Автентифікація 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