Repository navigation
ES UO Topic search
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
Inicio · C# · IDE · UO API · A–Z · Ejemplos · Idiomas
Seleccionar un área de búsqueda y filtros, procesar el resultado, lista de elementos encontrados y excepciones. Verifique el valor "no encontrado" en la tarjeta de comando: serial, cantidad y lista: resultados diferentes.
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
Cada tarjeta de comando tiene varios escenarios independientes: código directo, funciones y clases. A continuación se muestran escenarios breves seleccionados; restricciones y análisis completos están en las cartas.
Parámetros, resultado y todos los escenarios
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;Parámetros, resultado y todos los escenarios
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);Agrega la regla type/hue al conjunto nombrado para UO.FindList. El conjunto le permite buscar repetidamente varios tipos de objetos o móviles y establecer la prioridad de los tipos según el orden de adición.
-
list: el nombre del conjunto de reglas, por ejemplo, "botín". Pase la cadena sin |: este carácter se utiliza como separador dentro del registro. El nombre no distingue entre mayúsculas y minúsculas. Este no es un contenedor serial ni una serie de elementos encontrados. -
type- Gráfico/type de un elemento o body mobile, no su serial. Normalmente int 0...65535, incluido 0x0EED; -1 o 0xFFFF significa cualquier type al buscar. Proporcione un valor por entrada. Se agregan varios tipos mediante llamadas separadas. -
color— Tono de un objeto/cuerpo, no RGB. int 0..65535; 0 - regular hue 0, -1 o 0xFFFF - cualquiera. En AddFindList, omitir color significa cualquier hue al realizar la búsqueda.
void: Sin valor de retorno. No asigne la llamada a una variable y no la pruebe en true/1. Se puede inferir el estado de las definiciones UO.InfoFindList(); la búsqueda en sí se inicia por separado a través de UO.FindList().
- Las definiciones están en el estado del tiempo de ejecución del script dado. Un otro tiempo de ejecución independiente tiene su propio conjunto; cerrar la ventana IDE no borra estas reglas. Este no es un archivo de configuración ni una lista de objetos globales del juego.
- AddFindList agrega la entrada al final; las repeticiones no se eliminan. Para reaprovisionar su kit, primero llame a ClearFindList("nombre"). Cambiar las definiciones no borra FindItem/FindCount/GetFoundItems que ya se han recibido.
- El registro almacena campos de texto. El literal numérico 0x0EED se almacena como "3821", la cadena "0x0EED" se almacena como "0x0EED". La búsqueda convierte ambas opciones en un número y DeleteFindList compara el texto almacenado. Utilice el mismo formulario al agregar y eliminar.
- El nombre desconocido en FindList no es un conjunto registrado vacío: el motor intenta analizarlo como una lista de tipos numéricos. Un nombre no numérico provoca un error de conversión. Después de eliminar la última entrada, cree un nuevo conjunto antes de buscar ese nombre.
- Los argumentos se almacenan inmediatamente; la verificación numérica type/hue se realiza en FindList. AddFindList no busca, transporta artículos ni agrega serial a Ignore.
Cada ejemplo se puede guardar como un archivo independiente .csx y ejecutar en IDE. Las funciones de objeto UO y de espera proporcionan el anfitrión de la sesión de juego actual. Reemplace los nombres, coordenadas y direcciones de la demostración serial por los suyos propios.
Ejecuta este código en un archivo .csx independiente. Los argumentos aparecen en la llamada; sustituye los nombres, seriales y direcciones de ejemplo por los tuyos.
El comando es una instrucción independiente. El mensaje anterior indica el inicio de la llamada y no confirma una acción del servidor.
UO.Print("Calling UO.AddFindList");
UO.AddFindList("simple_loot", 0x0EED);Parámetros y flujo de ejecución:
- 0x0EED es oro, 0x0F7A es el segundo graphic del conjunto. Para otros datos del servidor, reemplace los gráficos. El procedimiento BuildLoot completo se proporciona arriba.
- FindCount(elemento) lee el número de unidades de una pila en particular; GetFoundItems contiene serial distinto. Este ejemplo no realiza ninguna transferencia.
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;Parámetros y flujo de ejecución:
- 0x0044 filtra hue; esto no es serial. backpack busca el contenido directo de la mochila. AddObject guarda el objeto seleccionado con un nombre en este tiempo de ejecución.
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;Parámetros y flujo de ejecución:
- En cada entrada, el color que falta significa cualquier hue. La línea "5|6" permite dos códigos de notoriedad; este filtro excluye artículos regulares. La búsqueda no ataca ni inicia Follow.
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# distingue mayúsculas y minúsculas. Use el nombre UO exacto. Compare indicadores numéricos con 0; use bool solo si la firma devuelve bool.
Parámetros: list (Any), type (Any)
Resultado: void / Unit.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::LegacyList:LegacyList(name). -
InjectionScript.Runtime.InjectionValue.ToString:value.ToString().
Código interno de implementación; no es un script independiente.
case "adddir":
case "addfindlist":
case "addgate":
case "addrecall":
case "addstep":
LegacyList(name).Add(string.Join("|", arguments.Select(value => value.ToString())));
break;Parámetros: list (Any), type (Any), color (Any)
Resultado: void / Unit.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::LegacyList:LegacyList(name). -
InjectionScript.Runtime.InjectionValue.ToString:value.ToString().
Código interno de implementación; no es un script independiente.
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);Prepara un conjunto con nombre de cosas que deben omitirse al buscar: por ejemplo, no seleccione oro o no seleccione cosas de un determinado color. La regla está especificada por type y hue, por lo tanto se aplica a todos los objetos adecuados, incluidos los que aparecieron después. Después de la configuración, habilite la marcación mediante SelectIgnoreList.
-
list— Nombre arbitrario no vacío, por ejemplo "loot_skip". El nombre no distingue entre mayúsculas y minúsculas. Este no es el nombre del artículo, ni el contenedor serial, ni el nombre de FindList. -
type- Gráfico/type de un artículo o body mobile. Por ejemplo, 0x0EED es oro, 0x0191 es un cuerpo humano femenino. Número o cadena numérica ("0x0EED", "3821"); -1/otro negativo/0xFFFF - cualquier type. No se permiten valores mayores a 65535. Para múltiples type agregue múltiples reglas. -
color- Tono: 0 - solo sin color, 0x0044 - ejemplo de color exacto; negativo o 0xFFFF - cualquiera. No se permiten valores mayores a 65535. En Agregar, el valor predeterminado es 1. El tipo y hue dentro de una regla están conectados por una condición Y; reglas diferentes - O.
void - sin valor. Úselo en una línea separada sin var resultado = y sin marcar =true. El comando cambia el filtro local; no devuelve el número de elementos y no envía nada al servidor.
- Se agrega a la lista especificada por el PRIMER argumento, independientemente de la lista seleccionada actualmente. Los pares numéricamente idénticos repetidos no se duplican.
- La lista nombrada contiene las reglas graphic/type + hue, y la Ignore normal contiene la serial específica. Son filtros diferentes: se combinan cuando la búsqueda los admite. Los objetos permanecen visibles y accesibles para dirigir UseObject/MoveItem; esto no es Hide ni prohibición de acciones.
- El nombre de la lista no distingue entre mayúsculas y minúsculas; Se eliminan los espacios de los bordes. Una lista con nombre está activa, inicialmente predeterminada. AddIgnoreList no lo selecciona automáticamente. SelectIgnoreList("") deshabilita solo el filtro con nombre.
- Las reglas se aplican a nuevas búsquedas, incluidos los elementos cargados DESPUÉS de haber sido agregados. La matriz ya recibida y el resultado anterior FindCount no se recalculan hasta una nueva búsqueda. No seleccione una lista con la regla -1,-1 a menos que desee excluir todo.
- El filtro tiene en cuenta FindType/FindTypeEx/FindTypesArrayEx, FindList, FindAtCoord, FindNotoriety, Count/CountEx y selecciones extendidas GetMobiles, GetWorldItems, UseType, WaitTarget, Attack/AttackNearest/FindMan. includeIgnored=true, cuando esté incluido, omite tanto serial como type/hue. La enumeración completa GetContent/GetEquipment, GetWorldItems() sin argumentos, y la verbal FindMobile(humano,cerca,...) no utilizan estas reglas.
- GetIgnoreList devuelve solo serial agregado explícitamente; las filas de la lista nombrada no están incluidas en esta matriz. IgnoreReset borra todo el filtro serial, IgnoreOff(serial) elimina una excepción serial; las reglas nombradas se conservan. ClearIgnoreList() sin argumentos borra ambas vistas.
- El estado pertenece al estado general de los scripts del perfil del cliente; el cambio afecta a otros scripts con este estado. La configuración se incluye en la instantánea guardada. Después de cambiar las reglas, otro script ya puede realizar una búsqueda con la instantánea tomada anteriormente; la próxima búsqueda verá la actualización.
Cada ejemplo se puede guardar como un archivo independiente .csx y ejecutar en IDE. Las funciones de objeto UO y de espera proporcionan el anfitrión de la sesión de juego actual. Reemplace los nombres, coordenadas y direcciones de la demostración serial por los suyos propios.
Ejecuta este código en un archivo .csx independiente. Los argumentos aparecen en la llamada; sustituye los nombres, seriales y direcciones de ejemplo por los tuyos.
El comando es una instrucción independiente. El mensaje anterior indica el inicio de la llamada y no confirma una acción del servidor.
UO.Print("Calling UO.AddIgnoreList");
UO.AddIgnoreList("simple_skip", 0x0EED);Parámetros y flujo de ejecución:
- loot_skip: establece el nombre. El color que falta significa cualquier hue. FindType devuelve la cadena hexadecimal ID o la cadena vacía; aquí el resultado se almacena en next_loot y el elemento no se mueve. Buscando terreno también puede encontrar mobile.
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;Parámetros y flujo de ejecución:
- 0x1F03 - graphic túnicas; 0x0044 es un ejemplo de color protegido. Robu de otra búsqueda hue permite. Esta es una protección contra la selección mediante búsqueda por filtrado, no contra la MoveItem directa por la conocida 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;Parámetros y flujo de ejecución:
- Las reglas se almacenan en ambas listas. Para excluir tanto el oro como las túnicas al mismo tiempo, agregue ambos type a la misma lista.
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# distingue mayúsculas y minúsculas. Use el nombre UO exacto. Compare indicadores numéricos con 0; use bool solo si la firma devuelve bool.
Parámetros: list (Any), type (Any)
Resultado: void / Unit.
Durante la llamada:
-
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]).
Código interno de implementación; no es un script independiente.
case "addignorelist":
state.IgnoreTypeLists.Add(Text(0), ResolveType(arguments[1]),
arguments.Length > 2 ? NumberConversions.ToInt(arguments[2]) : -1);
break;Parámetros: list (Any), type (Any), color (Any)
Resultado: void / Unit.
Durante la llamada:
-
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]).
Código interno de implementación; no es un script independiente.
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();Elimina todos los pares guardados por SetBadLocation.
No hay parámetros.
void: sin valor de retorno. Llame en una línea separada; no es true/false ni el número de pasos.
- No cambia el mapa, los personajes ni los obstáculos en el servidor. Sólo se borra la lista de tiempo de ejecución de la aplicación.
- La matriz de ruta ya recibida y la instantánea de las prohibiciones de la ruta en ejecución no se modifican. Para obtener un nuevo resultado, repita la solicitud de trayectoria o inicie el movimiento nuevamente. La lista SetBadObject se borra por separado.
Cada ejemplo se puede guardar como un archivo independiente .csx y ejecutar en IDE. Las funciones de objeto UO y de espera proporcionan el anfitrión de la sesión de juego actual. Reemplace los nombres, coordenadas y direcciones de la demostración serial por los suyos propios.
Ejecuta este código en un archivo .csx independiente. Los argumentos aparecen en la llamada; sustituye los nombres, seriales y direcciones de ejemplo por los tuyos.
El comando es una instrucción independiente. El mensaje anterior indica el inicio de la llamada y no confirma una acción del servidor.
UO.Print("Calling UO.ClearBadLocationList");
UO.ClearBadLocationList();Parámetros y flujo de ejecución:
- No hay parámetros.
- No hay valor de retorno.
UO.ClearBadLocationList();Parámetros y flujo de ejecución:
- Primero se eliminan los pares anteriores y luego se agrega uno nuevo.
- No se trata de un obstáculo físico ni de un cambio en la tarjeta de cliente.
return RunScenario();
object? RunScenario()
{
UO.ClearBadLocationList();
UO.SetBadLocation(1445, 1690);
return null;
}Parámetros y flujo de ejecución:
- El objetivo está cuatro celdas al este, Optimizado=true, Precisión=0.
- Una matriz vacía después de la limpieza puede deberse a una obstrucción común o a un límite de búsqueda.
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# distingue mayúsculas y minúsculas. Use el nombre UO exacto. Compare indicadores numéricos con 0; use bool solo si la firma devuelve bool.
Parámetros: Sin parámetros.
Resultado: void / Unit.
Durante la llamada:
Código interno de implementación; no es un script independiente.
case "clearbadlocationlist": state.BadLocations.Clear(); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.ClearBadObjectList();Elimina todas las reglas type/hue/radius agregadas por SetBadObject en el tiempo de ejecución actual.
No hay parámetros.
void: sin valor de retorno. Llame en una línea separada; no es true/false ni el número de pasos.
- No hay parámetros. Llamar nuevamente cuando la lista está vacía es seguro.
- No limpia SetBadLocation ni elimina obstrucciones naturales. Una nueva solicitud de movimiento o ruta utiliza la lista borrada; la ruta iniciada anteriormente guarda su propia instantánea.
Cada ejemplo se puede guardar como un archivo independiente .csx y ejecutar en IDE. Las funciones de objeto UO y de espera proporcionan el anfitrión de la sesión de juego actual. Reemplace los nombres, coordenadas y direcciones de la demostración serial por los suyos propios.
Ejecuta este código en un archivo .csx independiente. Los argumentos aparecen en la llamada; sustituye los nombres, seriales y direcciones de ejemplo por los tuyos.
El comando es una instrucción independiente. El mensaje anterior indica el inicio de la llamada y no confirma una acción del servidor.
UO.Print("Calling UO.ClearBadObjectList");
UO.ClearBadObjectList();Parámetros y flujo de ejecución:
- No hay argumentos; la llamada se graba en una línea separada.
- No hay ningún resultado true/false y no hay ningún número de reglas eliminadas.
UO.ClearBadObjectList();Parámetros y flujo de ejecución:
- Después de borrar, solo se agrega type=0x398C de cualquier color.
- Radio=2 excluye un cuadrado 5×5 alrededor de elementos adecuados en la siguiente ruta.
return RunScenario();
object? RunScenario()
{
UO.ClearBadObjectList();
UO.SetBadObject(0x398C, -1, 2);
return null;
}3. Volver a calcular la ruta después del restablecimiento completo de las prohibiciones de la aplicación: clase de script
Parámetros y flujo de ejecución:
- Las dos listas son independientes: ambos comandos se llaman para restablecer ambos.
- Los tres cuadrados al este son un ejemplo de objetivo. Se conservan la transitabilidad, la altitud y el límite de búsqueda del mapa; una matriz vacía sigue siendo un resultado válido.
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# distingue mayúsculas y minúsculas. Use el nombre UO exacto. Compare indicadores numéricos con 0; use bool solo si la firma devuelve bool.
Parámetros: Sin parámetros.
Resultado: void / Unit.
Durante la llamada:
Código interno de implementación; no es un script independiente.
case "clearbadobjectlist": state.BadObjects.Clear(); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.ClearFindList();
void UO.ClearFindList(object? list);Elimina las definiciones de un conjunto de búsqueda con nombre o de todos los conjuntos AddFindList del tiempo de ejecución actual. Se utiliza antes de reconfigurar los filtros para evitar que se acumulen reglas.
-
list: el nombre del conjunto de reglas, por ejemplo, "botín". Pase la cadena sin |: este carácter se utiliza como separador dentro del registro. El nombre no distingue entre mayúsculas y minúsculas. Este no es un contenedor serial ni una serie de elementos encontrados. Si falta el argumento, se eliminan TODAS las definiciones de AddFindList en este tiempo de ejecución.
void: Sin valor de retorno. No asigne la llamada a una variable y no la pruebe en true/1. Se puede inferir el estado de las definiciones UO.InfoFindList(); la búsqueda en sí se inicia por separado a través de UO.FindList().
- Las definiciones están en el estado del tiempo de ejecución del script dado. Un otro tiempo de ejecución independiente tiene su propio conjunto; cerrar la ventana IDE no borra estas reglas. Este no es un archivo de configuración ni una lista de objetos globales del juego.
- AddFindList agrega la entrada al final; las repeticiones no se eliminan. Para reaprovisionar su kit, primero llame a ClearFindList("nombre"). Cambiar las definiciones no borra FindItem/FindCount/GetFoundItems que ya se han recibido.
- El registro almacena campos de texto. El literal numérico 0x0EED se almacena como "3821", la cadena "0x0EED" se almacena como "0x0EED". La búsqueda convierte ambas opciones en un número y DeleteFindList compara el texto almacenado. Utilice el mismo formulario al agregar y eliminar.
- El nombre desconocido en FindList no es un conjunto registrado vacío: el motor intenta analizarlo como una lista de tipos numéricos. Un nombre no numérico provoca un error de conversión. Después de eliminar la última entrada, cree un nuevo conjunto antes de buscar ese nombre.
- Un nombre inexistente es seguro: no se elimina nada. El comando no elimina elementos del juego, no borra Ignore ni cancela el movimiento.
Cada ejemplo se puede guardar como un archivo independiente .csx y ejecutar en IDE. Las funciones de objeto UO y de espera proporcionan el anfitrión de la sesión de juego actual. Reemplace los nombres, coordenadas y direcciones de la demostración serial por los suyos propios.
Ejecuta este código en un archivo .csx independiente. Los argumentos aparecen en la llamada; sustituye los nombres, seriales y direcciones de ejemplo por los tuyos.
El comando es una instrucción independiente. El mensaje anterior indica el inicio de la llamada y no confirma una acción del servidor.
UO.Print("Calling UO.ClearFindList");
UO.ClearFindList();Parámetros y flujo de ejecución:
- Dentro de BuildLoot solo se elimina el botín. Se conservan otros conjuntos con nombre de esta escritura.
BuildLoot();
BuildLoot();
UO.InfoFindList();
void BuildLoot()
{
UO.ClearFindList("loot");
UO.AddFindList("loot", 0x0EED, -1);
UO.AddFindList("loot", 0x0F7A, -1);
}Parámetros y flujo de ejecución:
- El registro SEASON no es importante. restos de reserva; En temporada ahora solo hay el nuevo type/hue. Después de la limpieza, primero se agrega el registro y luego se permite la búsqueda por nombre.
return RunScenario();
object? RunScenario()
{
UO.AddFindList("reserve", 0x0EED);
UO.AddFindList("season", 0x0F7A);
UO.ClearFindList("SEASON");
UO.AddFindList("season", 0x0EED, 0x0044);
UO.InfoFindList();
return null;
}Parámetros y flujo de ejecución:
- ClearFindList() afecta todas las definiciones del tiempo de ejecución actual, por lo que un formulario con nombre propio suele ser mejor para un procedimiento de biblioteca.
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# distingue mayúsculas y minúsculas. Use el nombre UO exacto. Compare indicadores numéricos con 0; use bool solo si la firma devuelve bool.
Parámetros: Sin parámetros.
Resultado: void / Unit.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::LegacyList:LegacyList("AddFindList"). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Text:Text(0).
Código interno de implementación; no es un script independiente.
case "clearfindlist":
if (arguments.Length == 0) LegacyList("AddFindList").Clear();
else LegacyList("AddFindList").RemoveAll(value => value.Split('|')[0]
.Equals(Text(0), StringComparison.OrdinalIgnoreCase));
break;Parámetros: list (Any)
Resultado: void / Unit.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::LegacyList:LegacyList("AddFindList"). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Text:Text(0).
Código interno de implementación; no es un script independiente.
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);Restablece las excepciones de búsqueda. Con un nombre, solo un conjunto type/hue. Sin argumentos: todos los conjuntos con nombre y todos los serial agregados hasta Ignore. Es útil empezar una nueva clasificación con reglas claras.
-
list— Nombre arbitrario no vacío, por ejemplo "loot_skip". El nombre no distingue entre mayúsculas y minúsculas. Este no es el nombre del artículo, ni el contenedor serial, ni el nombre de FindList. Opcional. Su ausencia supone un reseteo general, no sólo de la lista de activos.
void - sin valor. Úselo en una línea separada sin var resultado = y sin marcar =true. El comando cambia el filtro local; no devuelve el número de elementos y no envía nada al servidor.
- ClearIgnoreList("nombre") es equivalente en resultado a DeleteIgnoreList("nombre"). Aquí no se permite una cadena vacía; para deshabilitar sin eliminar use SelectIgnoreList("").
- La lista nombrada contiene las reglas graphic/type + hue, y la Ignore normal contiene la serial específica. Son filtros diferentes: se combinan cuando la búsqueda los admite. Los objetos permanecen visibles y accesibles para dirigir UseObject/MoveItem; esto no es Hide ni prohibición de acciones.
- El nombre de la lista no distingue entre mayúsculas y minúsculas; Se eliminan los espacios de los bordes. Una lista con nombre está activa, inicialmente predeterminada. AddIgnoreList no lo selecciona automáticamente. SelectIgnoreList("") deshabilita solo el filtro con nombre.
- Las reglas se aplican a nuevas búsquedas, incluidos los elementos cargados DESPUÉS de haber sido agregados. La matriz ya recibida y el resultado anterior FindCount no se recalculan hasta una nueva búsqueda. No seleccione una lista con la regla -1,-1 a menos que desee excluir todo.
- El filtro tiene en cuenta FindType/FindTypeEx/FindTypesArrayEx, FindList, FindAtCoord, FindNotoriety, Count/CountEx y selecciones extendidas GetMobiles, GetWorldItems, UseType, WaitTarget, Attack/AttackNearest/FindMan. includeIgnored=true, cuando esté incluido, omite tanto serial como type/hue. La enumeración completa GetContent/GetEquipment, GetWorldItems() sin argumentos, y la verbal FindMobile(humano,cerca,...) no utilizan estas reglas.
- GetIgnoreList devuelve solo serial agregado explícitamente; las filas de la lista nombrada no están incluidas en esta matriz. IgnoreReset borra todo el filtro serial, IgnoreOff(serial) elimina una excepción serial; las reglas nombradas se conservan. ClearIgnoreList() sin argumentos borra ambas vistas.
- El estado pertenece al estado general de los scripts del perfil del cliente; el cambio afecta a otros scripts con este estado. La configuración se incluye en la instantánea guardada. Después de cambiar las reglas, otro script ya puede realizar una búsqueda con la instantánea tomada anteriormente; la próxima búsqueda verá la actualización.
Cada ejemplo se puede guardar como un archivo independiente .csx y ejecutar en IDE. Las funciones de objeto UO y de espera proporcionan el anfitrión de la sesión de juego actual. Reemplace los nombres, coordenadas y direcciones de la demostración serial por los suyos propios.
Ejecuta este código en un archivo .csx independiente. Los argumentos aparecen en la llamada; sustituye los nombres, seriales y direcciones de ejemplo por los tuyos.
El comando es una instrucción independiente. El mensaje anterior indica el inicio de la llamada y no confirma una acción del servidor.
UO.Print("Calling UO.ClearIgnoreList");
UO.ClearIgnoreList();Parámetros y flujo de ejecución:
- Eliminado temporalmente, la conservación continúa excluyendo las batas. La lista normal serial no se borra.
UO.AddIgnoreList("temporary", 0x0EED);
UO.AddIgnoreList("keep", 0x1F03);
UO.ClearIgnoreList("temporary");
UO.SelectIgnoreList("keep");Parámetros y flujo de ejecución:
- Sin argumentos, se lanzan ambos tipos de excepciones. Las variables/matrices antiguas no se borran. El nuevo FindType regenera el resultado.
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;Parámetros y flujo de ejecución:
- Se eliminaron las antiguas reglas de clasificación antes de agregar otras nuevas: todo dorado y solo el color 0x0044 en la túnica. Entre comandos separados, otro script puede ver un estado intermedio.
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# distingue mayúsculas y minúsculas. Use el nombre UO exacto. Compare indicadores numéricos con 0; use bool solo si la firma devuelve bool.
Parámetros: Sin parámetros.
Resultado: void / Unit.
Durante la llamada:
-
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).
Código interno de implementación; no es un script independiente.
case "clearignorelist":
if (arguments.Length == 0)
{
IgnoreReset();
state.IgnoreTypeLists.Clear();
}
else
state.IgnoreTypeLists.Remove(Text(0));
break;Parámetros: list (Any)
Resultado: void / Unit.
Durante la llamada:
-
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).
Código interno de implementación; no es un script independiente.
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);Realiza una búsqueda y resume las unidades de los elementos encontrados.
-
type: Gráfico/type de un elemento (por ejemplo, 0x0EED), no serial. -1 o 0xFFFF - cualquier type. -
color— Tono del artículo; -1 o 0xFFFF - cualquier color. En Count(type) y CountGround(type), el valor predeterminado es 1. -
container- En Count(type,color,contenedor): my o numérico -1 - todos los elementos cuyo propietario raíz es self (incluidos equipos y bolsas anidadas); backpack/serial — el contenido del contenedor especificado es recursivo; UO.Ground(), explícito 0/"0", ground o 1 - elementos y móviles en tierra. En CountEx los numéricos -1 y 0xFFFFFFFF también significan terreno, pero el serial concreto solo significa contenido directo. CountEx toma backpack y nombra AddObject; El nombre desconocido provoca un error en el script. Verifique el serial resultante antes de llamar: un nulo explícito selecciona el terreno en lugar del contenedor que falta.
int — suma máxima(1, Cantidad) de elementos encontrados; Cada móvil agrega 1. 0 no hay coincidencias. Este es el número de unidades, no el número de pilas. FindItem, FindCount, FindFullQuantity y GetFoundItems se actualizan al mismo tiempo.
- Count, con uno o dos argumentos, busca artículos propiedad de self, incluidos equipos y bolsas anidadas. CountGround siempre busca terrenos, incluidos los móviles coincidentes, pero excluyendo a self.
- Count(type,color,serial) omite las bolsas anidadas, CountEx(type,color,serial) - solo contenido directo. Las restricciones FindDistance/FindVertical se aplican a la tierra; Ignore se aplica a los objetos encontrados.
- El resultado depende del contenido de los contenedores ya recibidos. No hay apertura automática ni solicitud del servidor para el inventario completo.
Cada ejemplo se puede guardar como un archivo independiente .csx y ejecutar en IDE. Las funciones de objeto UO y de espera proporcionan el anfitrión de la sesión de juego actual. Reemplace los nombres, coordenadas y direcciones de la demostración serial por los suyos propios.
Ejecuta este código en un archivo .csx independiente. Los argumentos aparecen en la llamada; sustituye los nombres, seriales y direcciones de ejemplo por los tuyos.
El resultado de una sola llamada se muestra en el diario. Un número no se convierte en bool; para un array se muestra su cantidad de elementos.
var result = UO.Count(0x0EED, -1, "backpack");
UO.Print("Count: " + Convert.ToString(result));Parámetros y flujo de ejecución:
- type=0x0EED, color=-1. Área - mochila; considere la diferencia de recursividad Count/CountEx.
- Un pie de 1000 dos unidades = 1000, no 1.
var units = UO.Count(0x0EED, -1, "backpack");
UO.Print("Units: " + Convert.ToString(units));Parámetros y flujo de ejecución:
- FindCount se lee inmediatamente después de Count, antes de otra búsqueda.
- Dos pilas de 50 producen 2 artículos y 100 unidades.
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;
}Parámetros y flujo de ejecución:
- 100 es el umbral de unidades en este ejemplo.
- Esta es una verificación instantánea, no una reserva de artículos. Las cantidades pueden cambiar entre revisión y transferencia.
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# distingue mayúsculas y minúsculas. Use el nombre UO exacto. Compare indicadores numéricos con 0; use bool solo si la firma devuelve bool.
Parámetros: type (Any)
Resultado: int / Integer.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.Count. -
InjectionScript.Runtime.InjectionApiUO.Count:Count(ResolveType(type), -1, -1). -
InjectionScript.Runtime.InjectionApiUO.ResolveType:ResolveType(type).
Código interno de implementación; no es un script independiente.
public int Count(InjectionValue type)
=> Count(ResolveType(type), -1, -1);Parámetros: type (Any), color (Any)
Resultado: int / Integer.
Durante la llamada:
-
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).
Código interno de implementación; no es un script independiente.
public int Count(InjectionValue type, InjectionValue color)
=> Count(ResolveType(type), NumberConversions.ToInt(color), 0);Parámetros: type (Any), color (Any), container (Any)
Resultado: int / Integer.
Durante la llamada:
-
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).
Código interno de implementación; no es un script independiente.
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);Cuenta las unidades directamente en el contenedor, sin recorrer bolsas anidadas. En el suelo también cuenta los personajes/NPC coincidentes, una unidad cada uno. FindDistance, FindVertical e Ignore siguen activos. No modifica FindItem, FindCount, FindFullQuantity ni GetFoundItems.
objType es el gráfico/type, no el número de serie; color es el tono. -1 o 0xFFFF acepta cualquier tipo/tono. container es el ID del contenedor: UO.Backpack() para la mochila, UO.Ground() para el suelo. Devuelve int: suma de max(1, Amount), 0 sin coincidencias. Solo cuenta contenidos ya recibidos; no abre bolsas automáticamente.
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);Realiza una búsqueda y resume las unidades de los elementos encontrados.
-
type: Gráfico/type de un elemento (por ejemplo, 0x0EED), no serial. -1 o 0xFFFF - cualquier type. -
color— Tono del artículo; -1 o 0xFFFF - cualquier color. En Count(type) y CountGround(type), el valor predeterminado es 1.
int — suma máxima(1, Cantidad) de elementos encontrados; Cada móvil agrega 1. 0 no hay coincidencias. Este es el número de unidades, no el número de pilas. FindItem, FindCount, FindFullQuantity y GetFoundItems se actualizan al mismo tiempo.
- Count, con uno o dos argumentos, busca artículos propiedad de self, incluidos equipos y bolsas anidadas. CountGround siempre busca terrenos, incluidos los móviles coincidentes, pero excluyendo a self.
- Count(type,color,serial) omite las bolsas anidadas, CountEx(type,color,serial) - solo contenido directo. Las restricciones FindDistance/FindVertical se aplican a la tierra; Ignore se aplica a los objetos encontrados.
- El resultado depende del contenido de los contenedores ya recibidos. No hay apertura automática ni solicitud del servidor para el inventario completo.
Cada ejemplo se puede guardar como un archivo independiente .csx y ejecutar en IDE. Las funciones de objeto UO y de espera proporcionan el anfitrión de la sesión de juego actual. Reemplace los nombres, coordenadas y direcciones de la demostración serial por los suyos propios.
Ejecuta este código en un archivo .csx independiente. Los argumentos aparecen en la llamada; sustituye los nombres, seriales y direcciones de ejemplo por los tuyos.
El resultado de una sola llamada se muestra en el diario. Un número no se convierte en bool; para un array se muestra su cantidad de elementos.
var result = UO.CountGround(0x0EED, -1);
UO.Print("CountGround: " + Convert.ToString(result));Parámetros y flujo de ejecución:
- type=0x0EED, color=-1. El área es el terreno al lado del personaje.
- Un pie de 1000 dos unidades = 1000, no 1.
var units = UO.CountGround(0x0EED, -1);
UO.Print("Units: " + Convert.ToString(units));Parámetros y flujo de ejecución:
- FindCount se lee inmediatamente después de Count, antes de otra búsqueda.
- Dos pilas de 50 producen 2 artículos y 100 unidades.
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;
}Parámetros y flujo de ejecución:
- 100 es el umbral de unidades en este ejemplo.
- Esta es una verificación instantánea, no una reserva de artículos. Las cantidades pueden cambiar entre revisión y transferencia.
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# distingue mayúsculas y minúsculas. Use el nombre UO exacto. Compare indicadores numéricos con 0; use bool solo si la firma devuelve bool.
Parámetros: type (Any)
Resultado: int / Integer.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.CountGround. -
InjectionScript.Runtime.InjectionApiUO.CountGround:CountGround(type, new InjectionValue(-1)).
Código interno de implementación; no es un script independiente.
public int CountGround(InjectionValue type)
=> CountGround(type, new InjectionValue(-1));Parámetros: type (Any), color (Any)
Resultado: int / Integer.
Durante la llamada:
-
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).
Código interno de implementación; no es un script independiente.
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);Elimina todas las definiciones que coinciden con la lista especificada, lista/type o lista/type/prefijo de color. Permite eliminar un tipo de elemento o un hue específico, manteniendo el resto de reglas establecidas.
-
list: el nombre del conjunto de reglas, por ejemplo, "botín". Pase la cadena sin |: este carácter se utiliza como separador dentro del registro. El nombre no distingue entre mayúsculas y minúsculas. Este no es un contenedor serial ni una serie de elementos encontrados. -
type- Gráfico/type de un elemento o body mobile, no su serial. Normalmente int 0...65535, incluido 0x0EED; -1 o 0xFFFF significa cualquier type al buscar. Proporcione un valor por entrada. Se agregan varios tipos mediante llamadas separadas. Para eliminar, se compara el texto del campo; omitir elimina todas las entradas de nombres. -
color— Tono de un objeto/cuerpo, no RGB. int 0..65535; 0 - regular hue 0, -1 o 0xFFFF - cualquiera. En AddFindList, omitir color significa cualquier hue al realizar la búsqueda. Para eliminar, este es un campo literal, no un comodín: -1 solo elimina entradas con -1 almacenadas explícitamente. Omitir el color elimina todas las entradas de la lista/type independientemente de hue.
void: Sin valor de retorno. No asigne la llamada a una variable y no la pruebe en true/1. Se puede inferir el estado de las definiciones UO.InfoFindList(); la búsqueda en sí se inicia por separado a través de UO.FindList().
- Las definiciones están en el estado del tiempo de ejecución del script dado. Un otro tiempo de ejecución independiente tiene su propio conjunto; cerrar la ventana IDE no borra estas reglas. Este no es un archivo de configuración ni una lista de objetos globales del juego.
- AddFindList agrega la entrada al final; las repeticiones no se eliminan. Para reaprovisionar su kit, primero llame a ClearFindList("nombre"). Cambiar las definiciones no borra FindItem/FindCount/GetFoundItems que ya se han recibido.
- El registro almacena campos de texto. El literal numérico 0x0EED se almacena como "3821", la cadena "0x0EED" se almacena como "0x0EED". La búsqueda convierte ambas opciones en un número y DeleteFindList compara el texto almacenado. Utilice el mismo formulario al agregar y eliminar.
- El nombre desconocido en FindList no es un conjunto registrado vacío: el motor intenta analizarlo como una lista de tipos numéricos. Un nombre no numérico provoca un error de conversión. Después de eliminar la última entrada, cree un nuevo conjunto antes de buscar ese nombre.
- DeleteFindList(lista,type,-1) no elimina la entrada de dos parámetros AddFindList(lista,type): no tiene un tercer campo. Todos los duplicados coincidentes se eliminan; una coincidencia inexistente no cambia nada.
Cada ejemplo se puede guardar como un archivo independiente .csx y ejecutar en IDE. Las funciones de objeto UO y de espera proporcionan el anfitrión de la sesión de juego actual. Reemplace los nombres, coordenadas y direcciones de la demostración serial por los suyos propios.
Ejecuta este código en un archivo .csx independiente. Los argumentos aparecen en la llamada; sustituye los nombres, seriales y direcciones de ejemplo por los tuyos.
El comando es una instrucción independiente. El mensaje anterior indica el inicio de la llamada y no confirma una acción del servidor.
UO.AddFindList("simple_loot", 0x0EED);
UO.Print("Calling UO.DeleteFindList");
UO.DeleteFindList("simple_loot");Parámetros y flujo de ejecución:
- Dos argumentos eliminan ambas entradas de oro: tanto hue como 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;Parámetros y flujo de ejecución:
- Tres argumentos: colores, graphic dorado, específico hue. Todo lo que queda es hue 0. En otros conjuntos, este graphic no se elimina.
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;
}Parámetros y flujo de ejecución:
- Un argumento elimina todas las entradas antiguas. Si las reglas fueron especificadas por la línea "0x0190", elimínelas con la misma línea o elimine el conjunto por nombre.
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# distingue mayúsculas y minúsculas. Use el nombre UO exacto. Compare indicadores numéricos con 0; use bool solo si la firma devuelve bool.
Parámetros: list (Any)
Resultado: void / Unit.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::LegacyList:LegacyList("AddFindList"). -
InjectionScript.Runtime.InjectionApiUO.LegacyListEntryMatches:LegacyListEntryMatches(value, arguments).
Código interno de implementación; no es un script independiente.
case "deletefindlist":
LegacyList("AddFindList").RemoveAll(value => LegacyListEntryMatches(value,
arguments));
break;Parámetros: list (Any), type (Any)
Resultado: void / Unit.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::LegacyList:LegacyList("AddFindList"). -
InjectionScript.Runtime.InjectionApiUO.LegacyListEntryMatches:LegacyListEntryMatches(value, arguments).
Código interno de implementación; no es un script independiente.
case "deletefindlist":
LegacyList("AddFindList").RemoveAll(value => LegacyListEntryMatches(value,
arguments));
break;Parámetros: list (Any), type (Any), color (Any)
Resultado: void / Unit.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::LegacyList:LegacyList("AddFindList"). -
InjectionScript.Runtime.InjectionApiUO.LegacyListEntryMatches:LegacyListEntryMatches(value, arguments).
Código interno de implementación; no es un script independiente.
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);Elimina todo el filtro con nombre o las reglas seleccionadas dentro de él. Utilícelo cuando sea necesario volver a incluir un type o hue en particular en la búsqueda, manteniendo otras excepciones.
-
list— Nombre arbitrario no vacío, por ejemplo "loot_skip". El nombre no distingue entre mayúsculas y minúsculas. Este no es el nombre del artículo, ni el contenedor serial, ni el nombre de FindList. -
type- Gráfico/type de un artículo o body mobile. Por ejemplo, 0x0EED es oro, 0x0191 es un cuerpo humano femenino. Número o cadena numérica ("0x0EED", "3821"); -1/otro negativo/0xFFFF - cualquier type. No se permiten valores mayores a 65535. Para múltiples type agregue múltiples reglas. Si no se transfiere, elimine la lista completa; si se aprueba sin color, todas las reglas son exactamente esta type. -
color- Tono: 0 - solo sin color, 0x0044 - ejemplo de color exacto; negativo o 0xFFFF - cualquiera. No se permiten valores mayores a 65535. En Agregar, el valor predeterminado es 1. El tipo y hue dentro de una regla están conectados por una condición Y; reglas diferentes - O. Al eliminar, establece la máscara de regla exacta; -1 elimina la regla de "cualquier color" en lugar de todos los colores individuales.
void - sin valor. Úselo en una línea separada sin var resultado = y sin marcar =true. El comando cambia el filtro local; no devuelve el número de elementos y no envía nada al servidor.
- El número 3821 y la cadena "0x0EED" representan uno type. Eliminar una regla inexistente no cambia nada. El nombre de la lista seleccionada se conserva incluso si se elimina la lista misma; se vuelve vacío.
- La lista nombrada contiene las reglas graphic/type + hue, y la Ignore normal contiene la serial específica. Son filtros diferentes: se combinan cuando la búsqueda los admite. Los objetos permanecen visibles y accesibles para dirigir UseObject/MoveItem; esto no es Hide ni prohibición de acciones.
- El nombre de la lista no distingue entre mayúsculas y minúsculas; Se eliminan los espacios de los bordes. Una lista con nombre está activa, inicialmente predeterminada. AddIgnoreList no lo selecciona automáticamente. SelectIgnoreList("") deshabilita solo el filtro con nombre.
- Las reglas se aplican a nuevas búsquedas, incluidos los elementos cargados DESPUÉS de haber sido agregados. La matriz ya recibida y el resultado anterior FindCount no se recalculan hasta una nueva búsqueda. No seleccione una lista con la regla -1,-1 a menos que desee excluir todo.
- El filtro tiene en cuenta FindType/FindTypeEx/FindTypesArrayEx, FindList, FindAtCoord, FindNotoriety, Count/CountEx y selecciones extendidas GetMobiles, GetWorldItems, UseType, WaitTarget, Attack/AttackNearest/FindMan. includeIgnored=true, cuando esté incluido, omite tanto serial como type/hue. La enumeración completa GetContent/GetEquipment, GetWorldItems() sin argumentos, y la verbal FindMobile(humano,cerca,...) no utilizan estas reglas.
- GetIgnoreList devuelve solo serial agregado explícitamente; las filas de la lista nombrada no están incluidas en esta matriz. IgnoreReset borra todo el filtro serial, IgnoreOff(serial) elimina una excepción serial; las reglas nombradas se conservan. ClearIgnoreList() sin argumentos borra ambas vistas.
- El estado pertenece al estado general de los scripts del perfil del cliente; el cambio afecta a otros scripts con este estado. La configuración se incluye en la instantánea guardada. Después de cambiar las reglas, otro script ya puede realizar una búsqueda con la instantánea tomada anteriormente; la próxima búsqueda verá la actualización.
Cada ejemplo se puede guardar como un archivo independiente .csx y ejecutar en IDE. Las funciones de objeto UO y de espera proporcionan el anfitrión de la sesión de juego actual. Reemplace los nombres, coordenadas y direcciones de la demostración serial por los suyos propios.
Ejecuta este código en un archivo .csx independiente. Los argumentos aparecen en la llamada; sustituye los nombres, seriales y direcciones de ejemplo por los tuyos.
El comando es una instrucción independiente. El mensaje anterior indica el inicio de la llamada y no confirma una acción del servidor.
UO.AddIgnoreList("simple_skip", 0x0EED);
UO.Print("Calling UO.DeleteIgnoreList");
UO.DeleteIgnoreList("simple_skip");Parámetros y flujo de ejecución:
- Sólo se elimina lo temporal. Se conservan otras listas y Ignore(serial).
UO.AddIgnoreList("temporary", 0x0EED);
UO.SelectIgnoreList("temporary");
UO.DeleteIgnoreList("temporary");
var gold = UO.FindType(0x0EED, -1, "ground");Parámetros y flujo de ejecución:
- Se han eliminado ambas reglas de la túnica, pero la regla del oro permanece. La regla general -1,type-cualquiera de otro tipo, si se agrega, no se elimina.
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;
}Parámetros y flujo de ejecución:
- 68 = 0x0044: las formas numéricas son las mismas. Las túnicas sin teñir quedan excluidas. Si también hay una regla para este type con hue=-1, seguirá excluyendo el color 68.
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# distingue mayúsculas y minúsculas. Use el nombre UO exacto. Compare indicadores numéricos con 0; use bool solo si la firma devuelve bool.
Parámetros: list (Any)
Resultado: void / Unit.
Durante la llamada:
-
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]).
Código interno de implementación; no es un script independiente.
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;Parámetros: list (Any), type (Any)
Resultado: void / Unit.
Durante la llamada:
-
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]).
Código interno de implementación; no es un script independiente.
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;Parámetros: list (Any), type (Any), color (Any)
Resultado: void / Unit.
Durante la llamada:
-
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]).
Código interno de implementación; no es un script independiente.
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);Encuentra el mobile cargado más cercano a uno de los cuerpos graphic dados. Se utiliza para buscar un tipo específico de criatura. Este equipo no busca elementos en el cofre ni en el suelo: requieren FindType/FindList.
-
distance— Radio horizontal en celdas inclusive: 5 permite la distancia 0..5. La distancia es máxima (abs (dx), abs (dy)), por lo que la diagonal adyacente también es 1. De forma predeterminada o si el número es negativo, se toma UO.FindDistance() en lugar de una búsqueda ilimitada. 0 sale de la misma celda X/Y. No la longitud de la ruta; Los obstáculos y los suelos no se controlan con este parámetro. -
type: gráfico del cuerpo mobile, no del objeto serial ni del graphic. Número 0..65534 o cadena hexadecimal, por ejemplo 0x003B. Se combinan varios valores como OR: el número 5, la cadena "5|6" o una matriz plana de números/cadenas numéricas. Puede combinar una matriz plana y argumentos individuales. El orden de los valores no establece prioridad. Se excluyen los tokens no numéricos; una máscara completamente errónea no encuentra nada. Las matrices anidadas no son números y se ignoran como elementos no válidos; No se admiten máscaras multidimensionales. -
type2— Máscara adicional opcional type; mismas formas que type. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
type3— Máscara adicional opcional type; mismas formas que type. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
type4— Máscara adicional opcional type; mismas formas que type. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
type5— Máscara adicional opcional type; mismas formas que type. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
type6— Máscara adicional opcional type; mismas formas que type. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
type7— Máscara adicional opcional type; mismas formas que type. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
type8— Máscara adicional opcional type; mismas formas que type. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
type9— Máscara adicional opcional type; mismas formas que type. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
type10— Máscara adicional opcional type; mismas formas que type. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
type11— Máscara adicional opcional type; mismas formas que type. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
type12— Máscara adicional opcional type; mismas formas que type. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
type13— Máscara adicional opcional type; mismas formas que type. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
type14— Máscara adicional opcional type; mismas formas que type. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
type15— Máscara adicional opcional type; mismas formas que type. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
type16— Máscara adicional opcional type; mismas formas que type. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
type17— Máscara adicional opcional type; mismas formas que type. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
type18— Máscara adicional opcional type; mismas formas que type. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
type19— Máscara adicional opcional type; mismas formas que type. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
type20— Máscara adicional opcional type; mismas formas que type. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
type21— Máscara adicional opcional type; mismas formas que type. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
type22— Máscara adicional opcional type; mismas formas que type. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
type23— Máscara adicional opcional type; mismas formas que type. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
type24— Máscara adicional opcional type; mismas formas que type. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
type25— Máscara adicional opcional type; mismas formas que type. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
type26— Máscara adicional opcional type; mismas formas que type. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
type27— Máscara adicional opcional type; mismas formas que type. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
type28— Máscara adicional opcional type; mismas formas que type. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
type29— Máscara adicional opcional type; mismas formas que type. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
type30— Máscara adicional opcional type; mismas formas que type. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
type31— Máscara adicional opcional type; mismas formas que type. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad.
int - serial del mobile seleccionado o 0 si no hay ninguno adecuado. Esto es ID, no graphic/type, el número de objetos encontrados o true/false: use if (found!= 0) {...}, not found == true. Un ID encontrado se puede pasar a UO.AddObject, UO.Attack o UO.Follow, pero cada acción del juego se llama por separado.
- La búsqueda sólo lee móviles ya descargados por el cliente; Se excluyen los registros destruidos y Ignore. La llamada en sí no abre el objetivo, no ataca, no va al objetivo y no solicita objetos remotos del servidor.
- La distancia es máxima geométrica (abs(dx),abs(dy)), no la longitud de la ruta. La proximidad no garantiza la ausencia de una pared ni la accesibilidad de otro piso. La condición puede cambiar al regresar.
- La vida, el sigilo y la línea de visión no se comprueban automáticamente. Si son importantes, use GetMobiles con aliveOnly/visibleOnly o sus propios controles. Tener un servidor con estado Enemigo no hace que ningún NPC sea elegible.
- No cambia FindItem, FindCount o GetFoundItems. Estos campos pueden contener los resultados de otro comando anterior: use el ID devuelto directamente.
- De 2 a 32 argumentos: distancia y a 31 máscara type. Una matriz plana le permite pasar más valores. Cada valor posterior después de type sigue siendo body/type, no hue ni notoriedad.
- No hay ningún filtro de Z, notoriedad, raza de jugador o clase de vestimenta para este comando. Self NO está excluido: si tu propio graphic está incluido en la máscara y self no está en Ignore, puedes obtener tu serial a una distancia de 0.
- Selecciona el más cercano; La misma distancia está permitida por un serial más pequeño. -1/any/0xFFFF/máscara vacía sin tipos concretos da 0: el comando requiere al menos un type explícito. Se ignoran los comodines type casi específicos.
Cada ejemplo se puede guardar como un archivo independiente .csx y ejecutar en IDE. Las funciones de objeto UO y de espera proporcionan el anfitrión de la sesión de juego actual. Reemplace los nombres, coordenadas y direcciones de la demostración serial por los suyos propios.
Ejecuta este código en un archivo .csx independiente. Los argumentos aparecen en la llamada; sustituye los nombres, seriales y direcciones de ejemplo por los tuyos.
El resultado de una sola llamada se muestra en el diario. Un número no se convierte en bool; para un array se muestra su cantidad de elementos.
var result = UO.FindAnyType(10, 0x003B);
UO.Print("FindAnyType: " + Convert.ToString(result));Parámetros y flujo de ejecución:
- 0x003B - body, no ID. Criatura devuelta: ID del mobile específico encontrado. El equipo no comprueba Z, salud ni agresividad.
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;Parámetros y flujo de ejecución:
- Se combinan cuerpos y 0x000C separados. Si se encuentra self, este ejemplo simplemente omitirá la acción; No está buscando al próximo candidato. Para excluir self en la consulta misma, utilice el filtro correspondiente 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;Parámetros y flujo de ejecución:
- body - graphic, radio - límite de búsqueda X/Y. El ayudante devuelve la distancia o su propio código -1; UO.FindAnyType mismo devuelve serial o 0.
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# distingue mayúsculas y minúsculas. Use el nombre UO exacto. Compare indicadores numéricos con 0; use bool solo si la firma devuelve bool.
Parámetros: distance (Any), type (Any)
Resultado: int / Integer.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))Parámetros: distance (Any), type (Any), type2 (Any)
Resultado: int / Integer.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))Parámetros: distance (Any), type (Any), type2 (Any), type3 (Any)
Resultado: int / Integer.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))Parámetros: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any)
Resultado: int / Integer.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any)
Resultado: int / Integer.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any)
Resultado: int / Integer.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any)
Resultado: int / Integer.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any)
Resultado: int / Integer.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any)
Resultado: int / Integer.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any)
Resultado: int / Integer.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any)
Resultado: int / Integer.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: 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)
Resultado: int / Integer.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: 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)
Resultado: int / Integer.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: 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)
Resultado: int / Integer.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: 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)
Resultado: int / Integer.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: 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)
Resultado: int / Integer.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: 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)
Resultado: int / Integer.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: 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)
Resultado: int / Integer.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: 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)
Resultado: int / Integer.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: 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)
Resultado: int / Integer.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: 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)
Resultado: int / Integer.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: 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)
Resultado: int / Integer.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: 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)
Resultado: int / Integer.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: 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)
Resultado: int / Integer.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: 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)
Resultado: int / Integer.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: 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)
Resultado: int / Integer.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: 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)
Resultado: int / Integer.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: 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)
Resultado: int / Integer.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: 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)
Resultado: int / Integer.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: 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)
Resultado: int / Integer.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: 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)
Resultado: int / Integer.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
int UO.FindAtCoord(object? x, object? y);Busca objetos del mundo cargados en un mosaico X/Y exacto del mapa actual.
-
x— coordenada mundial horizontal, int 0...65535. Obligatorio; Estos no son píxeles de ventana contenedora. -
yes la coordenada mundial vertical, int 0...65535. Requerido. No hay opciones adicionales para Z, mapa, type o radio.
int - serial el primer elemento coincidente en la lista de resultados de ese cliente. 0: no hay coincidencias, carácter faltante/eliminado o coordenadas fuera de 0...65535. Este es el ID del objeto, no el type, cantidad o bool. Se guardan todos los bits 32; marque != 0, no == true y no > 0. El mismo ID se escribe en FindItem().
- Comprueba los elementos no eliminados en el terreno y en el móvil, incluido el propio personaje en esta celda. Se excluyen los contenidos de contenedores y artículos desgastados: sus X/Y no pueden considerarse coordenadas mundiales. Las series están excluidas de la lista Ignore.
- Todas las alturas Z en X/Y dado son adecuadas. FindDistance y FindVertical no limitan esta búsqueda a la celda exacta. Sólo son visibles los objetos cargados del mundo actual; Los mapas horizontales, estáticos y otros no se cargan. Los paquetes no se envían, el destino no se abre, los elementos no se mueven.
- Cada llamada borra primero la búsqueda anterior. FindCount() cuenta objetos, FindFullQuantity() suma unidades en pilas (Mobile agrega uno), GetFoundItems() devuelve las encontradas serial. Primero se busca el artículo y luego el móvil; dentro de las colecciones, se aplica el orden de enumeración actual. Guarde la lista para la próxima búsqueda que reemplace los resultados.
- El orden de selección y los filtros anteriores describen la implementación de este cliente.
Cada ejemplo se puede guardar como un archivo independiente .csx y ejecutar en IDE. Las funciones de objeto UO y de espera proporcionan el anfitrión de la sesión de juego actual. Reemplace los nombres, coordenadas y direcciones de la demostración serial por los suyos propios.
Ejecuta este código en un archivo .csx independiente. Los argumentos aparecen en la llamada; sustituye los nombres, seriales y direcciones de ejemplo por los tuyos.
El resultado de una sola llamada se muestra en el diario. Un número no se convierte en bool; para un array se muestra su cantidad de elementos.
var result = UO.FindAtCoord(1445, 1690);
UO.Print("FindAtCoord: " + Convert.ToString(result));Parámetros y flujo de ejecución:
- 1445 y 1690 son ejemplos de X/Y del mundo: reemplázalos con tu celular. id guarda uno serial; HEX lo genera en hexadecimal. != 0 comprueba la presencia del resultado, no la cantidad.
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;Parámetros y flujo de ejecución:
- x/y se leen del carácter; ids guarda la lista de búsquedas actuales. Cada identificación representa un objeto, incluida la pila completa. GetType(id) lee graphic/body. Los artículos no se seleccionan ni se utilizan.
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");Parámetros y flujo de ejecución:
- CountGraphicAt(x, y, graphic) busca una celda una vez, recorre en iteración el ID guardado y cuenta los objetos con los gráficos deseados. graphic=0x0EED – oro. Se devuelve el número de objetos/pilas, no la suma de unos ni true/false; una pila hace una. La función está completamente definida después de Main.
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# distingue mayúsculas y minúsculas. Use el nombre UO exacto. Compare indicadores numéricos con 0; use bool solo si la firma devuelve bool.
Parámetros: x (Any), y (Any)
Resultado: int / Integer.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.FindAtCoord:bridge.FindAtCoord(Arg(0), Arg(1)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0).
Código interno de implementación; no es un script independiente.
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);Encuentra el otro personaje más cercano/NPC con uno de los estados de notoriedad especificados. Útil cuando primero necesitas seleccionar un enemigo, aliado u objetivo observado, y solo entonces decidir por separado si atacarlo o seguirlo.
-
distance— Radio horizontal en celdas inclusive: 5 permite la distancia 0..5. La distancia es máxima (abs (dx), abs (dy)), por lo que la diagonal adyacente también es 1. De forma predeterminada o si el número es negativo, se toma UO.FindDistance() en lugar de una búsqueda ilimitada. 0 sale de la misma celda X/Y. No la longitud de la ruta; Los obstáculos y los suelos no se controlan con este parámetro. -
notoriety— Estado de relación con el personaje recibido del servidor: 0 — desconocido, 1 — Inocente, 2 — Aliado, 3 — Gris, 4 — Criminal, 5 — Enemigo, 6 — Asesino, 7 - Invulnerable. El número significa un estado; "5|6" o una serie de números: cualquiera de los anteriores. No es el color de la ropa ni la clase. Un número negativo (normalmente -1), 0xFFFF, "cualquiera", una cadena vacía o una matriz vacía desactivan este filtro por separado. Una cadena no válida sin números válidos no encuentra a nadie. El orden de los estados no establece prioridad. El filtro 5 selecciona Enemigo en lugar de seleccionar automáticamente cualquier NPC/monstruo; los valores reales dependen del servidor. Se combinan varios valores como OR: el número 5, la cadena "5|6" o una matriz plana de números/cadenas numéricas. Puede combinar una matriz plana y argumentos individuales. El orden de valores no da prioridad. Se excluyen los tokens no numéricos; una máscara completamente errónea no encuentra nada. Las matrices anidadas no son números y se ignoran como elementos no válidos; No se admiten máscaras multidimensionales. -
notoriety2- Máscara de notoriedad adicional opcional; las mismas formas que la notoriedad. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
notoriety3- Máscara de notoriedad adicional opcional; las mismas formas que la notoriedad. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
notoriety4- Máscara de notoriedad adicional opcional; las mismas formas que la notoriedad. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
notoriety5- Máscara de notoriedad adicional opcional; las mismas formas que la notoriedad. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
notoriety6- Máscara de notoriedad adicional opcional; las mismas formas que la notoriedad. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
notoriety7- Máscara de notoriedad adicional opcional; las mismas formas que la notoriedad. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
notoriety8- Máscara de notoriedad adicional opcional; las mismas formas que la notoriedad. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
notoriety9- Máscara de notoriedad adicional opcional; las mismas formas que la notoriedad. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
notoriety10- Máscara de notoriedad adicional opcional; las mismas formas que la notoriedad. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
notoriety11- Máscara de notoriedad adicional opcional; las mismas formas que la notoriedad. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
notoriety12- Máscara de notoriedad adicional opcional; las mismas formas que la notoriedad. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
notoriety13- Máscara de notoriedad adicional opcional; las mismas formas que la notoriedad. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
notoriety14- Máscara de notoriedad adicional opcional; las mismas formas que la notoriedad. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
notoriety15- Máscara de notoriedad adicional opcional; las mismas formas que la notoriedad. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
notoriety16- Máscara de notoriedad adicional opcional; las mismas formas que la notoriedad. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
notoriety17- Máscara de notoriedad adicional opcional; las mismas formas que la notoriedad. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
notoriety18- Máscara de notoriedad adicional opcional; las mismas formas que la notoriedad. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
notoriety19- Máscara de notoriedad adicional opcional; las mismas formas que la notoriedad. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
notoriety20- Máscara de notoriedad adicional opcional; las mismas formas que la notoriedad. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
notoriety21- Máscara de notoriedad adicional opcional; las mismas formas que la notoriedad. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
notoriety22- Máscara de notoriedad adicional opcional; las mismas formas que la notoriedad. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
notoriety23- Máscara de notoriedad adicional opcional; las mismas formas que la notoriedad. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
notoriety24- Máscara de notoriedad adicional opcional; las mismas formas que la notoriedad. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
notoriety25- Máscara de notoriedad adicional opcional; las mismas formas que la notoriedad. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
notoriety26- Máscara de notoriedad adicional opcional; las mismas formas que la notoriedad. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
notoriety27- Máscara de notoriedad adicional opcional; las mismas formas que la notoriedad. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
notoriety28- Máscara de notoriedad adicional opcional; las mismas formas que la notoriedad. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
notoriety29- Máscara de notoriedad adicional opcional; las mismas formas que la notoriedad. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
notoriety30- Máscara de notoriedad adicional opcional; las mismas formas que la notoriedad. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad. -
notoriety31- Máscara de notoriedad adicional opcional; las mismas formas que la notoriedad. Combina con los anteriores mediante OR, no establece un radio separado, hue, Z ni prioridad.
int - serial del mobile seleccionado o 0 si no hay ninguno adecuado. Esto es ID, no graphic/type, el número de objetos encontrados o true/false: use if (found!= 0) {...}, not found == true. Un ID encontrado se puede pasar a UO.AddObject, UO.Attack o UO.Follow, pero cada acción del juego se llama por separado.
- La búsqueda sólo lee móviles ya descargados por el cliente; Se excluyen los registros destruidos y Ignore. La llamada en sí no abre el objetivo, no ataca, no va al objetivo y no solicita objetos remotos del servidor.
- La distancia es máxima geométrica (abs(dx),abs(dy)), no la longitud de la ruta. La proximidad no garantiza la ausencia de una pared ni la accesibilidad de otro piso. La condición puede cambiar al regresar.
- La vida, el sigilo y la línea de visión no se comprueban automáticamente. Si son importantes, use GetMobiles con aliveOnly/visibleOnly o sus propios controles. Tener un servidor con estado Enemigo no hace que ningún NPC sea elegible.
- No cambia FindItem, FindCount o GetFoundItems. Estos campos pueden contener los resultados de otro comando anterior: use el ID devuelto directamente.
- Al menos dos argumentos: distancia, notoriedad. Máximo 32: radio y hasta máscara 31. Para obtener más valores, pase la matriz plana como un argumento. Eliminando filtro: -1/any/0xFFFF/cadena vacía o matriz vacía por separado. Si los códigos específicos aparecen uno al lado del otro, conservan la restricción.
- Excluye self. Cumple con UO.FindVertical() como límite de la diferencia Z; no hay ningún parámetro maxZ en este comando. Siempre elige el más cercano, en caso de igualdad, el más pequeño serial. El argumento después de la notoriedad sigue siendo notoriedad, no más cercano y no body.
Cada ejemplo se puede guardar como un archivo independiente .csx y ejecutar en IDE. Las funciones de objeto UO y de espera proporcionan el anfitrión de la sesión de juego actual. Reemplace los nombres, coordenadas y direcciones de la demostración serial por los suyos propios.
Ejecuta este código en un archivo .csx independiente. Los argumentos aparecen en la llamada; sustituye los nombres, seriales y direcciones de ejemplo por los tuyos.
El resultado de una sola llamada se muestra en el diario. Un número no se convierte en bool; para un array se muestra su cantidad de elementos.
var result = UO.FindByNotoriety(12, "5|6");
UO.Print("FindByNotoriety: " + Convert.ToString(result));Parámetros y flujo de ejecución:
- El oponente salvado se puede utilizar más tarde; este ejemplo no ataca. El FindVertical actual también se aplica incluso si el objetivo está cerca en X/Y.
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;Parámetros y flujo de ejecución:
- permitido contiene Enemigo, un 6 separado agrega Asesino. Los estados se combinan en lugar de ordenarse por prioridad. El ejemplo solicita un ataque a uno encontrado vivo mobile; Las reglas del servidor determinan lo que es aceptable.
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;Parámetros y flujo de ejecución:
- radio: radio X/Y en celdas. FindVertical(0) requiere la misma Z; Esta no es una inspección de pisos o paredes. La función devuelve ID/0 y finalmente guarda la configuración para otras partes del script.
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# distingue mayúsculas y minúsculas. Use el nombre UO exacto. Compare indicadores numéricos con 0; use bool solo si la firma devuelve bool.
Parámetros: distance (Any), notoriety (Any)
Resultado: int / Integer.
Durante la llamada:
-
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().
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))Parámetros: distance (Any), notoriety (Any), notoriety2 (Any)
Resultado: int / Integer.
Durante la llamada:
-
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().
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any)
Resultado: int / Integer.
Durante la llamada:
-
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().
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any)
Resultado: int / Integer.
Durante la llamada:
-
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().
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any)
Resultado: int / Integer.
Durante la llamada:
-
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().
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any)
Resultado: int / Integer.
Durante la llamada:
-
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().
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any)
Resultado: int / Integer.
Durante la llamada:
-
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().
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any)
Resultado: int / Integer.
Durante la llamada:
-
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().
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any)
Resultado: int / Integer.
Durante la llamada:
-
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().
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any)
Resultado: int / Integer.
Durante la llamada:
-
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().
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any)
Resultado: int / Integer.
Durante la llamada:
-
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().
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: 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)
Resultado: int / Integer.
Durante la llamada:
-
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().
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: 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)
Resultado: int / Integer.
Durante la llamada:
-
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().
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: 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)
Resultado: int / Integer.
Durante la llamada:
-
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().
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: 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)
Resultado: int / Integer.
Durante la llamada:
-
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().
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: 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)
Resultado: int / Integer.
Durante la llamada:
-
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().
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: 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)
Resultado: int / Integer.
Durante la llamada:
-
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().
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: 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)
Resultado: int / Integer.
Durante la llamada:
-
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().
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: 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)
Resultado: int / Integer.
Durante la llamada:
-
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().
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: 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)
Resultado: int / Integer.
Durante la llamada:
-
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().
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: 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)
Resultado: int / Integer.
Durante la llamada:
-
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().
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: 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)
Resultado: int / Integer.
Durante la llamada:
-
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().
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: 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)
Resultado: int / Integer.
Durante la llamada:
-
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().
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: 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)
Resultado: int / Integer.
Durante la llamada:
-
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().
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: 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)
Resultado: int / Integer.
Durante la llamada:
-
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().
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: 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)
Resultado: int / Integer.
Durante la llamada:
-
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().
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: 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)
Resultado: int / Integer.
Durante la llamada:
-
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().
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: 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)
Resultado: int / Integer.
Durante la llamada:
-
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().
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: 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)
Resultado: int / Integer.
Durante la llamada:
-
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().
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: 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)
Resultado: int / Integer.
Durante la llamada:
-
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().
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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)
Parámetros: 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)
Resultado: int / Integer.
Durante la llamada:
-
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().
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
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);Lee el número de unos en la pila especificada si se pasa ID. La forma sin argumentos conserva un significado separado: el número de objetos de la última búsqueda.
-
id— Serie/ID de un objeto específico: int, cadena decimal/hexadecimal o alias de conjunto self, backpack, lasttarget, lastobject o nombre AddObject. Esto no es graphic/type. Argumento opcional. Cuando se pasa ID, se lee la cantidad actual de este artículo en particular. El alias finditem selecciona explícitamente el primer resultado de la búsqueda. Sin argumento, se devuelve el número de objetos encontrados.
int: FindCount(id) — número de unidades en la pila especificada (Cantidad); un elemento único normal da 1, un elemento desconocido/eliminado, un alias erróneo o un móvil da 0. FindCount() sin ID es el número de objetos en la última búsqueda: una pila se considera un objeto independientemente de la Cantidad. Por ejemplo, tres pilas de 20, 50 y 100: FindCount()=3, FindCount(ID de la segunda pila)=50, FindFullQuantity()=170.
- FindCount(id) equivale a leer GetQuantity(id), no activa una búsqueda y no modifica FindItem/FindCount()/FindFullQuantity/GetFoundItems.
- ID significa serial de un artículo en particular, no type. El cambio en la cantidad se refleja la próxima vez que se llame a FindCount(id). La cantidad del artículo eliminado es 0; no busca automáticamente otra pila.
- Se conserva la compatibilidad original sin argumentos: FindCount() cuenta objetos. FindQuantity() lee una pila encontrada, FindFullQuantity() suma las unidades de la última búsqueda.
- Los datos pertenecen a la última búsqueda normal de este script. FindType con argumentos 1–5, FindTypeEx, Count/CountEx/CountGround reemplaza los resultados. No se requieren comandos avanzados de caracteres filtrados para cambiar esta instantánea.
- Una nueva búsqueda sin coincidencias borra FindItem, FindCount y FindFullQuantity y borra GetFoundItems. La lectura de un resultado por sí sola no desencadena una nueva búsqueda.
Cada ejemplo se puede guardar como un archivo independiente .csx y ejecutar en IDE. Las funciones de objeto UO y de espera proporcionan el anfitrión de la sesión de juego actual. Reemplace los nombres, coordenadas y direcciones de la demostración serial por los suyos propios.
Ejecuta este código en un archivo .csx independiente. Los argumentos aparecen en la llamada; sustituye los nombres, seriales y direcciones de ejemplo por los tuyos.
El resultado de una sola llamada se muestra en el diario. Un número no se convierte en bool; para un array se muestra su cantidad de elementos.
UO.FindType(0x0EED, -1, "backpack");
var result = UO.FindCount();
UO.Print("FindCount: " + Convert.ToString(result));Parámetros y flujo de ejecución:
- id=0x40001234 es un ejemplo de una pila serial. Reemplace el ID del artículo con el suyo.
- Una pila de unidades 50 devolverá 50; artículo único - 1; desconocido ID - 0.
var amount = UO.FindCount("0x40001234");
UO.Print("Units: " + Convert.ToString(amount));Parámetros y flujo de ejecución:
- FindType recibe type oro 0x0EED, cualquier hue=-1, área backpack y devuelve serial.
- El artículo serial devuelto se pasa a FindCount. type 0x0EED en sí no se puede transferir aquí.
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;Parámetros y flujo de ejecución:
- lasttarget debe indicar un objeto. AddObject almacena este serial bajo el nombre selected_stack.
- FindCount resuelve el nombre en ID y lee el Monto. Si se selecciona un personaje objetivo, se devuelve 0.
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;
}Parámetros y flujo de ejecución:
- type=0x0EED – oro; color=-1 - cualquier hue; backpack - solo el contenido directo de la mochila en este formulario FindType.
- int: número de elementos/caracteres encontrados, 0 sin coincidencias. Una pila de unidades 1000 cuenta como un objeto. Esta no es una suma de unidades; requiere FindFullQuantity.
var found = UO.FindType(0x0EED, -1, "backpack");
var value = UO.FindCount();
UO.Print(Convert.ToString(value));Parámetros y flujo de ejecución:
- Las cuatro lecturas pertenecen a una búsqueda hasta que se llama a otra búsqueda en el medio.
- Por ejemplo, dos pilas de 50: Artículos=2, Primera pila=50, Todas las unidades=100; El primero ID contiene el ID único de una pila.
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");Parámetros y flujo de ejecución:
- El primer type es oro, el segundo 0x0F7A es un tipo de reactivo independiente. El nuevo equipo cambia el panorama general.
- guardado sigue siendo el número de la primera búsqueda. La segunda lectura se aplica al reactivo incluso si no hay coincidencia.
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# distingue mayúsculas y minúsculas. Use el nombre UO exacto. Compare indicadores numéricos con 0; use bool solo si la firma devuelve bool.
Parámetros: Sin parámetros.
Resultado: int / Integer.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.FindCount. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.FindCount:bridge.FindCount().
Código interno de implementación; no es un script independiente.
public int FindCount() => bridge.FindCount();Parámetros: id (Any)
Resultado: int / Integer.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.FindCount. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetQuantity:bridge.GetQuantity(GetObject(id)). -
InjectionScript.Runtime.InjectionApiUO.GetObject:GetObject(id).
Código interno de implementación; no es un script independiente.
public int FindCount(InjectionValue id) => bridge.GetQuantity(GetObject(id));Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
int UO.FindDistance();
void UO.FindDistance(object? value);Lee o modifica el radio de búsqueda horizontal predeterminado.
-
value- Opcional int. Sin argumento - lectura; valor - configuración. El valor está limitado al rango 0..255; el negativo se convierte en 0 en lugar de sin límite. En el nuevo tiempo de ejecución: 18; el estado restaurado puede contener un valor diferente. El número fraccionario se trunca a cero; Las cadenas numéricas double/0x también son aceptables. Utilice int para evitar la conversión implícita.
Sin argumentos: int es el límite actual (distancia en celdas), no encontrado ID, número de objetos o bool. 0 significa límite cero, no falla. Con valor: void - sin valor; esta no es true/false ni la configuración anterior. Una vez instalado, lea FindDistance() para averiguar el valor almacenado.
- Distancia: max(abs(dx), abs(dy)) desde el punto de referencia actual del rango del cliente; un cuadrado diagonal cuenta como uno. La frontera está encendida. Para 0 solo son adecuados los objetos en el mismo X/Y. Para mover Mobile, la distancia tiene en cuenta la posición final de la cola de pasos.
- La configuración se almacena en el tiempo de ejecución del script actual; sus procedimientos utilizan un solo valor. Los tiempos de ejecución independientes tienen configuraciones separadas. La lectura y la escritura no activan una búsqueda, no borran FindItem/FindCount/GetFoundItems, envían un paquete, mueven un carácter ni cargan objetos distantes.
- FindTypeEx y FindTypesArrayEx utilizan estos límites cuando buscan en el suelo, pero no dentro del contenedor. Los filtros restantes son type, hue, Ignore y la presencia de un objeto cargado. FindAtCoord ignora ambos límites. En comandos extendidos, la distancia explícita/maxZ puede anular la configuración; -1 en dichos parámetros significa tomar la configuración, en lugar de establecer la configuración en sí en -1. FindList también filtra Z cuando busca contenedores; la excepción de contenedor especificada no se aplica a él.
- Antes de buscar temporalmente, guarde el valor y restáurelo en Finalmente. La instalación no se cancela automáticamente. Finalmente funciona con finalización normal y se detecta un error de script; La parada de emergencia no se puede utilizar como mecanismo de limpieza.
Cada ejemplo se puede guardar como un archivo independiente .csx y ejecutar en IDE. Las funciones de objeto UO y de espera proporcionan el anfitrión de la sesión de juego actual. Reemplace los nombres, coordenadas y direcciones de la demostración serial por los suyos propios.
Ejecuta este código en un archivo .csx independiente. Los argumentos aparecen en la llamada; sustituye los nombres, seriales y direcciones de ejemplo por los tuyos.
El resultado de una sola llamada se muestra en el diario. Un número no se convierte en bool; para un array se muestra su cantidad de elementos.
var result = UO.FindDistance();
UO.Print("FindDistance: " + Convert.ToString(result));Parámetros y flujo de ejecución:
- anterior guarda la configuración actual. value:=5 establece el límite normal; 1000 muestra el límite de 255. Print lee el resultado como una llamada separada sin argumento. Finalmente restaura lo anterior.
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);
}Parámetros y flujo de ejecución:
- anterior guarda la configuración del código de llamada. 5 cambia solo FindDistance; el segundo límite sigue siendo el mismo. 0x0EED - gráficos dorados, -1 - cualquiera hue, Container=-1 - mundo, false - sin recursividad de contenedor. identificación - uno serial; != 0 comprueba la disponibilidad. FindCount cuenta objetos/pilas enteras. Finalmente restaura la configuración, no la lista de resultados.
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;Parámetros y flujo de ejecución:
- CountGroundInRange(graphic, radio, altura) almacena ambos límites, establece radio=5 y altura=10, busca graphic=0x0EED y devuelve FindCount(). Una pila se considera un objeto. La función completa se proporciona después de Main. Finalmente restablece ambos límites incluso al salir por retorno; el resultado de la búsqueda permanece disponible.
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# distingue mayúsculas y minúsculas. Use el nombre UO exacto. Compare indicadores numéricos con 0; use bool solo si la firma devuelve bool.
Parámetros: Sin parámetros.
Resultado: int / Integer.
Durante la llamada:
-
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().
Código interno de implementación; no es un script independiente.
case "finddistance":
if (arguments.Length > 0) { bridge.SetFindDistance(Arg(0)); return InjectionValue.Unit; }
return new InjectionValue(bridge.GetFindDistance());Parámetros: value (Any)
Resultado: void / Unit.
Durante la llamada:
-
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().
Código interno de implementación; no es un script independiente.
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();Lee el número total de unidades en la última instantánea de búsqueda.
No hay parámetros.
int — suma máxima(1, Cantidad) de elementos encontrados; Cada carácter encontrado agrega 1. 0 no hay coincidencias. Dos pilas de 50 producen 100 y FindCount producen 2. Esta es una instantánea del momento de la búsqueda, no una cantidad actualizada constantemente.
- Los datos pertenecen a la última búsqueda normal de este script. FindType con argumentos 1–5, FindTypeEx, Count/CountEx/CountGround reemplaza los resultados. No se requieren comandos avanzados de caracteres filtrados para cambiar esta instantánea.
- Una nueva búsqueda sin coincidencias borra FindItem, FindCount y FindFullQuantity y borra GetFoundItems. La lectura de un resultado por sí sola no desencadena una nueva búsqueda.
Cada ejemplo se puede guardar como un archivo independiente .csx y ejecutar en IDE. Las funciones de objeto UO y de espera proporcionan el anfitrión de la sesión de juego actual. Reemplace los nombres, coordenadas y direcciones de la demostración serial por los suyos propios.
Ejecuta este código en un archivo .csx independiente. Los argumentos aparecen en la llamada; sustituye los nombres, seriales y direcciones de ejemplo por los tuyos.
El resultado de una sola llamada se muestra en el diario. Un número no se convierte en bool; para un array se muestra su cantidad de elementos.
UO.FindType(0x0EED, -1, "backpack");
object? result = UO.FindFullQuantity();
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));Parámetros y flujo de ejecución:
- type=0x0EED – oro; color=-1 - cualquier hue; backpack - solo el contenido directo de la mochila en este formulario FindType.
- int — suma máxima(1, Cantidad) de elementos encontrados; Cada carácter encontrado agrega 1. 0 no hay coincidencias. Dos pilas de 50 producen 100 y FindCount producen 2. Esta es una instantánea del momento de la búsqueda, no una cantidad actualizada constantemente.
var found = UO.FindType(0x0EED, -1, "backpack");
var value = UO.FindFullQuantity();
UO.Print(Convert.ToString(value));Parámetros y flujo de ejecución:
- Las cuatro lecturas pertenecen a una búsqueda hasta que se llama a otra búsqueda en el medio.
- Por ejemplo, dos pilas de 50: Artículos=2, Primera pila=50, Todas las unidades=100; El primero ID contiene el ID único de una pila.
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");Parámetros y flujo de ejecución:
- El primer type es oro, el segundo 0x0F7A es un tipo de reactivo independiente. El nuevo equipo cambia el panorama general.
- guardado sigue siendo el número de la primera búsqueda. La segunda lectura se aplica al reactivo incluso si no hay coincidencia.
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# distingue mayúsculas y minúsculas. Use el nombre UO exacto. Compare indicadores numéricos con 0; use bool solo si la firma devuelve bool.
Parámetros: Sin parámetros.
Resultado: dynamic / Any.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.FindFullQuantity:bridge.FindFullQuantity().
Código interno de implementación; no es un script independiente.
case "findfullquantity": return new InjectionValue(bridge.FindFullQuantity());Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.FindItem();Lee el serial del primer resultado de la última búsqueda regular.
No hay parámetros.
int - serial/ID del primer objeto encontrado, 0 si no hay resultado. Esto es numérico serial, mientras que FindType devuelve una cadena hexadecimal o una cadena vacía. No devuelve type.
- Los datos pertenecen a la última búsqueda normal de este script. FindType con argumentos 1–5, FindTypeEx, Count/CountEx/CountGround reemplaza los resultados. No se requieren comandos avanzados de caracteres filtrados para cambiar esta instantánea.
- Una nueva búsqueda sin coincidencias borra FindItem, FindCount y FindFullQuantity y borra GetFoundItems. La lectura de un resultado por sí sola no desencadena una nueva búsqueda.
Cada ejemplo se puede guardar como un archivo independiente .csx y ejecutar en IDE. Las funciones de objeto UO y de espera proporcionan el anfitrión de la sesión de juego actual. Reemplace los nombres, coordenadas y direcciones de la demostración serial por los suyos propios.
Ejecuta este código en un archivo .csx independiente. Los argumentos aparecen en la llamada; sustituye los nombres, seriales y direcciones de ejemplo por los tuyos.
El resultado de una sola llamada se muestra en el diario. Un número no se convierte en bool; para un array se muestra su cantidad de elementos.
UO.FindType(0x0EED, -1, "backpack");
object? result = UO.FindItem();
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));Parámetros y flujo de ejecución:
- type=0x0EED – oro; color=-1 - cualquier hue; backpack - solo el contenido directo de la mochila en este formulario FindType.
- int - serial/ID del primer objeto encontrado, 0 si no hay resultado. Esto es numérico serial, mientras que FindType devuelve una cadena hexadecimal o una cadena vacía. No devuelve type.
var found = UO.FindType(0x0EED, -1, "backpack");
var value = UO.FindItem();
UO.Print(Convert.ToString(value));Parámetros y flujo de ejecución:
- Las cuatro lecturas pertenecen a una búsqueda hasta que se llama a otra búsqueda en el medio.
- Por ejemplo, dos pilas de 50: Artículos=2, Primera pila=50, Todas las unidades=100; El primero ID contiene el ID único de una pila.
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");Parámetros y flujo de ejecución:
- El primer type es oro, el segundo 0x0F7A es un tipo de reactivo independiente. El nuevo equipo cambia el panorama general.
- guardado sigue siendo el número de la primera búsqueda. La segunda lectura se aplica al reactivo incluso si no hay coincidencia.
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# distingue mayúsculas y minúsculas. Use el nombre UO exacto. Compare indicadores numéricos con 0; use bool solo si la firma devuelve bool.
Parámetros: Sin parámetros.
Resultado: dynamic / Any.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.FindItem:bridge.FindItem.
Código interno de implementación; no es un script independiente.
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);Busca elementos descargados o móviles en múltiples type/hue. Devuelve el primer serial como una cadena y almacena el resultado ordenado completo para FindItem, FindCount y GetFoundItems.
-
list— Nombre del conjunto no vacío AddFindList; o una matriz plana de números type; o una cadena de tipos delimitados por |, coma, punto y coma o espacio, como "0x0EED|0x0F7A". Los tipos de matriz/cadena utilizan cualquier hue. No se admiten pares [type,hue] dentro de una matriz; para hue, cree un conjunto con nombre. El orden de las entradas determina la prioridad. Gráfico/type del artículo ya sea body mobile en lugar de su serial. Normalmente int 0..65535, incluido 0x0EED; -1 o 0xFFFF significa cualquier type al buscar. Proporcione un valor por entrada. Se agregan varios tipos mediante llamadas separadas. -
container— Predeterminado -1: elementos cuyo contenedor raíz es un carácter (incluidas bolsas y equipos anidados). "my" = -1. ground, "ground", UO.Ground(), numérico 0 o 1 seleccionan el mundo: elementos en el suelo y móviles, excepto self. "backpack" o serial del contenedor >1 busca solo contenido directo, sin recursividad. El alias del objeto se resuelve en serial; un alias incorrecto puede dar 0, así que verifíquelo con GetSerial de antemano. -
distance— Radio no negativo de celdas por max(abs(dx),abs(dy)); diagonal - una celda. Válido para búsqueda ground; el contenido directo del contenedor no está limitado por la distancia. Por defecto y con argumento negativo se toma UO.FindDistance(). 0 - lo mismo X/Y. -
notoriety— Predeterminado - 1, cualquier código. Un solo número, la cadena "5|6" o una matriz plana de números especifica los códigos de móviles permitidos; Con este filtro, los artículos quedan excluidos. Códigos: 0 desconocido, 1 inocente, 2 aliado, 3 gris, 4 criminal, 5 enemigo, 6 asesino, 7 invulnerable; el significado de la relación lo determina el servidor. Una máscara vacía /cualquiera/-1 sin códigos específicos no es restrictiva. Al mezclar comodines y códigos, los códigos específicos siguen siendo una limitación. Los tokens no numéricos se ignoran junto a los válidos; una máscara de sólo tokens erróneos no encuentra nada. -
nearest— Predeterminado false. false/0: enumera la prioridad de entrada primero, luego baja la prioridad serial. true/1: Distancia primero, luego prioridad de grabación, luego serial. Esta es una orden, no un filtro adicional. -
maxZ— Diferencia absoluta aceptable entre Z y el carácter, inclusive. El argumento predeterminado o negativo es UO.FindVertical(); 0 permite sólo la misma Z. Para un contenedor serial explícito >1 se toma la Z del contenedor cargado (si no hay ninguno, Z de la cosa); para otros modos: candidato Z. Las coordenadas de una cosa en gump no son la altura del mundo. -
includeIgnored: de forma predeterminada, false: serial de Ignore de este tiempo de ejecución están excluidos. true/1 solo los incluye en esta búsqueda y no borra Ignore.
string: hexadecimal-serial del primer resultado (por ejemplo "0x40000011") o la cadena vacía "" si no hay coincidencias. Esto es ID, no type, cantidad y no bool: verifique el resultado != "", no el resultado == true. Con una consulta normal no vacía, FindItem almacena el mismo número ID, FindCount() - el número de objetos distintos, GetFoundItems() - una matriz de sus serial numéricos.
- 1 a 7 argumentos posicionales; Solo puedes saltarte la cola. Para especificar maxZ, pase los argumentos anteriores explícitamente. La búsqueda es sincrónica según el estado de carga local: no abre el contenedor, no carga contenido, no verifica la línea de visión/disponibilidad y no ataca.
- Cada objeto se incluye una vez, incluso si cumple varias reglas. Su prioridad es la primera entrada coincidente. El nombre desconocido intenta analizarse como una cadena de tipo; ilegible type/hue provoca un error de conversión.
- Una consulta no vacía borra el FindItem/FindCount/GetFoundItems anterior antes de la selección; ninguna coincidencia deja resultados vacíos. Excepción: una matriz vacía o una lista de cadenas vacías devuelve "" ANTES de buscar y mantiene los resultados anteriores. No cuente FindCount como un nuevo resultado después de dicha decisión.
- Cambiar las definiciones de AddFindList/ClearFindList/DeleteFindList no cambia el conjunto ya encontrado. La otra búsqueda en este tiempo de ejecución reemplaza FindItem y la matriz general, así que guarde GetFoundItems antes de la búsqueda anidada.
- Las definiciones están en el estado del tiempo de ejecución del script dado. Un otro tiempo de ejecución independiente tiene su propio conjunto; cerrar la ventana IDE no borra estas reglas. Este no es un archivo de configuración ni una lista de objetos globales del juego.
- AddFindList agrega la entrada al final; las repeticiones no se eliminan. Para reaprovisionar su kit, primero llame a ClearFindList("nombre"). Cambiar las definiciones no borra FindItem/FindCount/GetFoundItems que ya se han recibido.
- El registro almacena campos de texto. El literal numérico 0x0EED se almacena como "3821", la cadena "0x0EED" se almacena como "0x0EED". La búsqueda convierte ambas opciones en un número y DeleteFindList compara el texto almacenado. Utilice el mismo formulario al agregar y eliminar.
- El nombre desconocido en FindList no es un conjunto registrado vacío: el motor intenta analizarlo como una lista de tipos numéricos. Un nombre no numérico provoca un error de conversión. Después de eliminar la última entrada, cree un nuevo conjunto antes de buscar ese nombre.
Cada ejemplo se puede guardar como un archivo independiente .csx y ejecutar en IDE. Las funciones de objeto UO y de espera proporcionan el anfitrión de la sesión de juego actual. Reemplace los nombres, coordenadas y direcciones de la demostración serial por los suyos propios.
Ejecuta este código en un archivo .csx independiente. Los argumentos aparecen en la llamada; sustituye los nombres, seriales y direcciones de ejemplo por los tuyos.
El resultado de una sola llamada se muestra en el diario. Un número no se convierte en bool; para un array se muestra su cantidad de elementos.
var result = UO.FindList(new[] { 0x0EED }, "backpack");
UO.Print("FindList: " + Convert.ToString(result));Parámetros y flujo de ejecución:
- En false el oro tiene prioridad sobre el segundo type incluso a distancias mayores. El radio 2 y maxZ=5 limitan a los candidatos; no garantizan el derecho a recoger la cosa.
- Esta es una acción de juego real: solo se transfiere el primer objeto encontrado. El resultado MoveItem no significa que el servidor haya confirmado todo el movimiento.
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;Parámetros y flujo de ejecución:
- Siete parámetros: dos body, mundo, radio 12, códigos 5 o 6, el más cercano primero, la diferencia Z no más de 10, ignorado y excluido. Sólo hay selección y ahorro; el script de ataque debe comprobar por separado las condiciones adecuadas.
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;Parámetros y flujo de ejecución:
- declarar los tipos de variables [1] crea índices 0 y 1 en este motor. Se suman las unidades de los dos tipos, no el número de pilas. backpack limitado a contenido directo; Las bolsas insertadas no están incluidas aquí.
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# distingue mayúsculas y minúsculas. Use el nombre UO exacto. Compare indicadores numéricos con 0; use bool solo si la firma devuelve bool.
Parámetros: list (Any)
Resultado: string / String.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.Register [FindList]. -
InjectionScript.Runtime.InjectionApiUO.CompactFindList:CompactFindList(values).
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
values => new InjectionValue(CompactFindList(values))Parámetros: list (Any), container (Any)
Resultado: string / String.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.Register [FindList]. -
InjectionScript.Runtime.InjectionApiUO.CompactFindList:CompactFindList(values).
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
values => new InjectionValue(CompactFindList(values))Parámetros: list (Any), container (Any), distance (Any)
Resultado: string / String.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.Register [FindList]. -
InjectionScript.Runtime.InjectionApiUO.CompactFindList:CompactFindList(values).
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
values => new InjectionValue(CompactFindList(values))Parámetros: list (Any), container (Any), distance (Any), notoriety (Any)
Resultado: string / String.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.Register [FindList]. -
InjectionScript.Runtime.InjectionApiUO.CompactFindList:CompactFindList(values).
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
values => new InjectionValue(CompactFindList(values))Parámetros: list (Any), container (Any), distance (Any), notoriety (Any), nearest (Any)
Resultado: string / String.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.Register [FindList]. -
InjectionScript.Runtime.InjectionApiUO.CompactFindList:CompactFindList(values).
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
values => new InjectionValue(CompactFindList(values))
UO.FindList(list, container, distance, notoriety, nearest, maxZ) — UO.FindList(Any,Any,Any,Any,Any,Any)
Parámetros: list (Any), container (Any), distance (Any), notoriety (Any), nearest (Any), maxZ (Any)
Resultado: string / String.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.Register [FindList]. -
InjectionScript.Runtime.InjectionApiUO.CompactFindList:CompactFindList(values).
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
values => new InjectionValue(CompactFindList(values))
UO.FindList(list, container, distance, notoriety, nearest, maxZ, includeIgnored) — UO.FindList(Any,Any,Any,Any,Any,Any,Any)
Parámetros: list (Any), container (Any), distance (Any), notoriety (Any), nearest (Any), maxZ (Any), includeIgnored (Any)
Resultado: string / String.
Durante la llamada:
-
InjectionScript.Runtime.InjectionApiUO.Register [FindList]. -
InjectionScript.Runtime.InjectionApiUO.CompactFindList:CompactFindList(values).
La llamada ejecuta el delegate del controlador guardado. El método de registro crea ese delegate al construir la API.
Código interno de implementación; no es un script independiente.
values => new InjectionValue(CompactFindList(values))ClassicUO — Bad Newbie & C# Scripts IDE