API UO FindTypeEx es - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki

UO.FindTypeEx

ClassicUO • Runtime API

Busca un gráfico/color en un contenedor o en el suelo y devuelve un ID coincidente.

Sintaxis exacta

UO.FindTypeEx(ObjType:Any, Color:Any, Container:Any, InSub:Any) -> Integer

Parámetros

  • ObjType — Graphic/body, no el serial de un objeto. 0..65534 elige un gráfico; -1 o 0xFFFF cualquiera. Otros Integer negativos también funcionan como comodines.
  • Color — Hue, no cantidad. 0 significa sin tinte; -1 o 0xFFFF cualquier hue. Otros Integer negativos también eliminan este filtro.
  • Container — Suelo: UO.Ground(), 0, -1, 0xFFFFFFFF o cadena ground. Mochila: backpack o su serial. Acepta seriales decimales/hex y nombres AddObject. my elige todo el inventario propio, incluido equipo y bolsas anidadas. Un nombre desconocido produce un error de script. Compruebe el serial resuelto: 0 explícito selecciona suelo. Prefiera ground/backpack a las convenciones numéricas distintas entre API.
  • InSub — TRUE/FALSE (1/0), obligatorio. FALSE busca contenido directo del contenedor concreto; TRUE también bolsas anidadas cargadas. No cambia el suelo. my ya incluye todo el inventario propio.

Devuelve

Integer: serial de la primera coincidencia local, o 0 si no hay ninguna. No es gráfico, cantidad, array ni Boolean. Compruebe result <> 0, no result = TRUE ni result = 1. Una pila cuenta como un objeto; un Mobile como un objeto y una unidad. El orden no garantiza cercanía ni estabilidad.

Comportamiento

  • Son obligatorios los cuatro argumentos posicionales; no se omite ninguno.
  • El suelo aplica FindDistance/FindVertical de este script, excluye self e incluye Item y Mobile coincidentes. Un contenedor concreto no aplica esos límites de distancia/altura. Ignore y objetos destruidos se excluyen en ambos casos.
  • Antes de recorrer se vacían FindItem, FindCount, FindFullQuantity y GetFoundItems. Sin coincidencias quedan ceros y un array vacío. FindFullQuantity suma max(1, Amount) por Item y 1 por Mobile. FindQuantity lee la cantidad actual de FindItem. Guarde GetFoundItems antes de que otra búsqueda sustituya el estado.
  • El bridge recorre una vez los Item cargados, después los Mobile si se selecciona suelo. Deben coincidir tipo, color y al menos un contenedor. Cada objeto se registra una vez, sin recorrer todo el mundo por cada combinación.
  • Solo datos recibidos: no abre contenedores, carga celdas ni mueve objetos. Ningún resultado no demuestra que el cofre esté vacío en el servidor. Compruebe Connected si necesita conexión activa; la búsqueda lee el estado local.
  • Stealth FindTypeEx. La referencia describe el último ID y una mochila alternativa para contenedores inválidos. Aquí se conserva la primera coincidencia local; un nombre desconocido no cambia a mochila. Ground acepta también 0; FindDistance local empieza en 18, máximo 255.

Funciones internas: de la llamada al resultado

Etapas reales de implementación, no comandos públicos adicionales. FindGoldNearSelf y SearchTypesIn se incluyen como funciones de script completas.

1. ExecuteStealthCompatibility

El runtime convierte los filtros numéricos y resuelve los nombres por separado; el suelo pasa al ámbito mundo interno del bridge.

Son obligatorios los cuatro argumentos posicionales; no se omite ninguno.

Código del proyecto: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; función ExecuteStealthCompatibility.

2. ConvertStealthSearchContainer

Suelo: UO.Ground(), 0, -1, 0xFFFFFFFF o cadena ground. Mochila: backpack o su serial. Acepta seriales decimales/hex y nombres AddObject. my elige todo el inventario propio, incluido equipo y bolsas anidadas. Un nombre desconocido produce un error de script. Compruebe el serial resuelto: 0 explícito selecciona suelo. Prefiera ground/backpack a las convenciones numéricas distintas entre API.

