Skip to content

ZH TW 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 · 範例 · Languages

代理的相容名稱 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-name 這裡沒有轉換為IP;這不是遊戲伺服器位址。

行為

  • 沒有參數。讀取此會話擁有者的設置,包括在沒有連接的情況下。不啟用或停用代理、不存取代理、不重新連線或洩漏密碼。沒有託管代理程式的常規 Full 傳回直接連線值。若要套用連線更改,請變更設定檔並重新啟動其會話。此設定檔用於登入和遊戲連線。

獨立的 C# 腳本

每個範例都可以儲存為單獨的檔案.csx並在IDE中運行。 UO物件和等待函數提供當前遊戲會話的主機。將演示 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 接收位址=“proxy.example.invalid”,連接埠=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物件和等待函數提供當前遊戲會話的主機。將演示 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 接收位址=“proxy.example.invalid”,連接埠=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物件和等待函數提供當前遊戲會話的主機。將演示 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 接收位址=“proxy.example.invalid”,連接埠=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