Repository navigation
DE UO Topic proxy
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
Home · C# · IDE · UO API · A–Z · Beispiele · Sprachen
Kompatible Namen API für Proxys. Das bloße Vorhandensein eines Namens im Register beweist noch nicht die Berechtigung für den Transport: Die tatsächlichen Einschränkungen sind in jeder Karte angegeben.
| Thema | Befehle und Erklärungen |
|---|---|
| UseProxy | UO.UseProxy |
| ProxyIP | UO.ProxyIP |
| ProxyPort | UO.ProxyPort |
| Authentication | UO.UseProxy |
UO.UseProxy · UO.ProxyIP · UO.ProxyPort
Jede Befehlskarte verfügt über mehrere unabhängige Szenarien: Direktcode, Funktionen und Klassen. Nachfolgend finden Sie ausgewählte kurze Szenarien; Einschränkungen und eine vollständige Analyse sind geplant.
Parameter, Ergebnis und alle Szenarien
return UO.ProxyIP();Parameter, Ergebnis und alle Szenarien
return UO.ProxyPort();Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.ProxyIP();Liest die Proxy-Adresse des aktuellen Profils, um die ausgewählte Route vor der Verbindung zu überprüfen.
Es gibt keine Parameter.
string: Der angegebene IP oder DNS ist der Proxy-Name. Eine leere Zeichenfolge für einen direkten Join. DNS-Name wird hier nicht in IP umgewandelt; Dies ist nicht die Adresse des Spieleservers.
- Es gibt keine Parameter. Liest die Einstellungen des Besitzers dieser Sitzung, auch ohne Verbindung. Aktiviert oder deaktiviert den Proxy nicht, greift nicht darauf zu, stellt keine erneute Verbindung her und gibt das Passwort nicht preis. Ein regulärer Full ohne verwalteten Proxy gibt direkte Verbindungswerte zurück. Um Verbindungsänderungen zu übernehmen, ändern Sie das Profil und starten Sie die Sitzung neu. Das Profil wird sowohl für die Anmeldung als auch für die Spieleverbindung verwendet.
Jedes Beispiel kann als separate Datei .csx gespeichert und in IDE ausgeführt werden. Die UO-Objekt- und Wartefunktionen stellen den Host der aktuellen Spielsitzung bereit. Ersetzen Sie Demo-serial-Namen, Koordinaten und Adressen durch Ihre eigenen.
Führe diesen Code als eigene .csx-Datei aus. Die Argumente stehen direkt im Aufruf; ersetze Beispielnamen, Serials und Adressen durch eigene Werte.
Das Ergebnis eines Aufrufs wird im Journal ausgegeben. Zahlen werden nicht in bool umgewandelt; bei Arrays wird die Anzahl der Elemente angezeigt.
object? result = UO.ProxyIP();
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));Parameter und Ablauf:
- Main gibt die aktuelle Einstellung zurück. Für Proxy.example.invalid:1080 lautet die Adresse „proxy.example.invalid“, Port 1080, UseProxy == 1. Für Direktverbindung jeweils „“, 0, 0. Die Beispieldomäne ist ein Stub, kein funktionierender Proxy.
return UO.ProxyIP();Parameter und Ablauf:
- Das Array enthält zwei aufgelöste Adressen mit einer genauen Übereinstimmung. Die Schleife vergleicht den konfigurierten Namen nur, wenn UseProxy == 1 und gibt 1 zurück, wenn eine Übereinstimmung vorliegt, andernfalls 0. Ersetzen Sie die Namen durch Ihre eigenen. Dies ist eine Konfigurationsprüfung, nicht die Authentizität des Remote-Proxys.
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;Parameter und Ablauf:
- RequireRoute erhält die Adresse = „proxy.example.invalid“, Port = 1080. Überprüft alle drei Einstellungen bis UO.Connect. Eine Nichtübereinstimmung ergibt 0 ohne Verbindung. Das Match bittet um eine Verbindung und gibt 1; Dies ist eine Anfrage, keine Bestätigung der Teilnahme am Spiel. Ersetzen Sie beide Stecker. UO.Connected separat prüfen.
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# unterscheidet Groß- und Kleinschreibung. Verwenden Sie den genauen UO-Namen. Numerische Flags mit 0 vergleichen; bool nur bei Rückgabetyp bool verwenden.
Parameter: Keine Parameter.
Ergebnis: dynamic / Any.
Beim Aufruf:
Interner Implementierungscode; kein eigenständiges Skript.
case "proxyip": return new InjectionValue((bridge as IProxyMetadataBridge)?.ProxyAddress ?? string.Empty);Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.ProxyPort();Liest den Proxy-Port des aktuellen Profils, um das Adresse/Port-Paar zu überprüfen.
Es gibt keine Parameter.
int: konfigurierter Proxy-Port in 1..65535; 0 für direkte Verbindung. Dies ist kein Gameserver-Port.
- Es gibt keine Parameter. Liest die Einstellungen des Besitzers dieser Sitzung, auch ohne Verbindung. Aktiviert oder deaktiviert den Proxy nicht, greift nicht darauf zu, stellt keine erneute Verbindung her und gibt das Passwort nicht preis. Ein regulärer Full ohne verwalteten Proxy gibt direkte Verbindungswerte zurück. Um Verbindungsänderungen zu übernehmen, ändern Sie das Profil und starten Sie die Sitzung neu. Das Profil wird sowohl für die Anmeldung als auch für die Spieleverbindung verwendet.
Jedes Beispiel kann als separate Datei .csx gespeichert und in IDE ausgeführt werden. Die UO-Objekt- und Wartefunktionen stellen den Host der aktuellen Spielsitzung bereit. Ersetzen Sie Demo-serial-Namen, Koordinaten und Adressen durch Ihre eigenen.
Führe diesen Code als eigene .csx-Datei aus. Die Argumente stehen direkt im Aufruf; ersetze Beispielnamen, Serials und Adressen durch eigene Werte.
Das Ergebnis eines Aufrufs wird im Journal ausgegeben. Zahlen werden nicht in bool umgewandelt; bei Arrays wird die Anzahl der Elemente angezeigt.
object? result = UO.ProxyPort();
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));Parameter und Ablauf:
- Main gibt die aktuelle Einstellung zurück. Für Proxy.example.invalid:1080 lautet die Adresse „proxy.example.invalid“, Port 1080, UseProxy == 1. Für Direktverbindung jeweils „“, 0, 0. Die Beispieldomäne ist ein Stub, kein funktionierender Proxy.
return UO.ProxyPort();Parameter und Ablauf:
- RouteLabel erstellt die Signatur der konfigurierten Route: Adresse:Port oder „direkt“ für eine direkte Verbindung. Login und Passwort sind nicht lesbar.
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;Parameter und Ablauf:
- RequireRoute erhält die Adresse = „proxy.example.invalid“, Port = 1080. Überprüft alle drei Einstellungen bis UO.Connect. Eine Nichtübereinstimmung ergibt 0 ohne Verbindung. Das Match bittet um eine Verbindung und gibt 1; Dies ist eine Anfrage, keine Bestätigung der Teilnahme am Spiel. Ersetzen Sie beide Stecker. UO.Connected separat prüfen.
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# unterscheidet Groß- und Kleinschreibung. Verwenden Sie den genauen UO-Namen. Numerische Flags mit 0 vergleichen; bool nur bei Rückgabetyp bool verwenden.
Parameter: Keine Parameter.
Ergebnis: dynamic / Any.
Beim Aufruf:
Interner Implementierungscode; kein eigenständiges Skript.
case "proxyport": return new InjectionValue((bridge as IProxyMetadataBridge)?.ProxyPort ?? 0);Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.UseProxy();Überprüft, ob diese Sitzung für die Verbindung über einen Proxy konfiguriert ist.
Es gibt keine Parameter.
int 1 (true) wenn Proxy konfiguriert ist, andernfalls 0 (false). Überprüfen Sie in C#, ob (Ergebnis != 0) oder ob (Ergebnis == 1); Das Ergebnis ist vom Typ int, daher sind if (Ergebnis) und ein Vergleich mit true nicht zulässig. Das Gerät bestätigt weder die Proxy-Verfügbarkeit noch die erfolgreiche Autorisierung.
- Es gibt keine Parameter. Liest die Einstellungen des Besitzers dieser Sitzung, auch ohne Verbindung. Aktiviert oder deaktiviert den Proxy nicht, greift nicht darauf zu, stellt keine erneute Verbindung her und gibt das Passwort nicht preis. Ein regulärer Full ohne verwalteten Proxy gibt direkte Verbindungswerte zurück. Um Verbindungsänderungen zu übernehmen, ändern Sie das Profil und starten Sie die Sitzung neu. Das Profil wird sowohl für die Anmeldung als auch für die Spieleverbindung verwendet.
Jedes Beispiel kann als separate Datei .csx gespeichert und in IDE ausgeführt werden. Die UO-Objekt- und Wartefunktionen stellen den Host der aktuellen Spielsitzung bereit. Ersetzen Sie Demo-serial-Namen, Koordinaten und Adressen durch Ihre eigenen.
Führe diesen Code als eigene .csx-Datei aus. Die Argumente stehen direkt im Aufruf; ersetze Beispielnamen, Serials und Adressen durch eigene Werte.
Das Ergebnis eines Aufrufs wird im Journal ausgegeben. Zahlen werden nicht in bool umgewandelt; bei Arrays wird die Anzahl der Elemente angezeigt.
object? result = UO.UseProxy();
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));Parameter und Ablauf:
- Main gibt die aktuelle Einstellung zurück. Für Proxy.example.invalid:1080 lautet die Adresse „proxy.example.invalid“, Port 1080, UseProxy == 1. Für Direktverbindung jeweils „“, 0, 0. Die Beispieldomäne ist ein Stub, kein funktionierender Proxy.
return UO.UseProxy();Parameter und Ablauf:
- RouteLabel erstellt die Signatur der konfigurierten Route: Adresse:Port oder „direkt“ für eine direkte Verbindung. Login und Passwort sind nicht lesbar.
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;Parameter und Ablauf:
- RequireRoute erhält die Adresse = „proxy.example.invalid“, Port = 1080. Überprüft alle drei Einstellungen bis UO.Connect. Eine Nichtübereinstimmung ergibt 0 ohne Verbindung. Das Match bittet um eine Verbindung und gibt 1; Dies ist eine Anfrage, keine Bestätigung der Teilnahme am Spiel. Ersetzen Sie beide Stecker. UO.Connected separat prüfen.
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# unterscheidet Groß- und Kleinschreibung. Verwenden Sie den genauen UO-Namen. Numerische Flags mit 0 vergleichen; bool nur bei Rückgabetyp bool verwenden.
Parameter: Keine Parameter.
Ergebnis: dynamic / Any.
Beim Aufruf:
Interner Implementierungscode; kein eigenständiges Skript.
case "useproxy": return new InjectionValue((bridge as IProxyMetadataBridge)?.UsesProxy == true ? 1 : 0);ClassicUO — Bad Newbie & C# Scripts IDE