El runtime convierte los filtros numéricos y resuelve los nombres por separado; el suelo pasa al ámbito mundo interno del bridge.

Código del proyecto: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; función ConvertStealthSearchContainer.

3. ResetFindResults

Antes de recorrer se vacían FindItem, FindCount, FindFullQuantity y GetFoundItems. Sin coincidencias quedan ceros y un array vacío. FindFullQuantity suma max(1, Amount) por Item y 1 por Mobile. FindQuantity lee la cantidad actual de FindItem. Guarde GetFoundItems antes de que otra búsqueda sustituya el estado.

Integer: serial de la primera coincidencia local, o 0 si no hay ninguna. No es gráfico, cantidad, array ni Boolean. Compruebe result <> 0, no result = TRUE ni result = 1. Una pila cuenta como un objeto; un Mobile como un objeto y una unidad. El orden no garantiza cercanía ni estabilidad.

Código del proyecto: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; función ResetFindResults.

4. FindType

El bridge recorre una vez los Item cargados, después los Mobile si se selecciona suelo. Deben coincidir tipo, color y al menos un contenedor. Cada objeto se registra una vez, sin recorrer todo el mundo por cada combinación.

El suelo aplica FindDistance/FindVertical de este script, excluye self e incluye Item y Mobile coincidentes. Un contenedor concreto no aplica esos límites de distancia/altura. Ignore y objetos destruidos se excluyen en ambos casos.

Código del proyecto: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; función FindType.

5. MatchesFindIdentity

Graphic/body, no el serial de un objeto. 0..65534 elige un gráfico; -1 o 0xFFFF cualquiera. Otros Integer negativos también funcionan como comodines. Hue, no cantidad. 0 significa sin tinte; -1 o 0xFFFF cualquier hue. Otros Integer negativos también eliminan este filtro.

El bridge recorre una vez los Item cargados, después los Mobile si se selecciona suelo. Deben coincidir tipo, color y al menos un contenedor. Cada objeto se registra una vez, sin recorrer todo el mundo por cada combinación.

Código del proyecto: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; función MatchesFindIdentity.

6. MatchesFindContainer

TRUE/FALSE (1/0), obligatorio. FALSE busca contenido directo del contenedor concreto; TRUE también bolsas anidadas cargadas. No cambia el suelo. my ya incluye todo el inventario propio.

El suelo aplica FindDistance/FindVertical de este script, excluye self e incluye Item y Mobile coincidentes. Un contenedor concreto no aplica esos límites de distancia/altura. Ignore y objetos destruidos se excluyen en ambos casos.

Código del proyecto: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; función MatchesFindContainer.

7. RegisterFound

Antes de recorrer se vacían FindItem, FindCount, FindFullQuantity y GetFoundItems. Sin coincidencias quedan ceros y un array vacío. FindFullQuantity suma max(1, Amount) por Item y 1 por Mobile. FindQuantity lee la cantidad actual de FindItem. Guarde GetFoundItems antes de que otra búsqueda sustituya el estado.

Integer: serial de la primera coincidencia local, o 0 si no hay ninguna. No es gráfico, cantidad, array ni Boolean. Compruebe result <> 0, no result = TRUE ni result = 1. Una pila cuenta como un objeto; un Mobile como un objeto y una unidad. El orden no garantiza cercanía ni estabilidad.

Código del proyecto: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; función RegisterFound.

Solo datos recibidos: no abre contenedores, carga celdas ni mueve objetos. Ningún resultado no demuestra que el cofre esté vacío en el servidor. Compruebe Connected si necesita conexión activa; la búsqueda lee el estado local.

Ejemplos

Contenido directo de la mochila

# Contenido directo de la mochila
#
# Busca un gráfico/color en un contenedor o en el suelo y devuelve un ID coincidente.
#
# Integer: serial de la primera coincidencia local, o 0 si no hay ninguna. No es gráfico,
# cantidad, array ni Boolean. Compruebe result <> 0, no result = TRUE ni result = 1. Una pila
# cuenta como un objeto; un Mobile como un objeto y una unidad. El orden no garantiza cercanía
# ni estabilidad.

