DE UO Topic search - 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
Auswahl eines Suchbereichs und Filters, Bearbeitung des Ergebnisses, Liste der gefundenen Elemente und Ausnahmen. Überprüfen Sie den Wert „nicht gefunden“ auf der Befehlskarte: serial, Menge und Liste – unterschiedliche Ergebnisse.
UO.FindType · UO.FindTypeEx · UO.FindTypesArrayEx · UO.FindAnyType · UO.FindAtCoord · UO.FindItem · UO.FindCount · UO.FindQuantity · UO.FindFullQuantity · UO.Count · UO.CountEx · UO.CountGround · UO.GetWorldItems · UO.GetFoundItems · UO.GetFindedList
UO.FindMobile · UO.FindMan · UO.FindByNotoriety · UO.FindNotoriety
UO.FindDistance · UO.FindVertical
UO.AddFindList · UO.ClearFindList · UO.DeleteFindList · UO.FindList · UO.InfoFindList · UO.MFGI
UO.Ignore · UO.IgnoreOff · UO.IgnoreReset · UO.AddIgnoreList · UO.ClearIgnoreList · UO.DeleteIgnoreList · UO.SelectIgnoreList · UO.GetIgnoreList
UO.SetBadObject · UO.ClearBadObjectList
UO.SetBadLocation · UO.ClearBadLocationList
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 gold = UO.FindType(0x0EED, -1, "backpack");
if (Truth(gold == ""))
{
UO.Print("Gold was not found in the loaded backpack");
}
else
{
UO.Print("Gold serial: " + gold);
UO.Info(gold);
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;Parameter, Ergebnis und alle Szenarien
var found = UO.FindType(0x0EED, -1, "backpack");
var value = UO.FindFullQuantity();
UO.Print(Convert.ToString(value));Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.AddFindList(object? list, object? @type);
void UO.AddFindList(object? list, object? @type, object? color);Fügt die Regel type/hue zum benannten Satz für UO.FindList hinzu. Mit dem Set können Sie wiederholt nach mehreren Arten von Objekten oder Mobilgeräten suchen und die Priorität der Typen in der Reihenfolge der Hinzufügung festlegen.
-
list– Der Name des Regelsatzes, zum Beispiel „loot“. Übergeben Sie die Zeichenfolge ohne |: Dieses Zeichen wird als Trennzeichen innerhalb des Datensatzes verwendet. Beim Namen wird die Groß-/Kleinschreibung nicht beachtet. Dies ist kein serial-Container oder ein Array gefundener Elemente. -
type– Grafik/type eines Artikels oder body mobile, nicht sein serial. Typischerweise int 0..65535, einschließlich 0x0EED; -1 oder 0xFFFF bedeutet jedes type bei der Suche. Geben Sie einen Wert pro Eintrag an. Mehrere Typen werden durch separate Aufrufe hinzugefügt. -
color– Farbton eines Objekts/Körpers, nicht RGB. int 0..65535; 0 – normal hue 0, -1 oder 0xFFFF – beliebig. In AddFindList bedeutet das Überspringen von Farben jedes hue bei der Suche.
void: Kein Rückgabewert. Weisen Sie den Aufruf keiner Variablen zu und testen Sie ihn nicht auf true/1. Der Status der Definitionen kann abgeleitet werden UO.InfoFindList(); die Suche selbst wird separat über UO.FindList() gestartet.
- Definitionen befinden sich im Status der angegebenen Skriptlaufzeit. Eine unabhängige andere Laufzeit verfügt über einen eigenen Satz. Durch das Schließen des IDE-Fensters werden diese Regeln nicht gelöscht. Dies ist keine Einstellungsdatei oder eine Liste globaler Spielobjekte.
- AddFindList hängt den Eintrag am Ende an; Wiederholungen werden nicht gelöscht. Um Ihr Kit erneut bereitzustellen, rufen Sie zunächst ClearFindList("Name") auf. Durch das Ändern von Definitionen werden bereits empfangene FindItem/FindCount/GetFoundItems nicht gelöscht.
- Der Datensatz speichert Textfelder. Das numerische Literal 0x0EED wird als „3821“ gespeichert, die Zeichenfolge „0x0EED“ wird als „0x0EED“ gespeichert. Die Suche wandelt beide Optionen in eine Zahl um und DeleteFindList vergleicht den gespeicherten Text. Verwenden Sie beim Hinzufügen und Löschen dasselbe Formular.
- Der unbekannte Name in FindList ist kein leerer registrierter Satz: Die Engine versucht, ihn als Liste numerischer Typen zu analysieren. Ein nicht numerischer Name verursacht einen Konvertierungsfehler. Erstellen Sie nach dem Löschen des letzten Eintrags einen neuen Satz, bevor Sie nach diesem Namen suchen.
- Die Argumente werden sofort gespeichert; Die numerische type/hue-Prüfung wird bei FindList durchgeführt. AddFindList sucht nicht nach Gegenständen, trägt diese nicht und fügt serial nicht zu Ignore hinzu.
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.
Der Befehl steht in einer eigenen Anweisung. Die Meldung davor zeigt den Beginn des Aufrufs und bestätigt keine Serveraktion.
UO.Print("Calling UO.AddFindList");
UO.AddFindList("simple_loot", 0x0EED);Parameter und Ablauf:
- 0x0EED ist Gold, 0x0F7A ist das zweite graphic des Sets. Ersetzen Sie für andere Serverdaten die Grafiken. Das vollständige BuildLoot-Verfahren ist oben angegeben.
- FindCount(item) liest die Anzahl der Einheiten eines bestimmten Stapels; GetFoundItems enthält eindeutiges serial. In diesem Beispiel wird keine Übertragung durchgeführt.
BuildLoot();
var first = UO.FindList("loot", "ground", 2, -1, false, 5, false);
if (Truth(first == ""))
{
UO.Print("No matching loot nearby");
return null;
}
var items = UO.GetFoundItems();
foreach (var item in items)
{
UO.Print(UO.GetName(item) + " | stack: " + Convert.ToString(UO.FindCount(item)));
}
void BuildLoot()
{
UO.ClearFindList("loot");
UO.AddFindList("loot", 0x0EED, -1);
UO.AddFindList("loot", 0x0F7A, -1);
}
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:
- 0x0044 Filter hue; das ist nicht serial. backpack sucht nach dem direkten Inhalt des Rucksacks. AddObject speichert das ausgewählte Objekt unter einem Namen in dieser Laufzeit.
return RunScenario();
object? RunScenario()
{
UO.ClearFindList("colored");
UO.AddFindList("colored", 0x0EED, 0x0044);
var first = UO.FindList("colored", "backpack");
if (Truth(first != ""))
{
UO.AddObject("colored_item", first);
}
return null;
}
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:
- In jedem Eintrag bedeutet die fehlende Farbe ein beliebiges hue. Die Zeile „5|6“ erlaubt zwei Bekanntheitscodes; Dieser Filter schließt reguläre Artikel aus. Die Suche greift Follow nicht an oder startet es nicht.
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()
{
UO.ClearFindList("watch");
UO.AddFindList("watch", 0x0190);
UO.AddFindList("watch", 0x0191);
var nearby = UO.FindList("watch", "ground", 12, "5|6", true, 10);
if (Truth(nearby != ""))
{
UO.AddObject("watched_mobile", nearby);
}
return null;
}
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: list (Any), type (Any)
Ergebnis: void / Unit.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::LegacyList:LegacyList(name). -
InjectionScript.Runtime.InjectionValue.ToString:value.ToString().
Interner Implementierungscode; kein eigenständiges Skript.
case "adddir":
case "addfindlist":
case "addgate":
case "addrecall":
case "addstep":
LegacyList(name).Add(string.Join("|", arguments.Select(value => value.ToString())));
break;Parameter: list (Any), type (Any), color (Any)
Ergebnis: void / Unit.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::LegacyList:LegacyList(name). -
InjectionScript.Runtime.InjectionValue.ToString:value.ToString().
Interner Implementierungscode; kein eigenständiges Skript.
case "adddir":
case "addfindlist":
case "addgate":
case "addrecall":
case "addstep":
LegacyList(name).Add(string.Join("|", arguments.Select(value => value.ToString())));
break;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.AddIgnoreList(object? list, object? @type);
void UO.AddIgnoreList(object? list, object? @type, object? color);Bereitet einen benannten Satz von Dingen vor, die bei der Suche übersprungen werden sollten: Wählen Sie beispielsweise kein Gold oder keine Dinge einer bestimmten Farbe aus. Die Regel wird durch type und hue spezifiziert und gilt daher für alle geeigneten Objekte, auch für die später erschienenen. Aktivieren Sie nach der Einstellung das Wählen über SelectIgnoreList.
-
list– Beliebiger, nicht leerer Name, zum Beispiel „loot_skip“. Beim Namen wird die Groß-/Kleinschreibung nicht beachtet. Dies ist nicht der Name des Elements, nicht des serial-Containers und nicht der Name von FindList. -
type– Grafik/type eines Artikels oder body mobile. Zum Beispiel ist 0x0EED Gold, 0x0191 ist ein weiblicher menschlicher Körper. Zahl oder numerische Zeichenfolge („0x0EED“, „3821“); -1/anderes Negativ/0xFFFF - beliebig type. Werte größer als 65535 sind nicht zulässig. Für mehrere type fügen Sie mehrere Regeln hinzu. -
color– Farbton: 0 – nur ungefärbt, 0x0044 – Beispiel für eine exakte Farbe; negativ oder 0xFFFF - beliebig. Werte größer als 65535 sind nicht zulässig. In „Hinzufügen“ ist der Standardwert 1. Typ und hue innerhalb einer Regel werden durch eine UND-Bedingung verbunden; andere Regeln - ODER.
void – kein Wert. Verwendung in einer separaten Zeile ohne var Ergebnis = und ohne Ankreuzen von =true. Der Befehl ändert den lokalen Filter; gibt die Anzahl der Elemente nicht zurück und sendet nichts an den Server.
- Fügt der durch das FIRST-Argument angegebenen Liste hinzu, unabhängig von der aktuell ausgewählten Liste. Wiederholte numerisch identische Paare werden nicht dupliziert.
- Die benannte Liste enthält die Regeln graphic/type + hue, und die reguläre Ignore enthält die spezifischen serial. Dabei handelt es sich um verschiedene Filter: Sie werden kombiniert, wenn die Suche sie unterstützt. Objekte bleiben sichtbar und für direkte UseObject/MoveItem zugänglich; Dies ist kein Hide oder Handlungsverbot.
- Beim Listennamen wird die Groß-/Kleinschreibung nicht beachtet. Randräume werden entfernt. Eine benannte Liste ist aktiv, zunächst standardmäßig. AddIgnoreList wählt es nicht automatisch aus. SelectIgnoreList("") deaktiviert nur den benannten Filter.
- Die Regeln gelten für neue Suchanfragen, einschließlich der hochgeladenen Elemente, NACHDEM sie hinzugefügt wurden. Das bereits empfangene Array und das vorherige Ergebnis FindCount werden erst bei einer erneuten Suche neu berechnet. Wählen Sie keine Liste mit der Regel -1,-1 aus, es sei denn, Sie möchten alles ausschließen.
- Der Filter berücksichtigt FindType/FindTypeEx/FindTypesArrayEx, FindList, FindAtCoord, FindNotoriety, Count/CountEx und erweiterte Auswahlen GetMobiles, GetWorldItems, UseType, WaitTarget, Attack/AttackNearest/FindMan. includeIgnored=true, sofern vorhanden, umgeht sowohl serial als auch type/hue. Die vollständige Aufzählung GetContent/GetEquipment, GetWorldItems() ohne Argumente und die verbale Aufzählung FindMobile(human,near,...) verwenden diese Regeln nicht.
- GetIgnoreList gibt nur explizit hinzugefügtes serial zurück; Die Zeilen der benannten Liste sind in diesem Array nicht enthalten. IgnoreReset löscht den gesamten serial-Filter, IgnoreOff(serial) entfernt eine serial-Ausnahme; Die genannten Regeln bleiben erhalten. ClearIgnoreList() ohne Argumente löscht beide Ansichten.
- Der Status gehört zum allgemeinen Status der Client-Profilskripte. Die Änderung wirkt sich auf andere Skripte mit diesem Status aus. Die Einstellungen sind im gespeicherten Snapshot enthalten. Nach der Änderung der Regeln kann ein anderes Skript bereits eine Suche mit dem zuvor erstellten Snapshot durchführen – bei der nächsten Suche wird das Update angezeigt.
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.
Der Befehl steht in einer eigenen Anweisung. Die Meldung davor zeigt den Beginn des Aufrufs und bestätigt keine Serveraktion.
UO.Print("Calling UO.AddIgnoreList");
UO.AddIgnoreList("simple_skip", 0x0EED);Parameter und Ablauf:
- loot_skip – Name festlegen. Die fehlende Farbe bedeutet irgendein hue. FindType gibt den Hex-String ID oder den leeren String zurück; Hier wird das Ergebnis unter next_loot gespeichert und das Element wird nicht verschoben. Bei der Suche nach Land kann man auch mobile finden.
UO.AddIgnoreList("loot_skip", 0x0EED);
UO.SelectIgnoreList("loot_skip");
var item = UO.FindType(-1, -1, "ground");
if (Truth(item == ""))
{
UO.Print("No unignored ground object found");
return null;
}
UO.AddObject("next_loot", item);
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:
- 0x1F03 - graphic Roben; 0x0044 ist ein Beispiel für eine geschützte Farbe. Robu ermöglicht eine weitere hue-Suche. Dies ist ein Schutz vor Auswahl durch Filtersuche, nicht vor direktem MoveItem durch das bekannte ID.
return RunScenario();
object? RunScenario()
{
UO.AddIgnoreList("keep_colored", 0x1F03, 0x0044);
UO.SelectIgnoreList("keep_colored");
var robe = UO.FindType(0x1F03, -1, "backpack");
if (Truth(robe != ""))
{
UO.AddObject("candidate_robe", robe);
}
return null;
}
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:
- Regeln werden in beiden Listen gespeichert. Um sowohl Gold als auch Roben gleichzeitig auszuschließen, fügen Sie beide type derselben Liste hinzu.
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()
{
UO.AddIgnoreList("skip_gold", 0x0EED);
UO.AddIgnoreList("skip_robes", 0x1F03);
UO.SelectIgnoreList("skip_gold");
UO.SelectIgnoreList("skip_robes");
return null;
}
}C# unterscheidet Groß- und Kleinschreibung. Verwenden Sie den genauen UO-Namen. Numerische Flags mit 0 vergleichen; bool nur bei Rückgabetyp bool verwenden.
Parameter: list (Any), type (Any)
Ergebnis: void / Unit.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.State.NamedIgnoreLists.Add:state.IgnoreTypeLists.Add(Text(0), ResolveType(arguments[1]), arguments.Length > 2 ? NumberConversions.ToInt(arguments[2]) : -1). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Text:Text(0). -
InjectionScript.Runtime.InjectionApiUO.ResolveType:ResolveType(arguments[1]). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(arguments[2]).
Interner Implementierungscode; kein eigenständiges Skript.
case "addignorelist":
state.IgnoreTypeLists.Add(Text(0), ResolveType(arguments[1]),
arguments.Length > 2 ? NumberConversions.ToInt(arguments[2]) : -1);
break;Parameter: list (Any), type (Any), color (Any)
Ergebnis: void / Unit.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.State.NamedIgnoreLists.Add:state.IgnoreTypeLists.Add(Text(0), ResolveType(arguments[1]), arguments.Length > 2 ? NumberConversions.ToInt(arguments[2]) : -1). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Text:Text(0). -
InjectionScript.Runtime.InjectionApiUO.ResolveType:ResolveType(arguments[1]). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(arguments[2]).
Interner Implementierungscode; kein eigenständiges Skript.
case "addignorelist":
state.IgnoreTypeLists.Add(Text(0), ResolveType(arguments[1]),
arguments.Length > 2 ? NumberConversions.ToInt(arguments[2]) : -1);
break;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.ClearBadLocationList();Löscht alle von SetBadLocation gespeicherten Paare.
Es gibt keine Parameter.
void – kein Rückgabewert. Rufen Sie eine separate Leitung an; es ist nicht true/false oder die Anzahl der Schritte.
- Ändert nicht die Karte, Charaktere oder Hindernisse auf dem Server. Nur die Anwendungslaufzeitliste wird gelöscht.
- Das bereits empfangene Pfadarray und der Snapshot der Verbote der Laufroute werden nicht verändert. Für ein neues Ergebnis wiederholen Sie die Pfadanforderung oder starten die Bewegung erneut. Die Liste SetBadObject wird separat gelöscht.
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.
Der Befehl steht in einer eigenen Anweisung. Die Meldung davor zeigt den Beginn des Aufrufs und bestätigt keine Serveraktion.
UO.Print("Calling UO.ClearBadLocationList");
UO.ClearBadLocationList();Parameter und Ablauf:
- Es gibt keine Parameter.
- Es gibt keinen Rückgabewert.
UO.ClearBadLocationList();Parameter und Ablauf:
- Zuerst werden die vorherigen Paare gelöscht, dann wird ein neues hinzugefügt.
- Dabei handelt es sich weder um ein physisches Hindernis noch um eine Änderung der Kundenkarte.
return RunScenario();
object? RunScenario()
{
UO.ClearBadLocationList();
UO.SetBadLocation(1445, 1690);
return null;
}Parameter und Ablauf:
- Das Ziel liegt vier Zellen östlich, Optimiert=true, Genauigkeit=0.
- Ein leeres Array nach dem Löschen kann auf ein allgemeines Hindernis oder eine Suchbeschränkung zurückzuführen sein.
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()
{
UO.ClearBadLocationList();
var path = UO.GetPathArray(UO.GetX() + 4, UO.GetY(), true, 0);
if (Truth(ArrayLength(path) == 0))
{
UO.Print("No complete path under current constraints");
}
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;
}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: void / Unit.
Beim Aufruf:
Interner Implementierungscode; kein eigenständiges Skript.
case "clearbadlocationlist": state.BadLocations.Clear(); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.ClearBadObjectList();Entfernt alle type/hue/Radiusregeln, die von SetBadObject in der aktuellen Laufzeit hinzugefügt wurden.
Es gibt keine Parameter.
void – kein Rückgabewert. Rufen Sie eine separate Leitung an; es ist nicht true/false oder die Anzahl der Schritte.
- Es gibt keine Parameter. Ein erneuter Anruf, wenn die Liste leer ist, ist sicher.
- Reinigt SetBadLocation nicht und entfernt keine natürlichen Hindernisse. Eine neue Bewegungs- oder Pfadanforderung verwendet die gelöschte Liste; Die zuvor gestartete Route speichert einen eigenen Snapshot.
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.
Der Befehl steht in einer eigenen Anweisung. Die Meldung davor zeigt den Beginn des Aufrufs und bestätigt keine Serveraktion.
UO.Print("Calling UO.ClearBadObjectList");
UO.ClearBadObjectList();Parameter und Ablauf:
- Es gibt keine Argumente; Der Anruf wird auf einer separaten Leitung aufgezeichnet.
- Es gibt kein Ergebnis true/false und es gibt keine Anzahl gelöschter Regeln.
UO.ClearBadObjectList();Parameter und Ablauf:
- Nach dem Löschen wird nur type=0x398C einer beliebigen Farbe hinzugefügt.
- Radius=2 schließt ein 5×5-Quadrat um geeignete Elemente in der nächsten Route aus.
return RunScenario();
object? RunScenario()
{
UO.ClearBadObjectList();
UO.SetBadObject(0x398C, -1, 2);
return null;
}Parameter und Ablauf:
- Die beiden Listen sind unabhängig: Beide Befehle werden aufgerufen, um beide zurückzusetzen.
- Die drei Quadrate im Osten sind ein Beispiel für ein Ziel. Passierbarkeit der Karte, Höhe und Suchlimit bleiben erhalten; Ein leeres Array ist immer noch ein gültiges Ergebnis.
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()
{
UO.ClearBadObjectList();
UO.ClearBadLocationList();
var path = UO.GetPathArray(UO.GetX() + 3, UO.GetY(), true, 0);
UO.Print(Convert.ToString(ArrayLength(path)));
return null;
}
int ArrayLength(object? value) => value is System.Array array ? array.Length : 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: void / Unit.
Beim Aufruf:
Interner Implementierungscode; kein eigenständiges Skript.
case "clearbadobjectlist": state.BadObjects.Clear(); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.ClearFindList();
void UO.ClearFindList(object? list);Entfernt die Definitionen eines benannten Suchsatzes oder aller Sätze AddFindList der aktuellen Laufzeit. Wird vor der Neukonfiguration von Filtern verwendet, um eine Anhäufung von Regeln zu verhindern.
-
list– Der Name des Regelsatzes, zum Beispiel „loot“. Übergeben Sie die Zeichenfolge ohne |: Dieses Zeichen wird als Trennzeichen innerhalb des Datensatzes verwendet. Beim Namen wird die Groß-/Kleinschreibung nicht beachtet. Dies ist kein serial-Container oder ein Array gefundener Elemente. Fehlt das Argument, werden ALLE Definitionen von AddFindList in dieser Laufzeit entfernt.
void: Kein Rückgabewert. Weisen Sie den Aufruf keiner Variablen zu und testen Sie ihn nicht auf true/1. Der Status der Definitionen kann abgeleitet werden UO.InfoFindList(); die Suche selbst wird separat über UO.FindList() gestartet.
- Definitionen befinden sich im Status der angegebenen Skriptlaufzeit. Eine unabhängige andere Laufzeit verfügt über einen eigenen Satz. Durch das Schließen des IDE-Fensters werden diese Regeln nicht gelöscht. Dies ist keine Einstellungsdatei oder eine Liste globaler Spielobjekte.
- AddFindList hängt den Eintrag am Ende an; Wiederholungen werden nicht gelöscht. Um Ihr Kit erneut bereitzustellen, rufen Sie zunächst ClearFindList("Name") auf. Durch das Ändern von Definitionen werden bereits empfangene FindItem/FindCount/GetFoundItems nicht gelöscht.
- Der Datensatz speichert Textfelder. Das numerische Literal 0x0EED wird als „3821“ gespeichert, die Zeichenfolge „0x0EED“ wird als „0x0EED“ gespeichert. Die Suche wandelt beide Optionen in eine Zahl um und DeleteFindList vergleicht den gespeicherten Text. Verwenden Sie beim Hinzufügen und Löschen dasselbe Formular.
- Der unbekannte Name in FindList ist kein leerer registrierter Satz: Die Engine versucht, ihn als Liste numerischer Typen zu analysieren. Ein nicht numerischer Name verursacht einen Konvertierungsfehler. Erstellen Sie nach dem Löschen des letzten Eintrags einen neuen Satz, bevor Sie nach diesem Namen suchen.
- Ein nicht vorhandener Name ist sicher: Es wird nichts gelöscht. Der Befehl entfernt keine Spielgegenstände, löscht Ignore nicht und bricht die Bewegung nicht ab.
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.
Der Befehl steht in einer eigenen Anweisung. Die Meldung davor zeigt den Beginn des Aufrufs und bestätigt keine Serveraktion.
UO.Print("Calling UO.ClearFindList");
UO.ClearFindList();Parameter und Ablauf:
- Innerhalb von BuildLoot wird nur Beute gelöscht. Andere benannte Sätze dieses Skripts bleiben erhalten.
BuildLoot();
BuildLoot();
UO.InfoFindList();
void BuildLoot()
{
UO.ClearFindList("loot");
UO.AddFindList("loot", 0x0EED, -1);
UO.AddFindList("loot", 0x0F7A, -1);
}Parameter und Ablauf:
- Das SEASON-Register ist nicht wichtig. Reserve bleibt; In der Saison gibt es jetzt nur noch das neue type/hue. Nach der Bereinigung wird zunächst der Datensatz hinzugefügt, anschließend ist die Suche nach Namen möglich.
return RunScenario();
object? RunScenario()
{
UO.AddFindList("reserve", 0x0EED);
UO.AddFindList("season", 0x0F7A);
UO.ClearFindList("SEASON");
UO.AddFindList("season", 0x0EED, 0x0044);
UO.InfoFindList();
return null;
}Parameter und Ablauf:
- ClearFindList() wirkt sich auf alle Definitionen der aktuellen Laufzeit aus, daher ist eine selbstbenennende Form normalerweise besser für eine Bibliotheksprozedur.
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()
{
UO.AddFindList("old_loot", 0x0EED);
UO.AddFindList("old_watch", 0x0190);
UO.AddFindList("old_watch", 0x0191);
UO.ClearFindList();
UO.AddFindList("current", 0x0F7A, -1);
var found = UO.FindList("current", "backpack");
if (Truth(found != ""))
{
UO.AddObject("current_supply", found);
}
return null;
}
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: void / Unit.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::LegacyList:LegacyList("AddFindList"). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Text:Text(0).
Interner Implementierungscode; kein eigenständiges Skript.
case "clearfindlist":
if (arguments.Length == 0) LegacyList("AddFindList").Clear();
else LegacyList("AddFindList").RemoveAll(value => value.Split('|')[0]
.Equals(Text(0), StringComparison.OrdinalIgnoreCase));
break;Parameter: list (Any)
Ergebnis: void / Unit.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::LegacyList:LegacyList("AddFindList"). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Text:Text(0).
Interner Implementierungscode; kein eigenständiges Skript.
case "clearfindlist":
if (arguments.Length == 0) LegacyList("AddFindList").Clear();
else LegacyList("AddFindList").RemoveAll(value => value.Split('|')[0]
.Equals(Text(0), StringComparison.OrdinalIgnoreCase));
break;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.ClearIgnoreList();
void UO.ClearIgnoreList(object? list);Setzt Suchausnahmen zurück. Mit einem Namen – nur ein Satz type/hue. Keine Argumente – alle benannten Mengen und alle serial, die bis Ignore hinzugefügt wurden. Es ist sinnvoll, eine neue Sortierung mit sauberen Regeln zu beginnen.
-
list– Beliebiger, nicht leerer Name, zum Beispiel „loot_skip“. Beim Namen wird die Groß-/Kleinschreibung nicht beachtet. Dies ist nicht der Name des Elements, nicht des serial-Containers und nicht der Name von FindList. Optional. Sein Fehlen bedeutet einen allgemeinen Reset, nicht nur die aktive Liste.
void – kein Wert. Verwendung in einer separaten Zeile ohne var Ergebnis = und ohne Ankreuzen von =true. Der Befehl ändert den lokalen Filter; gibt die Anzahl der Elemente nicht zurück und sendet nichts an den Server.
- ClearIgnoreList("Name") entspricht im Ergebnis DeleteIgnoreList("Name"). Eine leere Zeichenfolge ist hier nicht zulässig; Zum Deaktivieren ohne Löschen verwenden Sie SelectIgnoreList("").
- Die benannte Liste enthält die Regeln graphic/type + hue, und die reguläre Ignore enthält die spezifischen serial. Dabei handelt es sich um verschiedene Filter: Sie werden kombiniert, wenn die Suche sie unterstützt. Objekte bleiben sichtbar und für direkte UseObject/MoveItem zugänglich; Dies ist kein Hide oder Handlungsverbot.
- Beim Listennamen wird die Groß-/Kleinschreibung nicht beachtet. Randräume werden entfernt. Eine benannte Liste ist aktiv, zunächst standardmäßig. AddIgnoreList wählt es nicht automatisch aus. SelectIgnoreList("") deaktiviert nur den benannten Filter.
- Die Regeln gelten für neue Suchanfragen, einschließlich der hochgeladenen Elemente, NACHDEM sie hinzugefügt wurden. Das bereits empfangene Array und das vorherige Ergebnis FindCount werden erst bei einer erneuten Suche neu berechnet. Wählen Sie keine Liste mit der Regel -1,-1 aus, es sei denn, Sie möchten alles ausschließen.
- Der Filter berücksichtigt FindType/FindTypeEx/FindTypesArrayEx, FindList, FindAtCoord, FindNotoriety, Count/CountEx und erweiterte Auswahlen GetMobiles, GetWorldItems, UseType, WaitTarget, Attack/AttackNearest/FindMan. includeIgnored=true, sofern vorhanden, umgeht sowohl serial als auch type/hue. Die vollständige Aufzählung GetContent/GetEquipment, GetWorldItems() ohne Argumente und die verbale Aufzählung FindMobile(human,near,...) verwenden diese Regeln nicht.
- GetIgnoreList gibt nur explizit hinzugefügtes serial zurück; Die Zeilen der benannten Liste sind in diesem Array nicht enthalten. IgnoreReset löscht den gesamten serial-Filter, IgnoreOff(serial) entfernt eine serial-Ausnahme; Die genannten Regeln bleiben erhalten. ClearIgnoreList() ohne Argumente löscht beide Ansichten.
- Der Status gehört zum allgemeinen Status der Client-Profilskripte. Die Änderung wirkt sich auf andere Skripte mit diesem Status aus. Die Einstellungen sind im gespeicherten Snapshot enthalten. Nach der Änderung der Regeln kann ein anderes Skript bereits eine Suche mit dem zuvor erstellten Snapshot durchführen – bei der nächsten Suche wird das Update angezeigt.
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.
Der Befehl steht in einer eigenen Anweisung. Die Meldung davor zeigt den Beginn des Aufrufs und bestätigt keine Serveraktion.
UO.Print("Calling UO.ClearIgnoreList");
UO.ClearIgnoreList();Parameter und Ablauf:
- Vorübergehend entfernt, Roben bleiben weiterhin ausgeschlossen. Die reguläre Liste serial wird nicht gelöscht.
UO.AddIgnoreList("temporary", 0x0EED);
UO.AddIgnoreList("keep", 0x1F03);
UO.ClearIgnoreList("temporary");
UO.SelectIgnoreList("keep");Parameter und Ablauf:
- Ohne Argumente werden beide Arten von Ausnahmen ausgelöst. Alte Variablen/Arrays werden nicht gelöscht. Das neue FindType regeneriert das Ergebnis.
return RunScenario();
object? RunScenario()
{
UO.ClearIgnoreList();
var item = UO.FindType(0x0EED, -1, "ground");
if (Truth(item != ""))
{
UO.AddObject("fresh_gold", item);
}
return null;
}
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:
- Alte Sortierregeln wurden entfernt, bevor neue hinzugefügt wurden: alles Gold und nur die Farbe 0x0044 auf der Robe. Zwischen einzelnen Befehlen kann ein anderes Skript einen Zwischenstatus sehen.
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()
{
UO.ClearIgnoreList("sorting");
UO.AddIgnoreList("sorting", 0x0EED);
UO.AddIgnoreList("sorting", 0x1F03, 0x0044);
UO.SelectIgnoreList("sorting");
return null;
}
}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: void / Unit.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.InjectionApiUO.IgnoreReset:IgnoreReset(). -
InjectionScript.Runtime.State.NamedIgnoreLists.Clear:state.IgnoreTypeLists.Clear(). -
InjectionScript.Runtime.State.NamedIgnoreLists.Remove:state.IgnoreTypeLists.Remove(Text(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Text:Text(0).
Interner Implementierungscode; kein eigenständiges Skript.
case "clearignorelist":
if (arguments.Length == 0)
{
IgnoreReset();
state.IgnoreTypeLists.Clear();
}
else
state.IgnoreTypeLists.Remove(Text(0));
break;Parameter: list (Any)
Ergebnis: void / Unit.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.InjectionApiUO.IgnoreReset:IgnoreReset(). -
InjectionScript.Runtime.State.NamedIgnoreLists.Clear:state.IgnoreTypeLists.Clear(). -
InjectionScript.Runtime.State.NamedIgnoreLists.Remove:state.IgnoreTypeLists.Remove(Text(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Text:Text(0).
Interner Implementierungscode; kein eigenständiges Skript.
case "clearignorelist":
if (arguments.Length == 0)
{
IgnoreReset();
state.IgnoreTypeLists.Clear();
}
else
state.IgnoreTypeLists.Remove(Text(0));
break;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
int UO.Count(object? @type);
int UO.Count(object? @type, object? color);
int UO.Count(object? @type, object? color, object? container);Führt eine Suche durch und fasst die Einheiten der gefundenen Elemente zusammen.
-
type– Grafik/type eines Artikels (z. B. 0x0EED), nicht serial. -1 oder 0xFFFF – jedes type. -
color– Farbton des Artikels; -1 oder 0xFFFF – jede Farbe. In Count(type) und CountGround(type) ist der Standardwert 1. -
container– In Count(type,Farbe,Container): my oder numerisch -1 – alle Gegenstände, deren Stammbesitzer self ist (einschließlich Ausrüstung und verschachtelte Taschen); backpack/serial – der Inhalt des angegebenen Containers ist rekursiv; UO.Ground(), explizit 0/"0", ground oder 1 – Gegenstände und Mobilgeräte am Boden. In CountEx bedeuten die Ziffern -1 und 0xFFFFFFFF auch Grund, aber das konkrete serial bedeutet nur direkten Inhalt. CountEx nimmt backpack und benennt AddObject; Unbekannter Name verursacht Skriptfehler. Überprüfen Sie das resultierende serial vor dem Aufruf: Eine explizite Null wählt den Boden und nicht den fehlenden Container aus.
int – Summe max(1, Menge) der gefundenen Elemente; Jedes Mobiltelefon fügt 1 hinzu. 0 keine Übereinstimmungen. Dabei handelt es sich um die Anzahl der Einheiten, nicht um die Anzahl der Stapel. FindItem, FindCount, FindFullQuantity und GetFoundItems werden gleichzeitig aktualisiert.
- Count sucht mit einem oder zwei Argumenten nach Gegenständen, die self gehören, einschließlich Ausrüstung und verschachtelten Taschen. CountGround sucht immer nach Grundstücken, einschließlich passender Mobiles, jedoch ohne self.
- Count(type,Farbe,serial) umgeht verschachtelte Taschen, CountEx(type,Farbe,serial) – nur direkte Inhalte. Die Einschränkungen FindDistance/FindVertical gelten für Land; Ignore gilt für gefundene Objekte.
- Das Ergebnis hängt vom Inhalt der bereits erhaltenen Behälter ab. Es erfolgt keine automatische Öffnung oder Serveranfrage für eine vollständige Inventur.
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.
var result = UO.Count(0x0EED, -1, "backpack");
UO.Print("Count: " + Convert.ToString(result));Parameter und Ablauf:
- type=0x0EED, Farbe=-1. Bereich - Rucksack; Berücksichtigen Sie den Rekursivitätsunterschied Count/CountEx.
- Ein Fuß von 1000 Stricheinheiten = 1000, nicht 1.
var units = UO.Count(0x0EED, -1, "backpack");
UO.Print("Units: " + Convert.ToString(units));Parameter und Ablauf:
- FindCount wird unmittelbar nach Count gelesen, vor einer weiteren Suche.
- Zwei Stapel von 50 ergeben 2 Gegenstände und 100 Einheiten.
return RunScenario();
object? RunScenario()
{
var units = UO.Count(0x0EED, -1, "backpack");
var items = UO.FindCount();
UO.Print(Convert.ToString(items) + " items, " + Convert.ToString(units) + " units");
return null;
}Parameter und Ablauf:
- 100 ist in diesem Beispiel der Einheitenschwellenwert.
- Hierbei handelt es sich um eine Snapshot-Prüfung, nicht um eine Reservierung von Artikeln. Die Mengen können sich zwischen Überprüfung und Übertragung ändern.
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()
{
var units = UO.Count(0x0EED, -1, "backpack");
if (Truth(units >= 100))
{
UO.Print("Enough units known to the client");
}
else
{
UO.Print("Not enough known units");
}
return null;
}
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: type (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.Count. -
InjectionScript.Runtime.InjectionApiUO.Count:Count(ResolveType(type), -1, -1). -
InjectionScript.Runtime.InjectionApiUO.ResolveType:ResolveType(type).
Interner Implementierungscode; kein eigenständiges Skript.
public int Count(InjectionValue type)
=> Count(ResolveType(type), -1, -1);Parameter: type (Any), color (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.Count. -
InjectionScript.Runtime.InjectionApiUO.Count:Count(ResolveType(type), NumberConversions.ToInt(color), 0). -
InjectionScript.Runtime.InjectionApiUO.ResolveType:ResolveType(type). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(color).
Interner Implementierungscode; kein eigenständiges Skript.
public int Count(InjectionValue type, InjectionValue color)
=> Count(ResolveType(type), NumberConversions.ToInt(color), 0);Parameter: type (Any), color (Any), container (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.Count. -
InjectionScript.Runtime.InjectionApiUO.Count:Count(ResolveType(type), NumberConversions.ToInt(color), ConvertContainer(container)). -
InjectionScript.Runtime.InjectionApiUO.ResolveType:ResolveType(type). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(color). -
InjectionScript.Runtime.InjectionApiUO.ConvertContainer:ConvertContainer(container).
Interner Implementierungscode; kein eigenständiges Skript.
public int Count(InjectionValue type, InjectionValue color, InjectionValue container)
=> Count(ResolveType(type), NumberConversions.ToInt(color), ConvertContainer(container));Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
int UO.CountEx(object? objType, object? color, object? container);Zählt Gegenstandseinheiten direkt im Behälter, ohne verschachtelte Taschen zu durchsuchen. Bei Bodensuche zählen auch passende Figuren/NPCs jeweils als eine Einheit. FindDistance, FindVertical und Ignore gelten weiterhin. FindItem, FindCount, FindFullQuantity und GetFoundItems bleiben unverändert.
objType ist die Grafik/type, nicht die Seriennummer; color ist der Farbton. -1 oder 0xFFFF erlaubt jeden Typ/Farbton. container ist die Behälter-ID: UO.Backpack() für den Rucksack, UO.Ground() für den Boden. Rückgabe int: Summe von max(1, Amount), 0 bei keinem Treffer. Nur bereits empfangene Inhalte werden berücksichtigt; Taschen werden nicht automatisch geöffnet.
int goldUnits = UO.CountEx(0x0EED, -1, UO.Backpack());
UO.Print(goldUnits.ToString());UO.FindTypeEx(0x0EED, -1, UO.Backpack(), false);
int previousFoundItem = UO.FindItem();
int bandages = UO.CountEx(0x0E21, -1, UO.Backpack());
bool searchPreserved = UO.FindItem() == previousFoundItem;
UO.Print($"{bandages}; {searchPreserved}");int units = CountBackpackUnits(0x0EED);
UO.Print(units.ToString());
int CountBackpackUnits(int graphic)
{
return UO.CountEx(graphic, -1, UO.Backpack());
}var counter = new InventoryCounter(UO);
UO.Print(counter.CountGold().ToString());
class InventoryCounter(ClassicUO.CSharp.CSharpGameApi api)
{
public int CountGold() => api.CountEx(0x0EED, -1, api.Backpack());
}ClassicUOInjectionApiBridge.CountDirectItems → MatchesFindIdentity / MatchesFindContainer / MatchesFindMobile.
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
int UO.CountGround(object? @type);
int UO.CountGround(object? @type, object? color);Führt eine Suche durch und fasst die Einheiten der gefundenen Elemente zusammen.
-
type– Grafik/type eines Artikels (z. B. 0x0EED), nicht serial. -1 oder 0xFFFF – jedes type. -
color– Farbton des Artikels; -1 oder 0xFFFF – jede Farbe. In Count(type) und CountGround(type) ist der Standardwert 1.
int – Summe max(1, Menge) der gefundenen Elemente; Jedes Mobiltelefon fügt 1 hinzu. 0 keine Übereinstimmungen. Dabei handelt es sich um die Anzahl der Einheiten, nicht um die Anzahl der Stapel. FindItem, FindCount, FindFullQuantity und GetFoundItems werden gleichzeitig aktualisiert.
- Count sucht mit einem oder zwei Argumenten nach Gegenständen, die self gehören, einschließlich Ausrüstung und verschachtelten Taschen. CountGround sucht immer nach Grundstücken, einschließlich passender Mobiles, jedoch ohne self.
- Count(type,Farbe,serial) umgeht verschachtelte Taschen, CountEx(type,Farbe,serial) – nur direkte Inhalte. Die Einschränkungen FindDistance/FindVertical gelten für Land; Ignore gilt für gefundene Objekte.
- Das Ergebnis hängt vom Inhalt der bereits erhaltenen Behälter ab. Es erfolgt keine automatische Öffnung oder Serveranfrage für eine vollständige Inventur.
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.
var result = UO.CountGround(0x0EED, -1);
UO.Print("CountGround: " + Convert.ToString(result));Parameter und Ablauf:
- type=0x0EED, Farbe=-1. Fläche ist das Land neben dem Charakter.
- Ein Fuß von 1000 Stricheinheiten = 1000, nicht 1.
var units = UO.CountGround(0x0EED, -1);
UO.Print("Units: " + Convert.ToString(units));Parameter und Ablauf:
- FindCount wird unmittelbar nach Count gelesen, vor einer weiteren Suche.
- Zwei Stapel von 50 ergeben 2 Gegenstände und 100 Einheiten.
return RunScenario();
object? RunScenario()
{
var units = UO.CountGround(0x0EED, -1);
var items = UO.FindCount();
UO.Print(Convert.ToString(items) + " items, " + Convert.ToString(units) + " units");
return null;
}Parameter und Ablauf:
- 100 ist in diesem Beispiel der Einheitenschwellenwert.
- Hierbei handelt es sich um eine Snapshot-Prüfung, nicht um eine Reservierung von Artikeln. Die Mengen können sich zwischen Überprüfung und Übertragung ändern.
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()
{
var units = UO.CountGround(0x0EED, -1);
if (Truth(units >= 100))
{
UO.Print("Enough units known to the client");
}
else
{
UO.Print("Not enough known units");
}
return null;
}
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: type (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.CountGround. -
InjectionScript.Runtime.InjectionApiUO.CountGround:CountGround(type, new InjectionValue(-1)).
Interner Implementierungscode; kein eigenständiges Skript.
public int CountGround(InjectionValue type)
=> CountGround(type, new InjectionValue(-1));Parameter: type (Any), color (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.CountGround. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Count:bridge.Count(ResolveType(type), NumberConversions.ToInt(color), 1). -
InjectionScript.Runtime.InjectionApiUO.ResolveType:ResolveType(type). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(color).
Interner Implementierungscode; kein eigenständiges Skript.
public int CountGround(InjectionValue type, InjectionValue color)
=> bridge.Count(ResolveType(type), NumberConversions.ToInt(color), 1);Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.DeleteFindList(object? list);
void UO.DeleteFindList(object? list, object? @type);
void UO.DeleteFindList(object? list, object? @type, object? color);Entfernt alle Definitionen, die mit dem angegebenen Listen-, list/type- oder list/type/color-Präfix übereinstimmen. Ermöglicht das Entfernen eines Elementtyps oder eines bestimmten hue, während die übrigen festgelegten Regeln beibehalten werden.
-
list– Der Name des Regelsatzes, zum Beispiel „loot“. Übergeben Sie die Zeichenfolge ohne |: Dieses Zeichen wird als Trennzeichen innerhalb des Datensatzes verwendet. Beim Namen wird die Groß-/Kleinschreibung nicht beachtet. Dies ist kein serial-Container oder ein Array gefundener Elemente. -
type– Grafik/type eines Artikels oder body mobile, nicht sein serial. Typischerweise int 0..65535, einschließlich 0x0EED; -1 oder 0xFFFF bedeutet jedes type bei der Suche. Geben Sie einen Wert pro Eintrag an. Mehrere Typen werden durch separate Aufrufe hinzugefügt. Zum Löschen wird der Feldtext verglichen; Durch Überspringen werden alle Namenseinträge gelöscht. -
color– Farbton eines Objekts/Körpers, nicht RGB. int 0..65535; 0 – normal hue 0, -1 oder 0xFFFF – beliebig. In AddFindList bedeutet das Überspringen von Farben jedes hue bei der Suche. Zum Löschen ist dies ein Literalfeld, kein Platzhalter: -1 löscht nur Einträge mit -1 explizit gespeichert. Wenn Sie die Farbe weglassen, werden alle Listen-/type-Einträge unabhängig von hue entfernt.
void: Kein Rückgabewert. Weisen Sie den Aufruf keiner Variablen zu und testen Sie ihn nicht auf true/1. Der Status der Definitionen kann abgeleitet werden UO.InfoFindList(); die Suche selbst wird separat über UO.FindList() gestartet.
- Definitionen befinden sich im Status der angegebenen Skriptlaufzeit. Eine unabhängige andere Laufzeit verfügt über einen eigenen Satz. Durch das Schließen des IDE-Fensters werden diese Regeln nicht gelöscht. Dies ist keine Einstellungsdatei oder eine Liste globaler Spielobjekte.
- AddFindList hängt den Eintrag am Ende an; Wiederholungen werden nicht gelöscht. Um Ihr Kit erneut bereitzustellen, rufen Sie zunächst ClearFindList("Name") auf. Durch das Ändern von Definitionen werden bereits empfangene FindItem/FindCount/GetFoundItems nicht gelöscht.
- Der Datensatz speichert Textfelder. Das numerische Literal 0x0EED wird als „3821“ gespeichert, die Zeichenfolge „0x0EED“ wird als „0x0EED“ gespeichert. Die Suche wandelt beide Optionen in eine Zahl um und DeleteFindList vergleicht den gespeicherten Text. Verwenden Sie beim Hinzufügen und Löschen dasselbe Formular.
- Der unbekannte Name in FindList ist kein leerer registrierter Satz: Die Engine versucht, ihn als Liste numerischer Typen zu analysieren. Ein nicht numerischer Name verursacht einen Konvertierungsfehler. Erstellen Sie nach dem Löschen des letzten Eintrags einen neuen Satz, bevor Sie nach diesem Namen suchen.
- DeleteFindList(list,type,-1) löscht den Zwei-Parameter-Datensatz AddFindList(list,type) nicht: Er hat kein drittes Feld. Alle übereinstimmenden Duplikate werden gelöscht. Eine nicht vorhandene Übereinstimmung ändert nichts.
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.
Der Befehl steht in einer eigenen Anweisung. Die Meldung davor zeigt den Beginn des Aufrufs und bestätigt keine Serveraktion.
UO.AddFindList("simple_loot", 0x0EED);
UO.Print("Calling UO.DeleteFindList");
UO.DeleteFindList("simple_loot");Parameter und Ablauf:
- Zwei Argumente entfernen beide Goldeinträge: „any hue“ und „hue 0x0044“.
UO.ClearFindList("loot");
UO.AddFindList("loot", 0x0EED, -1);
UO.AddFindList("loot", 0x0EED, 0x0044);
UO.AddFindList("loot", 0x0F7A);
UO.DeleteFindList("loot", 0x0EED);
var found = UO.FindList("loot", "backpack");
if (Truth(found != ""))
{
UO.AddObject("remaining_supply", found);
}
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:
- Drei Argumente: Farben, graphic Gold, spezifisch hue. Übrig bleibt nur noch hue 0. In anderen Sets wird dieses graphic nicht entfernt.
return RunScenario();
object? RunScenario()
{
UO.ClearFindList("colors");
UO.AddFindList("colors", 0x0EED, 0);
UO.AddFindList("colors", 0x0EED, 0x0044);
UO.DeleteFindList("colors", 0x0EED, 0x0044);
UO.InfoFindList();
return null;
}Parameter und Ablauf:
- Ein Argument entfernt alle alten Einträge. Wenn die Regeln durch die Zeile „0x0190“ angegeben wurden, löschen Sie sie mit derselben Zeile oder löschen Sie den Satz nach Namen.
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()
{
UO.AddFindList("old", 0x0190);
UO.AddFindList("old", 0x0191);
UO.DeleteFindList("OLD");
UO.AddFindList("new_watch", 0x0190, -1);
UO.AddFindList("new_watch", 0x0191, -1);
UO.InfoFindList();
return null;
}
}C# unterscheidet Groß- und Kleinschreibung. Verwenden Sie den genauen UO-Namen. Numerische Flags mit 0 vergleichen; bool nur bei Rückgabetyp bool verwenden.
Parameter: list (Any)
Ergebnis: void / Unit.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::LegacyList:LegacyList("AddFindList"). -
InjectionScript.Runtime.InjectionApiUO.LegacyListEntryMatches:LegacyListEntryMatches(value, arguments).
Interner Implementierungscode; kein eigenständiges Skript.
case "deletefindlist":
LegacyList("AddFindList").RemoveAll(value => LegacyListEntryMatches(value,
arguments));
break;Parameter: list (Any), type (Any)
Ergebnis: void / Unit.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::LegacyList:LegacyList("AddFindList"). -
InjectionScript.Runtime.InjectionApiUO.LegacyListEntryMatches:LegacyListEntryMatches(value, arguments).
Interner Implementierungscode; kein eigenständiges Skript.
case "deletefindlist":
LegacyList("AddFindList").RemoveAll(value => LegacyListEntryMatches(value,
arguments));
break;Parameter: list (Any), type (Any), color (Any)
Ergebnis: void / Unit.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::LegacyList:LegacyList("AddFindList"). -
InjectionScript.Runtime.InjectionApiUO.LegacyListEntryMatches:LegacyListEntryMatches(value, arguments).
Interner Implementierungscode; kein eigenständiges Skript.
case "deletefindlist":
LegacyList("AddFindList").RemoveAll(value => LegacyListEntryMatches(value,
arguments));
break;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.DeleteIgnoreList(object? list);
void UO.DeleteIgnoreList(object? list, object? @type);
void UO.DeleteIgnoreList(object? list, object? @type, object? color);Entfernt den gesamten benannten Filter oder ausgewählte Regeln darin. Wird verwendet, wenn ein bestimmtes type oder hue unter Beibehaltung anderer Ausnahmen wieder in die Suche aufgenommen werden muss.
-
list– Beliebiger, nicht leerer Name, zum Beispiel „loot_skip“. Beim Namen wird die Groß-/Kleinschreibung nicht beachtet. Dies ist nicht der Name des Elements, nicht des serial-Containers und nicht der Name von FindList. -
type– Grafik/type eines Artikels oder body mobile. Zum Beispiel ist 0x0EED Gold, 0x0191 ist ein weiblicher menschlicher Körper. Zahl oder numerische Zeichenfolge („0x0EED“, „3821“); -1/anderes Negativ/0xFFFF - beliebig type. Werte größer als 65535 sind nicht zulässig. Für mehrere type fügen Sie mehrere Regeln hinzu. Wenn nicht übertragen, löschen Sie die gesamte Liste; Wenn es ohne Farbe weitergegeben wird, gelten alle Regeln genau wie folgt: type. -
color– Farbton: 0 – nur ungefärbt, 0x0044 – Beispiel für eine exakte Farbe; negativ oder 0xFFFF - beliebig. Werte größer als 65535 sind nicht zulässig. In „Hinzufügen“ ist der Standardwert 1. Typ und hue innerhalb einer Regel werden durch eine UND-Bedingung verbunden; andere Regeln - ODER. Legt beim Löschen die genaue Regelmaske fest; -1 entfernt die Regel „Jede Farbe“ und nicht alle einzelnen Farben.
void – kein Wert. Verwendung in einer separaten Zeile ohne var Ergebnis = und ohne Ankreuzen von =true. Der Befehl ändert den lokalen Filter; gibt die Anzahl der Elemente nicht zurück und sendet nichts an den Server.
- Die Zahl 3821 und die Zeichenfolge „0x0EED“ repräsentieren ein type. Das Löschen einer nicht vorhandenen Regel ändert nichts. Der Name der ausgewählten Liste bleibt auch dann erhalten, wenn die Liste selbst gelöscht wird; es wird leer.
- Die benannte Liste enthält die Regeln graphic/type + hue, und die reguläre Ignore enthält die spezifischen serial. Dabei handelt es sich um verschiedene Filter: Sie werden kombiniert, wenn die Suche sie unterstützt. Objekte bleiben sichtbar und für direkte UseObject/MoveItem zugänglich; Dies ist kein Hide oder Handlungsverbot.
- Beim Listennamen wird die Groß-/Kleinschreibung nicht beachtet. Randräume werden entfernt. Eine benannte Liste ist aktiv, zunächst standardmäßig. AddIgnoreList wählt es nicht automatisch aus. SelectIgnoreList("") deaktiviert nur den benannten Filter.
- Die Regeln gelten für neue Suchanfragen, einschließlich der hochgeladenen Elemente, NACHDEM sie hinzugefügt wurden. Das bereits empfangene Array und das vorherige Ergebnis FindCount werden erst bei einer erneuten Suche neu berechnet. Wählen Sie keine Liste mit der Regel -1,-1 aus, es sei denn, Sie möchten alles ausschließen.
- Der Filter berücksichtigt FindType/FindTypeEx/FindTypesArrayEx, FindList, FindAtCoord, FindNotoriety, Count/CountEx und erweiterte Auswahlen GetMobiles, GetWorldItems, UseType, WaitTarget, Attack/AttackNearest/FindMan. includeIgnored=true, sofern vorhanden, umgeht sowohl serial als auch type/hue. Die vollständige Aufzählung GetContent/GetEquipment, GetWorldItems() ohne Argumente und die verbale Aufzählung FindMobile(human,near,...) verwenden diese Regeln nicht.
- GetIgnoreList gibt nur explizit hinzugefügtes serial zurück; Die Zeilen der benannten Liste sind in diesem Array nicht enthalten. IgnoreReset löscht den gesamten serial-Filter, IgnoreOff(serial) entfernt eine serial-Ausnahme; Die genannten Regeln bleiben erhalten. ClearIgnoreList() ohne Argumente löscht beide Ansichten.
- Der Status gehört zum allgemeinen Status der Client-Profilskripte. Die Änderung wirkt sich auf andere Skripte mit diesem Status aus. Die Einstellungen sind im gespeicherten Snapshot enthalten. Nach der Änderung der Regeln kann ein anderes Skript bereits eine Suche mit dem zuvor erstellten Snapshot durchführen – bei der nächsten Suche wird das Update angezeigt.
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.
Der Befehl steht in einer eigenen Anweisung. Die Meldung davor zeigt den Beginn des Aufrufs und bestätigt keine Serveraktion.
UO.AddIgnoreList("simple_skip", 0x0EED);
UO.Print("Calling UO.DeleteIgnoreList");
UO.DeleteIgnoreList("simple_skip");Parameter und Ablauf:
- Nur vorübergehend wird gelöscht. Andere Listen und Ignore(serial) bleiben erhalten.
UO.AddIgnoreList("temporary", 0x0EED);
UO.SelectIgnoreList("temporary");
UO.DeleteIgnoreList("temporary");
var gold = UO.FindType(0x0EED, -1, "ground");Parameter und Ablauf:
- Beide Robenregeln wurden entfernt, aber die Goldregel bleibt bestehen. Die allgemeine Regel -1,type-any eines anderen Typs wird, wenn sie hinzugefügt wird, selbst nicht entfernt.
return RunScenario();
object? RunScenario()
{
UO.AddIgnoreList("sort", 0x1F03, 0);
UO.AddIgnoreList("sort", 0x1F03, 0x0044);
UO.AddIgnoreList("sort", 0x0EED);
UO.DeleteIgnoreList("sort", 0x1F03);
UO.SelectIgnoreList("sort");
return null;
}Parameter und Ablauf:
- 68 = 0x0044: Die Zahlenformen sind gleich. Ungefärbte Roben bleiben ausgeschlossen. Gibt es auch für dieses type eine Regel mit hue=-1, wird die Farbe 68 weiterhin ausgeschlossen.
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()
{
UO.AddIgnoreList("robes", 0x1F03, 0);
UO.AddIgnoreList("robes", 0x1F03, 0x0044);
UO.DeleteIgnoreList("robes", "0x1F03", 68);
UO.SelectIgnoreList("robes");
var robe = UO.FindType(0x1F03, 0x0044, "backpack");
return null;
}
}C# unterscheidet Groß- und Kleinschreibung. Verwenden Sie den genauen UO-Namen. Numerische Flags mit 0 vergleichen; bool nur bei Rückgabetyp bool verwenden.
Parameter: list (Any)
Ergebnis: void / Unit.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.State.NamedIgnoreLists.Remove:state.IgnoreTypeLists.Remove(Text(0), arguments.Length > 1 ? ResolveType(arguments[1]) : (int?)null, arguments.Length > 2 ? NumberConversions.ToInt(arguments[2]) : (int?)null). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Text:Text(0). -
InjectionScript.Runtime.InjectionApiUO.ResolveType:ResolveType(arguments[1]). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(arguments[2]).
Interner Implementierungscode; kein eigenständiges Skript.
case "deleteignorelist":
state.IgnoreTypeLists.Remove(Text(0), arguments.Length > 1 ? ResolveType(arguments[1]) : (int?)null,
arguments.Length > 2 ? NumberConversions.ToInt(arguments[2]) : (int?)null);
break;Parameter: list (Any), type (Any)
Ergebnis: void / Unit.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.State.NamedIgnoreLists.Remove:state.IgnoreTypeLists.Remove(Text(0), arguments.Length > 1 ? ResolveType(arguments[1]) : (int?)null, arguments.Length > 2 ? NumberConversions.ToInt(arguments[2]) : (int?)null). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Text:Text(0). -
InjectionScript.Runtime.InjectionApiUO.ResolveType:ResolveType(arguments[1]). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(arguments[2]).
Interner Implementierungscode; kein eigenständiges Skript.
case "deleteignorelist":
state.IgnoreTypeLists.Remove(Text(0), arguments.Length > 1 ? ResolveType(arguments[1]) : (int?)null,
arguments.Length > 2 ? NumberConversions.ToInt(arguments[2]) : (int?)null);
break;Parameter: list (Any), type (Any), color (Any)
Ergebnis: void / Unit.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.State.NamedIgnoreLists.Remove:state.IgnoreTypeLists.Remove(Text(0), arguments.Length > 1 ? ResolveType(arguments[1]) : (int?)null, arguments.Length > 2 ? NumberConversions.ToInt(arguments[2]) : (int?)null). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Text:Text(0). -
InjectionScript.Runtime.InjectionApiUO.ResolveType:ResolveType(arguments[1]). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(arguments[2]).
Interner Implementierungscode; kein eigenständiges Skript.
case "deleteignorelist":
state.IgnoreTypeLists.Remove(Text(0), arguments.Length > 1 ? ResolveType(arguments[1]) : (int?)null,
arguments.Length > 2 ? NumberConversions.ToInt(arguments[2]) : (int?)null);
break;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
int UO.FindAnyType(object? distance, object? @type);
int UO.FindAnyType(object? distance, object? @type, object? type2);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15, object? type16);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15, object? type16, object? type17);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15, object? type16, object? type17, object? type18);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15, object? type16, object? type17, object? type18, object? type19);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15, object? type16, object? type17, object? type18, object? type19, object? type20);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15, object? type16, object? type17, object? type18, object? type19, object? type20, object? type21);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15, object? type16, object? type17, object? type18, object? type19, object? type20, object? type21, object? type22);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15, object? type16, object? type17, object? type18, object? type19, object? type20, object? type21, object? type22, object? type23);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15, object? type16, object? type17, object? type18, object? type19, object? type20, object? type21, object? type22, object? type23, object? type24);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15, object? type16, object? type17, object? type18, object? type19, object? type20, object? type21, object? type22, object? type23, object? type24, object? type25);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15, object? type16, object? type17, object? type18, object? type19, object? type20, object? type21, object? type22, object? type23, object? type24, object? type25, object? type26);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15, object? type16, object? type17, object? type18, object? type19, object? type20, object? type21, object? type22, object? type23, object? type24, object? type25, object? type26, object? type27);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15, object? type16, object? type17, object? type18, object? type19, object? type20, object? type21, object? type22, object? type23, object? type24, object? type25, object? type26, object? type27, object? type28);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15, object? type16, object? type17, object? type18, object? type19, object? type20, object? type21, object? type22, object? type23, object? type24, object? type25, object? type26, object? type27, object? type28, object? type29);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15, object? type16, object? type17, object? type18, object? type19, object? type20, object? type21, object? type22, object? type23, object? type24, object? type25, object? type26, object? type27, object? type28, object? type29, object? type30);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15, object? type16, object? type17, object? type18, object? type19, object? type20, object? type21, object? type22, object? type23, object? type24, object? type25, object? type26, object? type27, object? type28, object? type29, object? type30, object? type31);Findet den am nächsten geladenen mobile mit einem der angegebenen graphic-Körper. Wird verwendet, um nach einer bestimmten Art von Kreatur zu suchen. Dieses Team sucht nicht nach Gegenständen in der Truhe oder auf dem Boden: Sie benötigen FindType/FindList.
-
distance– Horizontaler Radius in Zellen einschließlich: 5 ermöglicht den Abstand 0..5. Der Abstand beträgt max(abs(dx),abs(dy)), daher ist die angrenzende Diagonale ebenfalls 1. Standardmäßig oder wenn die Zahl negativ ist, wird UO.FindDistance() anstelle einer unbegrenzten Suche verwendet. 0 verlässt dieselbe X/Y-Zelle. Nicht die Länge der Strecke; Hindernisse und Böden werden von diesem Parameter nicht überprüft. -
type– Grafik des mobile-Körpers, nicht des serial- und nicht des graphic-Objekts. Zahl 0..65534 oder Hexadezimalzeichenfolge, zum Beispiel 0x003B. Mehrere Werte werden als OR kombiniert: die Zahl 5, die Zeichenfolge „5|6“ oder ein flaches Array aus Zahlen/numerischen Zeichenfolgen. Sie können flache Arrays und einzelne Argumente mischen. Die Reihenfolge der Werte legt keine Priorität fest. Nicht numerische Token sind ausgeschlossen; Eine völlig fehlerhafte Maske findet nichts. Verschachtelte Arrays sind keine Zahlen und werden als ungültige Elemente ignoriert; Mehrdimensionale Masken werden nicht unterstützt. -
type2– Optionale zusätzliche Maske type; gleiche Formen wie type. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
type3– Optionale zusätzliche Maske type; gleiche Formen wie type. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
type4– Optionale zusätzliche Maske type; gleiche Formen wie type. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
type5– Optionale zusätzliche Maske type; gleiche Formen wie type. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
type6– Optionale zusätzliche Maske type; gleiche Formen wie type. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
type7– Optionale zusätzliche Maske type; gleiche Formen wie type. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
type8– Optionale zusätzliche Maske type; gleiche Formen wie type. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
type9– Optionale zusätzliche Maske type; gleiche Formen wie type. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
type10– Optionale zusätzliche Maske type; gleiche Formen wie type. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
type11– Optionale zusätzliche Maske type; gleiche Formen wie type. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
type12– Optionale zusätzliche Maske type; gleiche Formen wie type. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
type13– Optionale zusätzliche Maske type; gleiche Formen wie type. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
type14– Optionale zusätzliche Maske type; gleiche Formen wie type. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
type15– Optionale zusätzliche Maske type; gleiche Formen wie type. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
type16– Optionale zusätzliche Maske type; gleiche Formen wie type. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
type17– Optionale zusätzliche Maske type; gleiche Formen wie type. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
type18– Optionale zusätzliche Maske type; gleiche Formen wie type. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
type19– Optionale zusätzliche Maske type; gleiche Formen wie type. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
type20– Optionale zusätzliche Maske type; gleiche Formen wie type. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
type21– Optionale zusätzliche Maske type; gleiche Formen wie type. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
type22– Optionale zusätzliche Maske type; gleiche Formen wie type. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
type23– Optionale zusätzliche Maske type; gleiche Formen wie type. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
type24– Optionale zusätzliche Maske type; gleiche Formen wie type. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
type25– Optionale zusätzliche Maske type; gleiche Formen wie type. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
type26– Optionale zusätzliche Maske type; gleiche Formen wie type. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
type27– Optionale zusätzliche Maske type; gleiche Formen wie type. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
type28– Optionale zusätzliche Maske type; gleiche Formen wie type. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
type29– Optionale zusätzliche Maske type; gleiche Formen wie type. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
type30– Optionale zusätzliche Maske type; gleiche Formen wie type. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
type31– Optionale zusätzliche Maske type; gleiche Formen wie type. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest.
int - serial des ausgewählten mobile oder 0, wenn es kein passendes gibt. Dies ist ID, nicht graphic/type, die Anzahl der gefundenen Objekte oder true/false: verwenden Sie if (found != 0) { ... }, not found == true. Ein gefundenes ID kann an UO.AddObject, UO.Attack oder UO.Follow übergeben werden, allerdings wird jede Spielaktion separat aufgerufen.
- Die Suche liest nur Mobiltelefone, die bereits vom Client heruntergeladen wurden; Vernichtete Datensätze und Ignore sind ausgeschlossen. Der Aufruf selbst öffnet kein Ziel, greift nicht an, geht nicht zum Ziel und fordert keine Remote-Objekte vom Server an.
- Die Entfernung ist geometrisch max(abs(dx),abs(dy)), nicht die Routenlänge. Die Nähe garantiert nicht das Fehlen einer Wand oder die Zugänglichkeit einer anderen Etage. Der Zustand kann sich bei der Rückgabe ändern.
- Leben, Tarnung und Sichtlinie werden nicht automatisch überprüft. Wenn sie wichtig sind, verwenden Sie GetMobiles mit aliveOnly/visibleOnly oder Ihre eigenen Schecks. Wenn ein Server den Status „Feind“ hat, ist kein NPC berechtigt.
- Ändert FindItem, FindCount oder GetFoundItems nicht. Diese Felder können die Ergebnisse eines vorherigen anderen Befehls enthalten: Verwenden Sie das zurückgegebene ID direkt.
- Von 2 bis 32 Argumente: Distanz und bis 31 Maske type. Mit einem flachen Array können Sie mehr Werte übergeben. Jeder nachfolgende Wert nach type ist immer noch body/type, nicht hue oder Bekanntheit.
- Für diesen Befehl gibt es keinen Z-, Bekanntheits-, Spielerrassen- oder Kleidungsklassenfilter. Self ist NICHT ausgeschlossen: Wenn Ihr eigenes graphic in der Maske enthalten ist und self nicht in Ignore ist, können Sie Ihr serial in einer Entfernung von 0 erhalten.
- Wählt den nächstgelegenen aus; Gleicher Abstand ist durch kleinere serial zulässig. -1/any/0xFFFF/empty mask ohne konkrete Typen ergibt 0: Der Befehl erfordert mindestens ein explizites type. Nahezu spezifische type-Platzhalter werden ignoriert.
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.
var result = UO.FindAnyType(10, 0x003B);
UO.Print("FindAnyType: " + Convert.ToString(result));Parameter und Ablauf:
- 0x003B - body, nicht ID. Rückkehrkreatur – ID des spezifischen gefundenen mobile. Das Team prüft nicht Z, Gesundheit oder Aggressivität.
var creature = UO.FindAnyType(10, 0x003B);
if (Truth(creature != 0))
{
UO.AddObject("creature", creature);
UO.Print("Distance: " + Convert.ToString(UO.GetDistance(creature)));
}
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:
- Körper und separate 0x000C werden kombiniert. Wenn „self“ gefunden wird, wird in diesem Beispiel die Aktion einfach übersprungen. Er sucht nicht nach dem nächsten Kandidaten. Um self in der Anfrage selbst auszuschließen, verwenden Sie den entsprechenden Filter GetMobiles.
return RunScenario();
object? RunScenario()
{
dynamic[] bodies = new dynamic[checked((int)(0) + 1)];
bodies[0] = 0x003B;
var creature = UO.FindAnyType(18, bodies, 0x000C);
if (Truth(creature != 0) && Truth(creature != Asc(UO.GetSerial("self"), 0)))
{
UO.AddObject("observed_creature", creature);
}
return null;
}
int Asc(object? value, int fallback = 0)
{
string text = Convert.ToString(value) ?? "";
if (text.StartsWith("0x", StringComparison.OrdinalIgnoreCase))
return int.TryParse(text[2..], System.Globalization.NumberStyles.HexNumber, System.Globalization.CultureInfo.InvariantCulture, out int hex) ? hex : fallback;
return int.TryParse(text, out int number) ? number : fallback;
}
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:
- body - graphic, Radius - Suchgrenze X/Y. Der Helfer gibt die Entfernung oder seinen eigenen Code zurück -1; UO.FindAnyType selbst gibt serial oder 0 zurück.
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()
{
var distance = DistanceToBody(0x003B, 8);
if (Truth(distance >= 0) && Truth(distance <= 3))
{
UO.Print("Creature is within three cells");
}
return null;
}
dynamic DistanceToBody(dynamic body, dynamic radius)
{
var found = UO.FindAnyType(radius, body);
if (Truth(found == 0))
{
return -1;
}
return UO.GetDistance(found);
}
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: distance (Any), type (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))Parameter: distance (Any), type (Any), type2 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))Parameter: distance (Any), type (Any), type2 (Any), type3 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))Parameter: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5) — UO.FindAnyType(Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15, type16) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any), type16 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15, type16, type17) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any), type16 (Any), type17 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15, type16, type17, type18) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any), type16 (Any), type17 (Any), type18 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15, type16, type17, type18, type19) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any), type16 (Any), type17 (Any), type18 (Any), type19 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15, type16, type17, type18, type19, type20) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any), type16 (Any), type17 (Any), type18 (Any), type19 (Any), type20 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15, type16, type17, type18, type19, type20, type21) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any), type16 (Any), type17 (Any), type18 (Any), type19 (Any), type20 (Any), type21 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15, type16, type17, type18, type19, type20, type21, type22) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any), type16 (Any), type17 (Any), type18 (Any), type19 (Any), type20 (Any), type21 (Any), type22 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15, type16, type17, type18, type19, type20, type21, type22, type23) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any), type16 (Any), type17 (Any), type18 (Any), type19 (Any), type20 (Any), type21 (Any), type22 (Any), type23 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15, type16, type17, type18, type19, type20, type21, type22, type23, type24) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any), type16 (Any), type17 (Any), type18 (Any), type19 (Any), type20 (Any), type21 (Any), type22 (Any), type23 (Any), type24 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15, type16, type17, type18, type19, type20, type21, type22, type23, type24, type25) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any), type16 (Any), type17 (Any), type18 (Any), type19 (Any), type20 (Any), type21 (Any), type22 (Any), type23 (Any), type24 (Any), type25 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15, type16, type17, type18, type19, type20, type21, type22, type23, type24, type25, type26) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any), type16 (Any), type17 (Any), type18 (Any), type19 (Any), type20 (Any), type21 (Any), type22 (Any), type23 (Any), type24 (Any), type25 (Any), type26 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15, type16, type17, type18, type19, type20, type21, type22, type23, type24, type25, type26, type27) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any), type16 (Any), type17 (Any), type18 (Any), type19 (Any), type20 (Any), type21 (Any), type22 (Any), type23 (Any), type24 (Any), type25 (Any), type26 (Any), type27 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15, type16, type17, type18, type19, type20, type21, type22, type23, type24, type25, type26, type27, type28) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any), type16 (Any), type17 (Any), type18 (Any), type19 (Any), type20 (Any), type21 (Any), type22 (Any), type23 (Any), type24 (Any), type25 (Any), type26 (Any), type27 (Any), type28 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15, type16, type17, type18, type19, type20, type21, type22, type23, type24, type25, type26, type27, type28, type29) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any), type16 (Any), type17 (Any), type18 (Any), type19 (Any), type20 (Any), type21 (Any), type22 (Any), type23 (Any), type24 (Any), type25 (Any), type26 (Any), type27 (Any), type28 (Any), type29 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15, type16, type17, type18, type19, type20, type21, type22, type23, type24, type25, type26, type27, type28, type29, type30) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any), type16 (Any), type17 (Any), type18 (Any), type19 (Any), type20 (Any), type21 (Any), type22 (Any), type23 (Any), type24 (Any), type25 (Any), type26 (Any), type27 (Any), type28 (Any), type29 (Any), type30 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15, type16, type17, type18, type19, type20, type21, type22, type23, type24, type25, type26, type27, type28, type29, type30, type31) — UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any), type16 (Any), type17 (Any), type18 (Any), type19 (Any), type20 (Any), type21 (Any), type22 (Any), type23 (Any), type24 (Any), type25 (Any), type26 (Any), type27 (Any), type28 (Any), type29 (Any), type30 (Any), type31 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
int UO.FindAtCoord(object? x, object? y);Sucht nach geladenen Weltobjekten auf einer exakten X/Y-Kachel der aktuellen Karte.
-
x– horizontale Weltkoordinate, int 0..65535. Obligatorisch; Dies sind keine Containerfensterpixel. -
yist die vertikale Weltkoordinate, int 0..65535. Erforderlich. Es gibt keine zusätzlichen Optionen für Z, Karte, type oder Radius.
int - serial das erste passende Element in der Ergebnisliste dieses Kunden. 0: keine Übereinstimmungen, Zeichen fehlen/gelöscht oder Koordinaten außerhalb von 0..65535. Dies ist der ID des Objekts, nicht der type, die Menge oder der bool. Alle 32-Bits werden gespeichert; check != 0, nicht == true und nicht > 0. Das gleiche ID wird in FindItem() geschrieben.
- Überprüft nicht gelöschte Gegenstände am Boden und auf Mobilgeräten, einschließlich des Charakters selbst in dieser Zelle. Der Inhalt von Behältern und getragenen Gegenständen ist ausgeschlossen: Ihre X/Y können nicht als Weltkoordinaten betrachtet werden. Serien sind aus der Liste Ignore ausgeschlossen.
- Alle Z-Höhen bei gegebenem X/Y sind geeignet. FindDistance und FindVertical beschränken diese Suche nicht auf die genaue Zelle. Es sind nur geladene Objekte der aktuellen Welt sichtbar; Landschafts-, statische und andere Karten werden nicht geladen. Pakete werden nicht gesendet, Ziel wird nicht geöffnet, Elemente werden nicht verschoben.
- Jeder Aufruf löscht zunächst die vorherige Suche. FindCount() zählt Objekte, FindFullQuantity() summiert Einheiten in Stapeln (Mobile fügt eine hinzu), GetFoundItems() gibt die gefundenen zurück serial. Zuerst wird nach dem Artikel gesucht, dann nach dem Mobilgerät. Innerhalb von Sammlungen gilt die aktuelle Aufzählungsreihenfolge. Speichern Sie die Liste für die nächste Suche, die die Ergebnisse ersetzt.
- Die Auswahlreihenfolge und Filter oben beschreiben die Implementierung dieses Clients.
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.
var result = UO.FindAtCoord(1445, 1690);
UO.Print("FindAtCoord: " + Convert.ToString(result));Parameter und Ablauf:
- 1445 und 1690 sind Beispiele für die X/Y der Welt: Ersetzen Sie sie durch Ihre Zelle. id speichert ein serial; HEX gibt es hexadezimal aus. != 0 prüft, ob ein Ergebnis vorhanden ist, nicht die Menge.
var id = UO.FindAtCoord(1445, 1690);
if (Truth(id != 0))
{
UO.Print(Hex(id));
}
else
{
UO.Print("No loaded object");
}
string Hex(object? value) => Convert.ToInt64(value).ToString("X");
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:
- x/y werden aus dem Zeichen gelesen; ids speichert die Liste der aktuellen Suchen. Jede ID repräsentiert ein Objekt, einschließlich des gesamten Stapels. GetType(id) liest graphic/body. Elemente werden nicht ausgewählt oder verwendet.
return RunScenario();
object? RunScenario()
{
var x = UO.GetX("self");
var y = UO.GetY("self");
UO.FindAtCoord(x, y);
var ids = UO.GetFoundItems();
foreach (var id in ids)
{
UO.Print(Hex(id) + " type=" + Hex(UO.GetType(id)));
}
return null;
}
string Hex(object? value) => Convert.ToInt64(value).ToString("X");Parameter und Ablauf:
- CountGraphicAt(x, y, graphic) sucht einmal nach einer Zelle, iteriert durch die gespeicherten ID und zählt Objekte mit den gewünschten Grafiken. graphic=0x0EED – Gold. Es wird die Anzahl der Objekte/Stapel zurückgegeben, nicht die Summe der Einsen und nicht true/false; Ein Stapel ergibt einen. Die Funktion ist nach Main vollständig definiert.
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()
{
var count = CountGraphicAt(1445, 1690, 0x0EED);
UO.Print("Objects/stacks: " + Convert.ToString(count));
return null;
}
dynamic CountGraphicAt(dynamic x, dynamic y, dynamic graphic)
{
UO.FindAtCoord(x, y);
var ids = UO.GetFoundItems();
var count = 0;
foreach (var id in ids)
{
if (Truth(UO.GetType(id) == graphic))
{
count += 1;
}
}
return count;
}
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: x (Any), y (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.FindAtCoord:bridge.FindAtCoord(Arg(0), Arg(1)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0).
Interner Implementierungscode; kein eigenständiges Skript.
case "findatcoord": return new InjectionValue(bridge.FindAtCoord(Arg(0), Arg(1)));Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
int UO.FindByNotoriety(object? distance, object? notoriety);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15, object? notoriety16);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15, object? notoriety16, object? notoriety17);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15, object? notoriety16, object? notoriety17, object? notoriety18);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15, object? notoriety16, object? notoriety17, object? notoriety18, object? notoriety19);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15, object? notoriety16, object? notoriety17, object? notoriety18, object? notoriety19, object? notoriety20);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15, object? notoriety16, object? notoriety17, object? notoriety18, object? notoriety19, object? notoriety20, object? notoriety21);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15, object? notoriety16, object? notoriety17, object? notoriety18, object? notoriety19, object? notoriety20, object? notoriety21, object? notoriety22);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15, object? notoriety16, object? notoriety17, object? notoriety18, object? notoriety19, object? notoriety20, object? notoriety21, object? notoriety22, object? notoriety23);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15, object? notoriety16, object? notoriety17, object? notoriety18, object? notoriety19, object? notoriety20, object? notoriety21, object? notoriety22, object? notoriety23, object? notoriety24);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15, object? notoriety16, object? notoriety17, object? notoriety18, object? notoriety19, object? notoriety20, object? notoriety21, object? notoriety22, object? notoriety23, object? notoriety24, object? notoriety25);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15, object? notoriety16, object? notoriety17, object? notoriety18, object? notoriety19, object? notoriety20, object? notoriety21, object? notoriety22, object? notoriety23, object? notoriety24, object? notoriety25, object? notoriety26);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15, object? notoriety16, object? notoriety17, object? notoriety18, object? notoriety19, object? notoriety20, object? notoriety21, object? notoriety22, object? notoriety23, object? notoriety24, object? notoriety25, object? notoriety26, object? notoriety27);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15, object? notoriety16, object? notoriety17, object? notoriety18, object? notoriety19, object? notoriety20, object? notoriety21, object? notoriety22, object? notoriety23, object? notoriety24, object? notoriety25, object? notoriety26, object? notoriety27, object? notoriety28);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15, object? notoriety16, object? notoriety17, object? notoriety18, object? notoriety19, object? notoriety20, object? notoriety21, object? notoriety22, object? notoriety23, object? notoriety24, object? notoriety25, object? notoriety26, object? notoriety27, object? notoriety28, object? notoriety29);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15, object? notoriety16, object? notoriety17, object? notoriety18, object? notoriety19, object? notoriety20, object? notoriety21, object? notoriety22, object? notoriety23, object? notoriety24, object? notoriety25, object? notoriety26, object? notoriety27, object? notoriety28, object? notoriety29, object? notoriety30);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15, object? notoriety16, object? notoriety17, object? notoriety18, object? notoriety19, object? notoriety20, object? notoriety21, object? notoriety22, object? notoriety23, object? notoriety24, object? notoriety25, object? notoriety26, object? notoriety27, object? notoriety28, object? notoriety29, object? notoriety30, object? notoriety31);Findet den nächstgelegenen anderen Charakter/NPC mit einem der angegebenen Bekanntheitsstatus. Nützlich, wenn Sie zunächst einen Feind, Verbündeten oder ein beobachtetes Ziel auswählen und erst dann separat entscheiden müssen, ob Sie es angreifen oder ihm folgen möchten.
-
distance– Horizontaler Radius in Zellen einschließlich: 5 ermöglicht den Abstand 0..5. Der Abstand beträgt max(abs(dx),abs(dy)), daher ist die angrenzende Diagonale ebenfalls 1. Standardmäßig oder wenn die Zahl negativ ist, wird UO.FindDistance() anstelle einer unbegrenzten Suche verwendet. 0 verlässt dieselbe X/Y-Zelle. Nicht die Länge der Strecke; Hindernisse und Böden werden von diesem Parameter nicht überprüft. -
notoriety– Beziehungsstatus zum vom Server empfangenen Charakter: 0 – unbekannt, 1 – unschuldig, 2 – Verbündeter, 3 – grau, 4 – kriminell, 5 – Feind, 6 – Mörder, 7 – Unverwundbar. Die Zahl bedeutet einen Status; „5|6“ oder eine Reihe von Zahlen – eine der oben genannten. Es liegt nicht an der Farbe der Kleidung oder der Klasse. Eine negative Zahl (normalerweise -1), 0xFFFF, „beliebig“, eine leere Zeichenfolge oder ein leeres Array deaktiviert diesen Filter separat. Eine ungültige Zeichenfolge ohne gültige Zahlen findet niemanden. Die Reihenfolge der Status legt keine Priorität fest. Der 5-Filter wählt den Feind aus, anstatt automatisch ein beliebiges NPC/Monster auszuwählen. Die tatsächlichen Werte hängen vom Server ab. Mehrere Werte werden als OR kombiniert: die Zahl 5, die Zeichenfolge „5|6“ oder ein flaches Array aus Zahlen/numerischen Zeichenfolgen. Sie können flache Arrays und einzelne Argumente mischen. Die Reihenfolge der Werte legt keine Priorität fest. Nicht numerische Token sind ausgeschlossen; Eine völlig fehlerhafte Maske findet nichts. Verschachtelte Arrays sind keine Zahlen und werden als ungültige Elemente ignoriert; Mehrdimensionale Masken werden nicht unterstützt. -
notoriety2– Optionale zusätzliche Bekanntheitsmaske; die gleichen Formen wie Bekanntheit. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
notoriety3– Optionale zusätzliche Bekanntheitsmaske; die gleichen Formen wie Bekanntheit. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
notoriety4– Optionale zusätzliche Bekanntheitsmaske; die gleichen Formen wie Bekanntheit. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
notoriety5– Optionale zusätzliche Bekanntheitsmaske; die gleichen Formen wie Bekanntheit. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
notoriety6– Optionale zusätzliche Bekanntheitsmaske; die gleichen Formen wie Bekanntheit. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
notoriety7– Optionale zusätzliche Bekanntheitsmaske; die gleichen Formen wie Bekanntheit. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
notoriety8– Optionale zusätzliche Bekanntheitsmaske; die gleichen Formen wie Bekanntheit. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
notoriety9– Optionale zusätzliche Bekanntheitsmaske; die gleichen Formen wie Bekanntheit. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
notoriety10– Optionale zusätzliche Bekanntheitsmaske; die gleichen Formen wie Bekanntheit. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
notoriety11– Optionale zusätzliche Bekanntheitsmaske; die gleichen Formen wie Bekanntheit. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
notoriety12– Optionale zusätzliche Bekanntheitsmaske; die gleichen Formen wie Bekanntheit. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
notoriety13– Optionale zusätzliche Bekanntheitsmaske; die gleichen Formen wie Bekanntheit. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
notoriety14– Optionale zusätzliche Bekanntheitsmaske; die gleichen Formen wie Bekanntheit. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
notoriety15– Optionale zusätzliche Bekanntheitsmaske; die gleichen Formen wie Bekanntheit. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
notoriety16– Optionale zusätzliche Bekanntheitsmaske; die gleichen Formen wie Bekanntheit. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
notoriety17– Optionale zusätzliche Bekanntheitsmaske; die gleichen Formen wie Bekanntheit. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
notoriety18– Optionale zusätzliche Bekanntheitsmaske; die gleichen Formen wie Bekanntheit. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
notoriety19– Optionale zusätzliche Bekanntheitsmaske; die gleichen Formen wie Bekanntheit. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
notoriety20– Optionale zusätzliche Bekanntheitsmaske; die gleichen Formen wie Bekanntheit. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
notoriety21– Optionale zusätzliche Bekanntheitsmaske; die gleichen Formen wie Bekanntheit. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
notoriety22– Optionale zusätzliche Bekanntheitsmaske; die gleichen Formen wie Bekanntheit. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
notoriety23– Optionale zusätzliche Bekanntheitsmaske; die gleichen Formen wie Bekanntheit. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
notoriety24– Optionale zusätzliche Bekanntheitsmaske; die gleichen Formen wie Bekanntheit. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
notoriety25– Optionale zusätzliche Bekanntheitsmaske; die gleichen Formen wie Bekanntheit. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
notoriety26– Optionale zusätzliche Bekanntheitsmaske; die gleichen Formen wie Bekanntheit. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
notoriety27– Optionale zusätzliche Bekanntheitsmaske; die gleichen Formen wie Bekanntheit. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
notoriety28– Optionale zusätzliche Bekanntheitsmaske; die gleichen Formen wie Bekanntheit. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
notoriety29– Optionale zusätzliche Bekanntheitsmaske; die gleichen Formen wie Bekanntheit. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
notoriety30– Optionale zusätzliche Bekanntheitsmaske; die gleichen Formen wie Bekanntheit. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest. -
notoriety31– Optionale zusätzliche Bekanntheitsmaske; die gleichen Formen wie Bekanntheit. Kombiniert mit vorherigen über OR, legt keinen separaten Radius, hue, Z oder Priorität fest.
int - serial des ausgewählten mobile oder 0, wenn es kein passendes gibt. Dies ist ID, nicht graphic/type, die Anzahl der gefundenen Objekte oder true/false: verwenden Sie if (found != 0) { ... }, not found == true. Ein gefundenes ID kann an UO.AddObject, UO.Attack oder UO.Follow übergeben werden, allerdings wird jede Spielaktion separat aufgerufen.
- Die Suche liest nur Mobiltelefone, die bereits vom Client heruntergeladen wurden; Vernichtete Datensätze und Ignore sind ausgeschlossen. Der Aufruf selbst öffnet kein Ziel, greift nicht an, geht nicht zum Ziel und fordert keine Remote-Objekte vom Server an.
- Die Entfernung ist geometrisch max(abs(dx),abs(dy)), nicht die Routenlänge. Die Nähe garantiert nicht das Fehlen einer Wand oder die Zugänglichkeit einer anderen Etage. Der Zustand kann sich bei der Rückgabe ändern.
- Leben, Tarnung und Sichtlinie werden nicht automatisch überprüft. Wenn sie wichtig sind, verwenden Sie GetMobiles mit aliveOnly/visibleOnly oder Ihre eigenen Schecks. Wenn ein Server den Status „Feind“ hat, ist kein NPC berechtigt.
- Ändert FindItem, FindCount oder GetFoundItems nicht. Diese Felder können die Ergebnisse eines vorherigen anderen Befehls enthalten: Verwenden Sie das zurückgegebene ID direkt.
- Mindestens zwei Argumente: Distanz, Bekanntheit. Maximal 32: Radius und bis zu 31 Maske. Für weitere Werte übergeben Sie das flache Array als ein Argument. Filter entfernen: -1/any/0xFFFF/empty string oder empty array separat. Wenn bestimmte Codes nebeneinander aufgeführt sind, bleibt die Einschränkung bestehen.
- Ausgenommen self. Entspricht UO.FindVertical() als Grenze der Differenz Z; In diesem Befehl gibt es keinen Parameter maxZ. Wählt immer den nächstgelegenen, bei Gleichheit den kleineren serial. Das Argument nach Bekanntheit ist immer noch Bekanntheit, nicht am nächsten und nicht body.
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.
var result = UO.FindByNotoriety(12, "5|6");
UO.Print("FindByNotoriety: " + Convert.ToString(result));Parameter und Ablauf:
- Der gespeicherte Gegner kann später verwendet werden; Dieses Beispiel greift nicht an. Der aktuelle FindVertical gilt auch dann, wenn sich das Ziel in X/Y nahe befindet.
var found = UO.FindByNotoriety(12, "5|6");
if (Truth(found != 0))
{
UO.AddObject("opponent", found);
UO.Print("Selected: " + UO.GetName(found));
}
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:
- erlaubt enthält Feind, ein separates 6 fügt Mörder hinzu. Status werden kombiniert und nicht nach Priorität sortiert. Das Beispiel fordert einen Angriff auf einen lebend aufgefundenen mobile; Serverregeln bestimmen, was akzeptabel ist.
return RunScenario();
object? RunScenario()
{
dynamic[] allowed = new dynamic[checked((int)(0) + 1)];
allowed[0] = 5;
var found = UO.FindByNotoriety(8, allowed, 6);
if (Truth(found != 0) && !(Truth(UO.IsDead(found))))
{
UO.Attack(found);
}
return null;
}
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:
- Radius – X/Y-Radius in Zellen. FindVertical(0) erfordert das gleiche Z; Dies ist keine Boden- oder Wandinspektion. Die Funktion gibt ID/0 zurück und speichert schließlich die Einstellungen für andere Teile des Skripts.
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()
{
var found = FindOpponentAtSameLevel(10);
if (Truth(found != 0))
{
UO.AddObject("same_level", found);
}
return null;
}
dynamic FindOpponentAtSameLevel(dynamic radius)
{
var previous = UO.FindVertical();
try
{
UO.FindVertical(0);
return UO.FindByNotoriety(radius, "5|6");
}
finally
{
UO.FindVertical(previous);
}
}
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: distance (Any), notoriety (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))Parameter: distance (Any), notoriety (Any), notoriety2 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3) — UO.FindByNotoriety(Any,Any,Any,Any)
Parameter: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4) — UO.FindByNotoriety(Any,Any,Any,Any,Any)
Parameter: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15, notoriety16) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any), notoriety16 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15, notoriety16, notoriety17) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any), notoriety16 (Any), notoriety17 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15, notoriety16, notoriety17, notoriety18) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any), notoriety16 (Any), notoriety17 (Any), notoriety18 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15, notoriety16, notoriety17, notoriety18, notoriety19) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any), notoriety16 (Any), notoriety17 (Any), notoriety18 (Any), notoriety19 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15, notoriety16, notoriety17, notoriety18, notoriety19, notoriety20) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any), notoriety16 (Any), notoriety17 (Any), notoriety18 (Any), notoriety19 (Any), notoriety20 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15, notoriety16, notoriety17, notoriety18, notoriety19, notoriety20, notoriety21) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any), notoriety16 (Any), notoriety17 (Any), notoriety18 (Any), notoriety19 (Any), notoriety20 (Any), notoriety21 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15, notoriety16, notoriety17, notoriety18, notoriety19, notoriety20, notoriety21, notoriety22) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any), notoriety16 (Any), notoriety17 (Any), notoriety18 (Any), notoriety19 (Any), notoriety20 (Any), notoriety21 (Any), notoriety22 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15, notoriety16, notoriety17, notoriety18, notoriety19, notoriety20, notoriety21, notoriety22, notoriety23) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any), notoriety16 (Any), notoriety17 (Any), notoriety18 (Any), notoriety19 (Any), notoriety20 (Any), notoriety21 (Any), notoriety22 (Any), notoriety23 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15, notoriety16, notoriety17, notoriety18, notoriety19, notoriety20, notoriety21, notoriety22, notoriety23, notoriety24) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any), notoriety16 (Any), notoriety17 (Any), notoriety18 (Any), notoriety19 (Any), notoriety20 (Any), notoriety21 (Any), notoriety22 (Any), notoriety23 (Any), notoriety24 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15, notoriety16, notoriety17, notoriety18, notoriety19, notoriety20, notoriety21, notoriety22, notoriety23, notoriety24, notoriety25) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any), notoriety16 (Any), notoriety17 (Any), notoriety18 (Any), notoriety19 (Any), notoriety20 (Any), notoriety21 (Any), notoriety22 (Any), notoriety23 (Any), notoriety24 (Any), notoriety25 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15, notoriety16, notoriety17, notoriety18, notoriety19, notoriety20, notoriety21, notoriety22, notoriety23, notoriety24, notoriety25, notoriety26) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any), notoriety16 (Any), notoriety17 (Any), notoriety18 (Any), notoriety19 (Any), notoriety20 (Any), notoriety21 (Any), notoriety22 (Any), notoriety23 (Any), notoriety24 (Any), notoriety25 (Any), notoriety26 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15, notoriety16, notoriety17, notoriety18, notoriety19, notoriety20, notoriety21, notoriety22, notoriety23, notoriety24, notoriety25, notoriety26, notoriety27) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any), notoriety16 (Any), notoriety17 (Any), notoriety18 (Any), notoriety19 (Any), notoriety20 (Any), notoriety21 (Any), notoriety22 (Any), notoriety23 (Any), notoriety24 (Any), notoriety25 (Any), notoriety26 (Any), notoriety27 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15, notoriety16, notoriety17, notoriety18, notoriety19, notoriety20, notoriety21, notoriety22, notoriety23, notoriety24, notoriety25, notoriety26, notoriety27, notoriety28) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any), notoriety16 (Any), notoriety17 (Any), notoriety18 (Any), notoriety19 (Any), notoriety20 (Any), notoriety21 (Any), notoriety22 (Any), notoriety23 (Any), notoriety24 (Any), notoriety25 (Any), notoriety26 (Any), notoriety27 (Any), notoriety28 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15, notoriety16, notoriety17, notoriety18, notoriety19, notoriety20, notoriety21, notoriety22, notoriety23, notoriety24, notoriety25, notoriety26, notoriety27, notoriety28, notoriety29) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any), notoriety16 (Any), notoriety17 (Any), notoriety18 (Any), notoriety19 (Any), notoriety20 (Any), notoriety21 (Any), notoriety22 (Any), notoriety23 (Any), notoriety24 (Any), notoriety25 (Any), notoriety26 (Any), notoriety27 (Any), notoriety28 (Any), notoriety29 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15, notoriety16, notoriety17, notoriety18, notoriety19, notoriety20, notoriety21, notoriety22, notoriety23, notoriety24, notoriety25, notoriety26, notoriety27, notoriety28, notoriety29, notoriety30) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any), notoriety16 (Any), notoriety17 (Any), notoriety18 (Any), notoriety19 (Any), notoriety20 (Any), notoriety21 (Any), notoriety22 (Any), notoriety23 (Any), notoriety24 (Any), notoriety25 (Any), notoriety26 (Any), notoriety27 (Any), notoriety28 (Any), notoriety29 (Any), notoriety30 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15, notoriety16, notoriety17, notoriety18, notoriety19, notoriety20, notoriety21, notoriety22, notoriety23, notoriety24, notoriety25, notoriety26, notoriety27, notoriety28, notoriety29, notoriety30, notoriety31) — UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
Parameter: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any), notoriety16 (Any), notoriety17 (Any), notoriety18 (Any), notoriety19 (Any), notoriety20 (Any), notoriety21 (Any), notoriety22 (Any), notoriety23 (Any), notoriety24 (Any), notoriety25 (Any), notoriety26 (Any), notoriety27 (Any), notoriety28 (Any), notoriety29 (Any), notoriety30 (Any), notoriety31 (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
int UO.FindCount();
int UO.FindCount(object? id);Liest die Anzahl der Einsen im angegebenen Stapel, wenn ID übergeben wird. Die Form ohne Argumente behält eine eigene Bedeutung: die Anzahl der Objekte der letzten Suche.
-
id– Seriell/ID eines bestimmten Objekts: int, Dezimal-/Hex-Zeichenfolge oder Set-Alias self, backpack, lasttarget, lastobject oder Name AddObject. Dies ist nicht graphic/type. Optionales Argument. Wenn ID übergeben wird, wird der aktuelle Betrag dieses bestimmten Artikels gelesen. Der Finditem-Alias wählt explizit das erste Suchergebnis aus. Ohne Argument wird die Anzahl der gefundenen Objekte zurückgegeben.
int: FindCount(id) – Anzahl der Einheiten im angegebenen Stapel (Amount); Ein normales einzelnes Element ergibt 1, ein unbekanntes/entferntes Element, ein fehlerhafter Alias oder ein Mobilgerät ergibt 0. FindCount() ohne ID ist die Anzahl der Objekte in der letzten Suche: Ein Stapel wird unabhängig von der Menge als ein Objekt betrachtet. Zum Beispiel drei Stapel von 20, 50 und 100: FindCount()=3, FindCount(ID des zweiten Stapels)=50, FindFullQuantity()=170.
- FindCount(id) entspricht dem Lesen von GetQuantity(id), löst keine Suche aus und ändert FindItem/FindCount()/FindFullQuantity/GetFoundItems nicht.
- ID bedeutet serial eines bestimmten Artikels, nicht type. Die Mengenänderung wird beim nächsten Aufruf von FindCount(id) berücksichtigt. Die Menge im entfernten Artikel beträgt 0; Es wird nicht automatisch nach einem anderen Stapel gesucht.
- Die ursprüngliche Kompatibilität ohne Argumente bleibt erhalten: FindCount() zählt Objekte. FindQuantity() liest einen gefundenen Stapel, FindFullQuantity() summiert die Einheiten aus der letzten Suche.
- Die Daten gehören zur letzten normalen Suche dieses Skripts. FindType mit 1–5-Argumenten, FindTypeEx, Count/CountEx/CountGround ersetzen die Ergebnisse. Zum Ändern dieses Snapshots sind keine erweiterten gefilterten Zeichenbefehle erforderlich.
- Eine neue Suche ohne Übereinstimmungen löscht FindItem, FindCount und FindFullQuantity sowie GetFoundItems. Das alleinige Lesen eines Ergebnisses löst keine neue Suche aus.
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.
UO.FindType(0x0EED, -1, "backpack");
var result = UO.FindCount();
UO.Print("FindCount: " + Convert.ToString(result));Parameter und Ablauf:
- id=0x40001234 ist ein Beispiel für einen serial-Stack. Ersetzen Sie den ID des Artikels durch Ihren.
- Ein Stapel von 50-Einheiten gibt 50 zurück; Einzelstück - 1; unbekannt ID - 0.
var amount = UO.FindCount("0x40001234");
UO.Print("Units: " + Convert.ToString(amount));Parameter und Ablauf:
- FindType erhält type Gold 0x0EED, jedes hue=-1, Bereich backpack und gibt serial zurück.
- Das zurückgegebene serial-Element wird an FindCount übergeben. type 0x0EED selbst kann hier nicht übertragen werden.
return RunScenario();
object? RunScenario()
{
var item = UO.FindType(0x0EED, -1, "backpack");
if (Truth(item != ""))
{
var units = UO.FindCount(item);
UO.Print(Convert.ToString(units));
}
return null;
}
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:
- lasttarget muss auf ein Objekt hinweisen. AddObject speichert dieses serial unter dem Namen selected_stack.
- FindCount löst den Namen in ID auf und liest den Betrag. Wenn ein Zeichenziel ausgewählt ist, wird 0 zurückgegeben.
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()
{
var item = UO.GetSerial("lasttarget");
if (Truth(UO.Exists(item)))
{
UO.AddObject("selected_stack", item);
UO.Print(Convert.ToString(UO.FindCount("selected_stack")));
}
return null;
}
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:
- type=0x0EED – Gold; color=-1 – beliebig hue; backpack – nur der direkte Inhalt des Rucksacks in dieser Form FindType.
- int – Anzahl der gefundenen Elemente/Zeichen, 0 ohne Übereinstimmungen. Ein Stapel von 1000-Einheiten zählt als ein Objekt. Dies ist keine Summe von Einheiten; es erfordert FindFullQuantity.
var found = UO.FindType(0x0EED, -1, "backpack");
var value = UO.FindCount();
UO.Print(Convert.ToString(value));Parameter und Ablauf:
- Alle vier Lesevorgänge gehören zu einer Suche, bis dazwischen eine weitere Suche aufgerufen wird.
- Zum Beispiel zwei Stapel von 50: Artikel=2, Erster Stapel=50, Alle Einheiten=100; Zuerst enthält ID das eindeutige ID eines Stapels.
return RunScenario();
object? RunScenario()
{
var found = UO.FindType(0x0EED, -1, "backpack");
UO.Print("Items: " + Convert.ToString(UO.FindCount()));
UO.Print("First stack: " + Convert.ToString(UO.FindQuantity()));
UO.Print("All units: " + Convert.ToString(UO.FindFullQuantity()));
UO.Print("First ID: 0x" + Hex(UO.FindItem()));
return null;
}
string Hex(object? value) => Convert.ToInt64(value).ToString("X");Parameter und Ablauf:
- Das erste type ist Gold, das zweite 0x0F7A ist ein separater Reagenztyp. Das neue Team verändert die Gesamtaufnahme.
- Gespeichert bleibt die Nummer aus der ersten Suche. Der zweite Messwert gilt für das Reagenz, auch wenn keine Übereinstimmung vorliegt.
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()
{
var found = UO.FindType(0x0EED, -1, "backpack");
var saved = UO.FindCount();
found = UO.FindType(0x0F7A, -1, "backpack");
UO.Print("Saved: " + Convert.ToString(saved));
UO.Print("Current: " + Convert.ToString(UO.FindCount()));
return null;
}
}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: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.FindCount. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.FindCount:bridge.FindCount().
Interner Implementierungscode; kein eigenständiges Skript.
public int FindCount() => bridge.FindCount();Parameter: id (Any)
Ergebnis: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.FindCount. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetQuantity:bridge.GetQuantity(GetObject(id)). -
InjectionScript.Runtime.InjectionApiUO.GetObject:GetObject(id).
Interner Implementierungscode; kein eigenständiges Skript.
public int FindCount(InjectionValue id) => bridge.GetQuantity(GetObject(id));Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
int UO.FindDistance();
void UO.FindDistance(object? value);Liest oder ändert den standardmäßigen horizontalen Suchradius.
-
value– Optional int. Ohne Argument - Lesen; Wert – Einstellung. Der Wert ist auf den Bereich 0..255 begrenzt; das Negative wird zu 0 und nicht zu „No-Limit“. In der neuen Laufzeit: 18; Der wiederhergestellte Zustand kann einen anderen Wert enthalten. Die Bruchzahl wird auf Null gekürzt; Numerische Zeichenfolgen double/0x sind ebenfalls akzeptabel. Verwenden Sie int, um eine implizite Konvertierung zu vermeiden.
Ohne Argumente: int ist die aktuelle Grenze (Entfernung in Zellen), nicht gefunden ID, Anzahl der Objekte oder bool. 0 bedeutet Nullgrenze, nicht Ausfall. Mit Wert: void – kein Wert; Dies ist nicht true/false oder die alte Einstellung. Lesen Sie nach der Installation FindDistance(), um den gespeicherten Wert herauszufinden.
- Abstand: max(abs(dx), abs(dy)) vom aktuellen Referenzpunkt des Client-Bereichs; ein diagonales Quadrat zählt als eins. Der Rand ist aktiviert. Für 0 sind nur Objekte auf demselben X/Y geeignet. Beim Bewegen von Mobilgeräten berücksichtigt die Entfernung die endgültige Position der Stufenreihe.
- Die Einstellung wird in der Laufzeit des aktuellen Skripts gespeichert; Seine Prozeduren verwenden einen einzelnen Wert. Unabhängige Laufzeiten haben separate Einstellungen. Lesen und Schreiben lösen keine Suche aus, löschen FindItem/FindCount/GetFoundItems, senden kein Paket, verschieben kein Zeichen und laden keine entfernten Objekte.
- FindTypeEx und FindTypesArrayEx verwenden diese Grenzen bei der Suche am Boden, jedoch nicht im Container. Die restlichen Filter sind type, hue, Ignore und das Vorhandensein eines geladenen Objekts. FindAtCoord ignoriert beide Grenzwerte. In erweiterten Befehlen kann expliziter Abstand/maxZ Einstellungen überschreiben; -1 bedeutet in solchen Parametern, die Einstellung zu übernehmen, im Gegensatz dazu, die Einstellung selbst auf -1 zu setzen. FindList filtert auch Z bei der Suche nach Containern; Die angegebene Containerausnahme gilt nicht für ihn.
- Speichern Sie den Wert vor der vorübergehenden Suche und stellen Sie ihn auf „Endgültig“ wieder her. Die Installation wird nicht automatisch abgebrochen. Funktioniert schließlich bei normaler Fertigstellung und einem abgefangenen Skriptfehler; Der Not-Aus-Schalter kann nicht als Reinigungsmechanismus verwendet werden.
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.
var result = UO.FindDistance();
UO.Print("FindDistance: " + Convert.ToString(result));Parameter und Ablauf:
- previous speichert die aktuelle Einstellung. value:=5 legt den normalen Grenzwert fest; 1000 zeigt die Grenze zu 255. Print liest das Ergebnis als separaten Aufruf ohne Argument. Stellt endlich das vorherige wieder her.
var previous = UO.FindDistance();
try
{
UO.FindDistance(5);
UO.Print(Convert.ToString(UO.FindDistance()));
UO.FindDistance(1000);
UO.Print(Convert.ToString(UO.FindDistance()));
}
finally
{
UO.FindDistance(previous);
}Parameter und Ablauf:
- previous speichert die Einstellung des aufrufenden Codes. 5 ändert nur FindDistance; die zweite Grenze bleibt gleich. 0x0EED – goldene Grafiken, -1 – jedes hue, Container=-1 – Welt, false – ohne Containerrekursion. id - eins serial; != 0 prüft die Verfügbarkeit. FindCount zählt ganze Objekte/Stapel. Stellt schließlich die Einstellung wieder her, nicht die Ergebnisliste.
return RunScenario();
object? RunScenario()
{
var previous = UO.FindDistance();
try
{
UO.FindDistance(5);
var id = UO.FindTypeEx(0x0EED, -1, -1, false);
if (Truth(id != 0))
{
UO.Print(Hex(id) + ":" + Convert.ToString(UO.FindCount()));
}
else
{
UO.Print("0");
}
}
finally
{
UO.FindDistance(previous);
}
return null;
}
string Hex(object? value) => Convert.ToInt64(value).ToString("X");
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:
- CountGroundInRange(graphic, Radius, Höhe) speichert beide Grenzen, setzt Radius=5 und Höhe=10, sucht nach graphic=0x0EED und gibt FindCount() zurück. Ein Stapel wird als ein Objekt betrachtet. Die vollständige Funktion ist nach Main angegeben. Stellt endlich beide Limits wieder her, auch wenn das Verlassen per Return erfolgt; Das Suchergebnis bleibt verfügbar.
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()
{
var count = CountGroundInRange(0x0EED, 5, 10);
UO.Print(Convert.ToString(count));
return null;
}
dynamic CountGroundInRange(dynamic graphic, dynamic radius, dynamic height)
{
var oldDistance = UO.FindDistance();
var oldVertical = UO.FindVertical();
try
{
UO.FindDistance(radius);
UO.FindVertical(height);
UO.FindTypeEx(graphic, -1, -1, false);
return UO.FindCount();
}
finally
{
UO.FindDistance(oldDistance);
UO.FindVertical(oldVertical);
}
}
}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: int / Integer.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SetFindDistance:bridge.SetFindDistance(Arg(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindDistance:bridge.GetFindDistance().
Interner Implementierungscode; kein eigenständiges Skript.
case "finddistance":
if (arguments.Length > 0) { bridge.SetFindDistance(Arg(0)); return InjectionValue.Unit; }
return new InjectionValue(bridge.GetFindDistance());Parameter: value (Any)
Ergebnis: void / Unit.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SetFindDistance:bridge.SetFindDistance(Arg(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindDistance:bridge.GetFindDistance().
Interner Implementierungscode; kein eigenständiges Skript.
case "finddistance":
if (arguments.Length > 0) { bridge.SetFindDistance(Arg(0)); return InjectionValue.Unit; }
return new InjectionValue(bridge.GetFindDistance());Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.FindFullQuantity();Liest die Gesamtzahl der Einheiten im letzten Such-Snapshot.
Es gibt keine Parameter.
int – Summe max(1, Menge) der gefundenen Elemente; Jedes gefundene Zeichen fügt 1 hinzu. 0 keine Übereinstimmungen. Zwei Stapel von 50 ergeben 100 und FindCount ergeben 2. Dabei handelt es sich um eine Momentaufnahme zum Zeitpunkt der Suche, nicht um eine ständig aktualisierte Menge.
- Die Daten gehören zur letzten normalen Suche dieses Skripts. FindType mit 1–5-Argumenten, FindTypeEx, Count/CountEx/CountGround ersetzen die Ergebnisse. Zum Ändern dieses Snapshots sind keine erweiterten gefilterten Zeichenbefehle erforderlich.
- Eine neue Suche ohne Übereinstimmungen löscht FindItem, FindCount und FindFullQuantity sowie GetFoundItems. Das alleinige Lesen eines Ergebnisses löst keine neue Suche aus.
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.
UO.FindType(0x0EED, -1, "backpack");
object? result = UO.FindFullQuantity();
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));Parameter und Ablauf:
- type=0x0EED – Gold; color=-1 – beliebig hue; backpack – nur der direkte Inhalt des Rucksacks in dieser Form FindType.
- int – Summe max(1, Menge) der gefundenen Elemente; Jedes gefundene Zeichen fügt 1 hinzu. 0 keine Übereinstimmungen. Zwei Stapel von 50 ergeben 100 und FindCount ergeben 2. Dabei handelt es sich um eine Momentaufnahme zum Zeitpunkt der Suche, nicht um eine ständig aktualisierte Menge.
var found = UO.FindType(0x0EED, -1, "backpack");
var value = UO.FindFullQuantity();
UO.Print(Convert.ToString(value));Parameter und Ablauf:
- Alle vier Lesevorgänge gehören zu einer Suche, bis dazwischen eine weitere Suche aufgerufen wird.
- Zum Beispiel zwei Stapel von 50: Artikel=2, Erster Stapel=50, Alle Einheiten=100; Zuerst enthält ID das eindeutige ID eines Stapels.
return RunScenario();
object? RunScenario()
{
var found = UO.FindType(0x0EED, -1, "backpack");
UO.Print("Items: " + Convert.ToString(UO.FindCount()));
UO.Print("First stack: " + Convert.ToString(UO.FindQuantity()));
UO.Print("All units: " + Convert.ToString(UO.FindFullQuantity()));
UO.Print("First ID: 0x" + Hex(UO.FindItem()));
return null;
}
string Hex(object? value) => Convert.ToInt64(value).ToString("X");Parameter und Ablauf:
- Das erste type ist Gold, das zweite 0x0F7A ist ein separater Reagenztyp. Das neue Team verändert die Gesamtaufnahme.
- Gespeichert bleibt die Nummer aus der ersten Suche. Der zweite Messwert gilt für das Reagenz, auch wenn keine Übereinstimmung vorliegt.
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()
{
var found = UO.FindType(0x0EED, -1, "backpack");
var saved = UO.FindFullQuantity();
found = UO.FindType(0x0F7A, -1, "backpack");
UO.Print("Saved: " + Convert.ToString(saved));
UO.Print("Current: " + Convert.ToString(UO.FindFullQuantity()));
return null;
}
}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. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.FindFullQuantity:bridge.FindFullQuantity().
Interner Implementierungscode; kein eigenständiges Skript.
case "findfullquantity": return new InjectionValue(bridge.FindFullQuantity());Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.FindItem();Liest serial des ersten Ergebnisses der letzten regulären Suche.
Es gibt keine Parameter.
int - serial/ID des ersten gefundenen Objekts, 0 wenn kein Ergebnis vorliegt. Dies ist numerisch serial, wohingegen FindType eine Hexadezimalzeichenfolge oder die leere Zeichenfolge zurückgibt. Gibt type nicht zurück.
- Die Daten gehören zur letzten normalen Suche dieses Skripts. FindType mit 1–5-Argumenten, FindTypeEx, Count/CountEx/CountGround ersetzen die Ergebnisse. Zum Ändern dieses Snapshots sind keine erweiterten gefilterten Zeichenbefehle erforderlich.
- Eine neue Suche ohne Übereinstimmungen löscht FindItem, FindCount und FindFullQuantity sowie GetFoundItems. Das alleinige Lesen eines Ergebnisses löst keine neue Suche aus.
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.
UO.FindType(0x0EED, -1, "backpack");
object? result = UO.FindItem();
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));Parameter und Ablauf:
- type=0x0EED – Gold; color=-1 – beliebig hue; backpack – nur der direkte Inhalt des Rucksacks in dieser Form FindType.
- int - serial/ID des ersten gefundenen Objekts, 0 wenn kein Ergebnis vorliegt. Dies ist numerisch serial, wohingegen FindType eine Hexadezimalzeichenfolge oder die leere Zeichenfolge zurückgibt. Gibt type nicht zurück.
var found = UO.FindType(0x0EED, -1, "backpack");
var value = UO.FindItem();
UO.Print(Convert.ToString(value));Parameter und Ablauf:
- Alle vier Lesevorgänge gehören zu einer Suche, bis dazwischen eine weitere Suche aufgerufen wird.
- Zum Beispiel zwei Stapel von 50: Artikel=2, Erster Stapel=50, Alle Einheiten=100; Zuerst enthält ID das eindeutige ID eines Stapels.
return RunScenario();
object? RunScenario()
{
var found = UO.FindType(0x0EED, -1, "backpack");
UO.Print("Items: " + Convert.ToString(UO.FindCount()));
UO.Print("First stack: " + Convert.ToString(UO.FindQuantity()));
UO.Print("All units: " + Convert.ToString(UO.FindFullQuantity()));
UO.Print("First ID: 0x" + Hex(UO.FindItem()));
return null;
}
string Hex(object? value) => Convert.ToInt64(value).ToString("X");Parameter und Ablauf:
- Das erste type ist Gold, das zweite 0x0F7A ist ein separater Reagenztyp. Das neue Team verändert die Gesamtaufnahme.
- Gespeichert bleibt die Nummer aus der ersten Suche. Der zweite Messwert gilt für das Reagenz, auch wenn keine Übereinstimmung vorliegt.
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()
{
var found = UO.FindType(0x0EED, -1, "backpack");
var saved = UO.FindItem();
found = UO.FindType(0x0F7A, -1, "backpack");
UO.Print("Saved: " + Convert.ToString(saved));
UO.Print("Current: " + Convert.ToString(UO.FindItem()));
return null;
}
}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. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.FindItem:bridge.FindItem.
Interner Implementierungscode; kein eigenständiges Skript.
case "finditem": return new InjectionValue(bridge.FindItem);Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
string UO.FindList(object? list);
string UO.FindList(object? list, object? container);
string UO.FindList(object? list, object? container, object? distance);
string UO.FindList(object? list, object? container, object? distance, object? notoriety);
string UO.FindList(object? list, object? container, object? distance, object? notoriety, object? nearest);
string UO.FindList(object? list, object? container, object? distance, object? notoriety, object? nearest, object? maxZ);
string UO.FindList(object? list, object? container, object? distance, object? notoriety, object? nearest, object? maxZ, object? includeIgnored);Sucht nach heruntergeladenen Artikeln oder Mobiltelefonen in mehreren type/hue. Gibt das erste serial als Zeichenfolge zurück und speichert das gesamte geordnete Ergebnis für FindItem, FindCount und GetFoundItems.
-
list– Name der nicht leeren Menge AddFindList; oder ein flaches Array aus numerischen type; oder eine durch |, Komma, Semikolon oder Leerzeichen getrennte Zeichenfolge, z. B. „0x0EED|0x0F7A“. Array-/String-Typen verwenden ein beliebiges hue. [type,hue] Paare innerhalb eines Arrays werden nicht unterstützt; Erstellen Sie für hue eine benannte Menge. Die Reihenfolge der Einträge bestimmt die Priorität. Grafik/type des Artikels entweder body mobile statt seines serial. Typischerweise int 0..65535, einschließlich 0x0EED; -1 oder 0xFFFF bedeutet jedes type bei der Suche. Geben Sie einen Wert pro Eintrag an. Mehrere Typen werden durch separate Aufrufe hinzugefügt. -
container– Standard -1: Gegenstände, deren Stammcontainer ein Charakter ist (einschließlich verschachtelter Taschen und Ausrüstung). „my“ = -1. ground, „ground“, UO.Ground(), numerisch 0 oder 1 wählen Sie die Welt aus: Gegenstände am Boden und Mobilgeräte, außer self. „backpack“ oder serial des Containers >1 sucht nur nach direktem Inhalt, ohne Rekursion. Der Objektalias wird in serial aufgelöst; Ein falscher Alias kann 0 ergeben, also überprüfen Sie es im Voraus mit GetSerial. -
distance– Nicht negativer Zellradius von max(abs(dx),abs(dy)); diagonal - eine Zelle. Gültig für Suche ground; Der direkte Inhalt des Behälters ist nicht durch die Entfernung begrenzt. Standardmäßig und mit einem negativen Argument wird UO.FindDistance() verwendet. 0 – das gleiche X/Y. -
notoriety– Standard – 1, beliebiger Code. Eine einzelne Zahl, die Zeichenfolge „5|6“ oder eine flache Zahlenreihe gibt die zulässigen Mobiltelefoncodes an; Mit diesem Filter werden Artikel ausgeschlossen. Codes: 0 unbekannt, 1 unschuldig, 2 Verbündeter, 3 grau, 4 kriminell, 5 Feind, 6 Mörder, 7 unverwundbar; Die Bedeutung der Beziehung wird vom Server bestimmt. Eine leere Maske /any/-1 ohne spezifische Codes begrenzt nicht. Beim Mischen von Platzhaltern und Codes bleiben die spezifischen Codes eine Einschränkung. Nicht-numerische Token werden neben gültigen ignoriert; Eine Maske nur aus fehlerhaften Token findet nichts. -
nearest– Standard false. false/0: Listeneintragspriorität zuerst, dann niedrigere Priorität serial. true/1: Zuerst Distanz, dann Aufnahmepriorität, dann serial. Dies ist eine Bestellung, kein zusätzlicher Filter. -
maxZ– Akzeptabler absoluter Unterschied zwischen Z und dem Zeichen, einschließlich. Das Standard- oder negative Argument ist UO.FindVertical(); 0 erlaubt nur das gleiche Z. Für einen expliziten serial-Container >1 nehmen Sie Z des geladenen Containers (wenn keiner vorhanden ist, Z Dinge); für andere Modi – Z Kandidat. Die Koordinaten eines Dinges in Gump entsprechen nicht der Höhe der Welt. -
includeIgnored– Standardmäßig sind false: serial von Ignore dieser Laufzeit ausgeschlossen. true/1 bezieht sie nur in diese Suche ein und löscht Ignore nicht.
string: Hex-serial des ersten Ergebnisses (zum Beispiel „0x40000011“) oder die leere Zeichenfolge „“, wenn es keine Übereinstimmungen gibt. Dies ist ID, nicht type, Menge und nicht bool: Prüfergebnis != "", nicht Ergebnis == true. Bei einer normalen, nicht leeren Abfrage speichert FindItem dieselbe ID-Nummer, FindCount() – die Anzahl unterschiedlicher Objekte, GetFoundItems() – ein Array ihrer numerischen serial.
- 1 bis 7 Positionsargumente; Sie können nur den Schwanz überspringen. Um maxZ anzugeben, übergeben Sie die vorhergehenden Argumente explizit. Die Suche erfolgt synchron basierend auf dem lokal geladenen Zustand: Der Container wird nicht geöffnet, Inhalte werden nicht geladen, die Sichtlinie/Verfügbarkeit wird nicht überprüft und es erfolgt kein Angriff.
- Jedes Objekt wird einmal einbezogen, auch wenn es mehreren Regeln entspricht. Seine Priorität ist der erste übereinstimmende Eintrag. Der unbekannte Name versucht, als Typzeichenfolge analysiert zu werden. unlesbar type/hue führt zu einem Konvertierungsfehler.
- Eine nicht leere Abfrage löscht vorherige FindItem/FindCount/GetFoundItems vor der Auswahl; Keine Übereinstimmungen hinterlassen leere Ergebnisse. Ausnahme: Ein leeres Array oder eine leere String-Liste gibt „“ VOR der Suche zurück und behält die vorherigen Ergebnisse bei. Zählen Sie FindCount nach einem solchen Aufruf nicht als neues Ergebnis.
- Durch das Ändern der Definitionen von AddFindList/ClearFindList/DeleteFindList wird der bereits gefundene Satz nicht geändert. Die andere Suche in dieser Laufzeit ersetzt FindItem und das gesamte Array, also speichern Sie GetFoundItems vor der verschachtelten Suche.
- Definitionen befinden sich im Status der angegebenen Skriptlaufzeit. Eine unabhängige andere Laufzeit verfügt über einen eigenen Satz. Durch das Schließen des IDE-Fensters werden diese Regeln nicht gelöscht. Dies ist keine Einstellungsdatei oder eine Liste globaler Spielobjekte.
- AddFindList hängt den Eintrag am Ende an; Wiederholungen werden nicht gelöscht. Um Ihr Kit erneut bereitzustellen, rufen Sie zunächst ClearFindList("Name") auf. Durch das Ändern von Definitionen werden bereits empfangene FindItem/FindCount/GetFoundItems nicht gelöscht.
- Der Datensatz speichert Textfelder. Das numerische Literal 0x0EED wird als „3821“ gespeichert, die Zeichenfolge „0x0EED“ wird als „0x0EED“ gespeichert. Die Suche wandelt beide Optionen in eine Zahl um und DeleteFindList vergleicht den gespeicherten Text. Verwenden Sie beim Hinzufügen und Löschen dasselbe Formular.
- Der unbekannte Name in FindList ist kein leerer registrierter Satz: Die Engine versucht, ihn als Liste numerischer Typen zu analysieren. Ein nicht numerischer Name verursacht einen Konvertierungsfehler. Erstellen Sie nach dem Löschen des letzten Eintrags einen neuen Satz, bevor Sie nach diesem Namen suchen.
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.
var result = UO.FindList(new[] { 0x0EED }, "backpack");
UO.Print("FindList: " + Convert.ToString(result));Parameter und Ablauf:
- Bei false hat Gold auch bei größeren Entfernungen Vorrang vor dem zweiten type. Radius 2 und maxZ=5 begrenzen die Kandidaten; Sie garantieren nicht das Recht, die Sache abzuholen.
- Dies ist eine echte Spielaktion: Nur der erste gefundene Gegenstand wird übertragen. Das Ergebnis MoveItem bedeutet nicht, dass der Server den gesamten Umzug bestätigt hat.
BuildLoot();
var item = UO.FindList("loot", "ground", 2, -1, false, 5);
if (Truth(item == ""))
{
return null;
}
var accepted = UO.MoveItem(item, 0, "backpack");
if (Truth(accepted == 0))
{
UO.Print("Move was not accepted");
}
void BuildLoot()
{
UO.ClearFindList("loot");
UO.AddFindList("loot", 0x0EED, -1);
UO.AddFindList("loot", 0x0F7A, -1);
}
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:
- Sieben Parameter: zwei body, Welt, Radius 12, Codes 5 oder 6, nächster zuerst, Differenz Z nicht größer als 10, ignoriert ausgeschlossen. Es gibt nur Auswahl und Speicherung; Das angreifende Skript muss separat prüfen, ob geeignete Bedingungen vorliegen.
return RunScenario();
object? RunScenario()
{
var target = UO.FindList("0x0190|0x0191", "ground", 12, "5|6", true, 10, false);
if (Truth(target != ""))
{
UO.AddObject("candidate", target);
UO.Print("Candidate: " + UO.GetName(target));
}
return null;
}
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:
- Durch die Deklaration der Variablentypen [1] werden in dieser Engine die Indizes 0 und 1 erstellt. Die Einheiten der beiden Typen werden summiert, nicht die Anzahl der Stapel. backpack beschränkt auf direkte Inhalte; Eingelegte Taschen gehören hier nicht zum Lieferumfang.
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()
{
dynamic[] types = new dynamic[checked((int)(1) + 1)];
types[0] = 0x0EED;
types[1] = 0x0F7A;
var first = UO.FindList(types, "backpack");
var total = 0;
if (Truth(first != ""))
{
var items = UO.GetFoundItems();
foreach (var item in items)
{
total += UO.FindCount(item);
}
}
if (Truth(total < 100))
{
UO.Print("Stock below limit: " + Convert.ToString(total));
}
return null;
}
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: list (Any)
Ergebnis: string / String.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.Register [FindList]. -
InjectionScript.Runtime.InjectionApiUO.CompactFindList:CompactFindList(values).
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(CompactFindList(values))Parameter: list (Any), container (Any)
Ergebnis: string / String.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.Register [FindList]. -
InjectionScript.Runtime.InjectionApiUO.CompactFindList:CompactFindList(values).
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(CompactFindList(values))Parameter: list (Any), container (Any), distance (Any)
Ergebnis: string / String.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.Register [FindList]. -
InjectionScript.Runtime.InjectionApiUO.CompactFindList:CompactFindList(values).
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(CompactFindList(values))Parameter: list (Any), container (Any), distance (Any), notoriety (Any)
Ergebnis: string / String.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.Register [FindList]. -
InjectionScript.Runtime.InjectionApiUO.CompactFindList:CompactFindList(values).
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(CompactFindList(values))Parameter: list (Any), container (Any), distance (Any), notoriety (Any), nearest (Any)
Ergebnis: string / String.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.Register [FindList]. -
InjectionScript.Runtime.InjectionApiUO.CompactFindList:CompactFindList(values).
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(CompactFindList(values))
UO.FindList(list, container, distance, notoriety, nearest, maxZ) — UO.FindList(Any,Any,Any,Any,Any,Any)
Parameter: list (Any), container (Any), distance (Any), notoriety (Any), nearest (Any), maxZ (Any)
Ergebnis: string / String.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.Register [FindList]. -
InjectionScript.Runtime.InjectionApiUO.CompactFindList:CompactFindList(values).
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(CompactFindList(values))
UO.FindList(list, container, distance, notoriety, nearest, maxZ, includeIgnored) — UO.FindList(Any,Any,Any,Any,Any,Any,Any)
Parameter: list (Any), container (Any), distance (Any), notoriety (Any), nearest (Any), maxZ (Any), includeIgnored (Any)
Ergebnis: string / String.
Beim Aufruf:
-
InjectionScript.Runtime.InjectionApiUO.Register [FindList]. -
InjectionScript.Runtime.InjectionApiUO.CompactFindList:CompactFindList(values).
Der Aufruf führt den gespeicherten Handler-Delegate aus. Die Registrierungsmethode erzeugt ihn beim Aufbau der API.
Interner Implementierungscode; kein eigenständiges Skript.
values => new InjectionValue(CompactFindList(values))