Repository navigation
ZH TW UO Topic proxy
Українська · Русский · 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
每個命令卡都有幾個獨立的場景:直接程式碼、函數和類別。以下是精選的簡短場景;限制和全面分析是有可能的。
return UO.ProxyIP();return UO.ProxyPort();Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.ProxyIP();讀取目前設定檔的代理位址以在連接之前驗證所選路由。
沒有參數。
string:指定的 IP 或 DNS 代理名稱。用於直接連接的空字串。 DNS-name 這裡沒有轉換為IP;這不是遊戲伺服器位址。
- 沒有參數。讀取此會話擁有者的設置,包括在沒有連接的情況下。不啟用或停用代理、不存取代理、不重新連線或洩漏密碼。沒有託管代理程式的常規 Full 傳回直接連線值。若要套用連線更改,請變更設定檔並重新啟動其會話。此設定檔用於登入和遊戲連線。
每個範例都可以儲存為單獨的檔案.csx並在IDE中運行。 UO物件和等待函數提供當前遊戲會話的主機。將演示 serial 名稱、座標和地址替換為您自己的。
將這段程式碼存為獨立的 .csx 檔案執行。參數直接出現在呼叫中;請將範例名稱、serial 和網址替換成自己的值。
將一次呼叫的結果輸出到日誌。數值不會轉換成 bool;若結果是陣列,則顯示元素數量。
object? result = UO.ProxyIP();
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));參數與執行流程:
- Main 返回目前設定。對於 proxy.example.invalid:1080,位址為“proxy.example.invalid”,連接埠1080,UseProxy == 1。對於直接連接,分別為「」、0、0。範例域是存根,而不是工作代理。
return UO.ProxyIP();參數與執行流程:
- 此數組包含兩個完全匹配的已解析位址。只有當 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;參數與執行流程:
- 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。
參數: 沒有參數。
結果: dynamic / Any.
呼叫時:
內部實作程式碼,不能作為獨立腳本執行。
case "proxyip": return new InjectionValue((bridge as IProxyMetadataBridge)?.ProxyAddress ?? string.Empty);Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.ProxyPort();讀取目前設定檔的代理埠以檢查位址/連接埠對。
沒有參數。
int: 1..65535中配置的代理埠; 0 用於直接連接。這不是遊戲伺服器連接埠。
- 沒有參數。讀取此會話擁有者的設置,包括在沒有連接的情況下。不啟用或停用代理、不存取代理、不重新連線或洩漏密碼。沒有託管代理程式的常規 Full 傳回直接連線值。若要套用連線更改,請變更設定檔並重新啟動其會話。此設定檔用於登入和遊戲連線。
每個範例都可以儲存為單獨的檔案.csx並在IDE中運行。 UO物件和等待函數提供當前遊戲會話的主機。將演示 serial 名稱、座標和地址替換為您自己的。
將這段程式碼存為獨立的 .csx 檔案執行。參數直接出現在呼叫中;請將範例名稱、serial 和網址替換成自己的值。
將一次呼叫的結果輸出到日誌。數值不會轉換成 bool;若結果是陣列,則顯示元素數量。
object? result = UO.ProxyPort();
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));參數與執行流程:
- Main 返回目前設定。對於 proxy.example.invalid:1080,位址為“proxy.example.invalid”,連接埠1080,UseProxy == 1。對於直接連接,分別為「」、0、0。範例域是存根,而不是工作代理。
return UO.ProxyPort();參數與執行流程:
- 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;參數與執行流程:
- 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。
參數: 沒有參數。
結果: dynamic / Any.
呼叫時:
內部實作程式碼,不能作為獨立腳本執行。
case "proxyport": return new InjectionValue((bridge as IProxyMetadataBridge)?.ProxyPort ?? 0);Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.UseProxy();檢查此會話是否配置為透過代理連線。
沒有參數。
若配置了代理,則為int 1 (true),否則為0 (false)。在 C# 中檢查 if (result != 0) 或 if (result == 1); result 的類型為 int,因此不允許 if (result) 和與 true 進行比較。該單位不確認代理可用性或成功授權。
- 沒有參數。讀取此會話擁有者的設置,包括在沒有連接的情況下。不啟用或停用代理、不存取代理、不重新連線或洩漏密碼。沒有託管代理程式的常規 Full 傳回直接連線值。若要套用連線更改,請變更設定檔並重新啟動其會話。此設定檔用於登入和遊戲連線。
每個範例都可以儲存為單獨的檔案.csx並在IDE中運行。 UO物件和等待函數提供當前遊戲會話的主機。將演示 serial 名稱、座標和地址替換為您自己的。
將這段程式碼存為獨立的 .csx 檔案執行。參數直接出現在呼叫中;請將範例名稱、serial 和網址替換成自己的值。
將一次呼叫的結果輸出到日誌。數值不會轉換成 bool;若結果是陣列,則顯示元素數量。
object? result = UO.UseProxy();
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));參數與執行流程:
- Main 返回目前設定。對於 proxy.example.invalid:1080,位址為“proxy.example.invalid”,連接埠1080,UseProxy == 1。對於直接連接,分別為「」、0、0。範例域是存根,而不是工作代理。
return UO.UseProxy();參數與執行流程:
- 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;參數與執行流程:
- 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。
參數: 沒有參數。
結果: dynamic / Any.
呼叫時:
內部實作程式碼,不能作為獨立腳本執行。
case "useproxy": return new InjectionValue((bridge as IProxyMetadataBridge)?.UsesProxy == true ? 1 : 0);ClassicUO — Bad Newbie & C# Scripts IDE