SUB Main()
    # 0x0EED es oro; -1 cualquier hue; backpack/FALSE excluye bolsas anidadas. Imprime primer ID hex
    # sin 0x, objetos y unidades. Pilas de 20 y 50 dan 2 objetos y 70 unidades.

    VAR item = UO.FindTypeEx(0x0EED, -1, 'backpack', FALSE)
    UO.Print(Hex(item))
    UO.Print(STR(UO.FindCount()))
    UO.Print(STR(UO.FindFullQuantity()))
END SUB

Explicación de los parámetros y la ejecución:

  • 0x0EED es oro; -1 cualquier hue; backpack/FALSE excluye bolsas anidadas. Imprime primer ID hex sin 0x, objetos y unidades. Pilas de 20 y 50 dan 2 objetos y 70 unidades.

Función completa de búsqueda temporal en suelo

# Función completa de búsqueda temporal en suelo
#
# Busca un gráfico/color en un contenedor o en el suelo y devuelve un ID coincidente.
#
# Integer: serial de la primera coincidencia local, o 0 si no hay ninguna. No es gráfico,
# cantidad, array ni Boolean. Compruebe result <> 0, no result = TRUE ni result = 1. Una pila
# cuenta como un objeto; un Mobile como un objeto y una unidad. El orden no garantiza cercanía
# ni estabilidad.

SUB Main()
    # radius=5 y height=10 se aplican dentro de FindGoldNearSelf. Finally restaura ambos incluso
    # tras Return o error. Devuelve serial de oro o 0; Main comprueba <> 0.

    VAR item = FindGoldNearSelf(5, 10)
    IF item <> 0 THEN
        UO.Print(Hex(item))
    ELSE
        UO.Print('Empty')
    END IF
END SUB

FUNCTION FindGoldNearSelf(radius, height)
    VAR oldDistance = UO.FindDistance()
    VAR oldVertical = UO.FindVertical()
    TRY
        UO.FindDistance(radius)
        UO.FindVertical(height)
        RETURN UO.FindTypeEx(0x0EED, -1, UO.Ground(), FALSE)
    FINALLY
        UO.FindDistance(oldDistance)
        UO.FindVertical(oldVertical)
    END TRY
END FUNCTION

Explicación de los parámetros y la ejecución:

  • radius=5 y height=10 se aplican dentro de FindGoldNearSelf. Finally restaura ambos incluso tras Return o error. Devuelve serial de oro o 0; Main comprueba <> 0.

Contenedor nombrado y bolsas anidadas

# Contenedor nombrado y bolsas anidadas
#
# Busca un gráfico/color en un contenedor o en el suelo y devuelve un ID coincidente.
#
# Integer: serial de la primera coincidencia local, o 0 si no hay ninguna. No es gráfico,
# cantidad, array ni Boolean. Compruebe result <> 0, no result = TRUE ni result = 1. Una pila
# cuenta como un objeto; un Mobile como un objeto y una unidad. El orden no garantiza cercanía
# ni estabilidad.

SUB Main()
    # GetSerial resuelve backpack; comprobar cero evita elegir suelo accidentalmente. AddObject
    # guarda search_bag. TRUE incluye bolsas anidadas. GetFoundItems copia la lista; IsObjectExists
    # comprueba cada ID otra vez.

    VAR bag = UO.GetSerial('backpack')
    IF bag <> 0 THEN
        UO.AddObject('search_bag', bag)
        UO.FindTypeEx(0x0EED, -1, 'search_bag', TRUE)
        VAR items = UO.GetFoundItems()
        FOR EACH item IN items
            IF UO.IsObjectExists(item) THEN
                UO.Print(Hex(item))
            END IF
        NEXT
    END IF
END SUB

Explicación de los parámetros y la ejecución:

  • GetSerial resuelve backpack; comprobar cero evita elegir suelo accidentalmente. AddObject guarda search_bag. TRUE incluye bolsas anidadas. GetFoundItems copia la lista; IsObjectExists comprueba cada ID otra vez.

en · ru · uk · fr · de · it · es · zh-tw · ja · ko

Basic