DE UO Topic buffs effects - LIHACHTETAN/ClassicUO-Bad-Newbie-CSharp-Scripts-IDE GitHub Wiki
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
Home · C# · IDE · UO API · A–Z · Beispiele · Sprachen
Bedienfeld für Effekte und Statusprüfung. Eine negative Statusprüfung bedeutet nicht, dass alle möglichen Auswirkungen fehlen.
| Thema | Befehle und Erklärungen |
|---|---|
| Buff Bar | UO.GetBuffBarInfo |
| Poison | UO.Poisoned |
| Paralyze | UO.Paralyzed |
| Frozen | UO.Frozen |
| Flying | UO.Flying |
| Widerstand | UO.GetResist · UO.GetPhysicalResist · UO.GetFireResist · UO.GetColdResist · UO.GetPoisonResist · UO.GetEnergyResist |
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
var buffs = UO.GetBuffBarInfo();
for (int i = (int)(0); i <= ArrayLength(buffs)-1; i += (int)(1))
{
UO.Print(buffs[i]);
}
int ArrayLength(object? value) => value is System.Array array ? array.Length : 0;Parameter, Ergebnis und alle Szenarien
var state = UO.Paralyzed();
if (Truth(Truth(state) == true))
{
UO.Print("Paralysis flag is set");
}
else
{
UO.Print("Paralysis flag is absent or unavailable");
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.GetBuffBarInfo();Gibt einen Schnappschuss der Buff-Symbole des aktuellen Charakters zurück.
Es gibt keine Parameter.
Array von Zeilen im Format type|graphic|remainingMilliseconds|text. remainingMilliseconds=-1 für Timer=uint.MaxValue; sonst max(0,Timer-Time.Ticks). Keine Zeichen/Symbole – leeres Array.
- Die Daten werden von Player.BuffIcons.Values übernommen, ohne dass eine Anfrage an den Server gestellt wird. Der Wert remainingMilliseconds bezieht sich auf den Client-Timer und ist möglicherweise veraltet; -1 bezeichnet einen unbegrenzten Timer, keinen Fehler. Text kann | enthalten Es wird also nicht erwartet, dass es genau vier einfache Wörter enthält.
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.GetBuffBarInfo();
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));Parameter und Ablauf:
- Jede Zeile enthält type, graphic, Timer-Rest und Text.
var buffs = UO.GetBuffBarInfo();
for (int i = (int)(0); i <= ArrayLength(buffs)-1; i += (int)(1))
{
UO.Print(buffs[i]);
}
int ArrayLength(object? value) => value is System.Array array ? array.Length : 0;Parameter und Ablauf:
- Die Größe spiegelt die aktuellen Client-Symbole wider.
return RunScenario();
object? RunScenario()
{
var buffs = UO.GetBuffBarInfo();
UO.Print(Convert.ToString(ArrayLength(buffs)));
return null;
}
int ArrayLength(object? value) => value is System.Array array ? array.Length : 0;Parameter und Ablauf:
- Der neue Aufruf liest den aktuellen Satz erneut; Das alte Array bleibt eine Momentaufnahme.
return await new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenarioAsync();
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;
}
async public Task<object?> RunScenarioAsync()
{
var before = UO.GetBuffBarInfo();
await Delay(1000);
var after = UO.GetBuffBarInfo();
UO.Print(Convert.ToString(ArrayLength(before)) + " " + Convert.ToString(ArrayLength(after)));
return null;
}
int ArrayLength(object? value) => value is System.Array array ? array.Length : 0;
Task Delay(object? milliseconds) => WaitAsync(checked((int)Convert.ToDouble(milliseconds)));
}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:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
InjectionScript.Runtime.InjectionApiUO.StringArray:StringArray(bridge.GetBuffBarInfo()). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetBuffBarInfo:bridge.GetBuffBarInfo().
Interner Implementierungscode; kein eigenständiges Skript.
case "getbuffbarinfo": return StringArray(bridge.GetBuffBarInfo());