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

UO.FindVertical

ClassicUO • Runtime API

Lee o cambia la diferencia de altura permitida por defecto en la búsqueda.

Sintaxis exacta

UO.FindVertical() -> Integer
UO.FindVertical(value:Any) -> Unit

Parámetros

  • value — Integer opcional. Sin argumento lee; value establece. Se limita a 0..120; un negativo pasa a 0, no a ilimitado. Runtime nuevo: 2; un estado restaurado puede diferir. Los decimales se truncan hacia cero; también admite cadenas numéricas decimal/0x. Use Integer para evitar conversiones implícitas.

Devuelve

Sin argumentos: Integer, límite actual (diferencia en unidades Z del mundo), no un ID, cantidad de objetos o Boolean. 0 significa límite cero, no fallo. Con value: Unit, sin valor, ni TRUE/FALSE ni valor anterior. Lea FindVertical() después de escribir.

Comportamiento

  • Altura: abs(object.Z - player.Z), en ambos sentidos e incluyendo el límite. 0 exige la misma Z. No es un número de planta ni una distancia horizontal.
  • Se guarda en el runtime del script y se comparte entre sus procedimientos; runtimes independientes tienen valores separados. Leer/escribir no busca, no borra FindItem/FindCount/GetFoundItems, no envía paquetes, no mueve al personaje ni carga objetos lejanos.
  • FindTypeEx y FindTypesArrayEx aplican estos límites al suelo, no al contenido de contenedores. Siguen vigentes tipo, color, Ignore y objetos cargados. FindAtCoord ignora ambos. distance/maxZ explícitos de comandos ampliados pueden sustituirlos; -1 en esos parámetros usa el valor por defecto, a diferencia de asignar -1 al ajuste. FindList también filtra Z en contenedores; la excepción anterior no se le aplica.
  • Guarde antes de una búsqueda temporal y restaure en Finally; no hay reversión automática. Finally cubre finalización normal y errores capturables; la parada de emergencia no es un mecanismo de limpieza.
  • Referencia: Stealth FindVertical. Este cliente conserva valores iniciales/rangos propios: FindDistance 18 / 0..255; FindVertical 2 / 0..120. La sintaxis Basic y los filtros ampliados describen este proyecto.

Funciones internas: de la llamada al resultado

Etapas internas reales. CountGroundInRange es una función de usuario completa, no un comando integrado oculto.

1. ExecuteStealthCompatibility

Cero argumentos seleccionan lectura; uno convierte value y escribe. Los metadatos distinguen Integer de Unit.

Sin argumentos: Integer, límite actual (diferencia en unidades Z del mundo), no un ID, cantidad de objetos o Boolean. 0 significa límite cero, no fallo. Con value: Unit, sin valor, ni TRUE/FALSE ni valor anterior. Lea FindVertical() después de escribir.

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

2. GetFindVertical

El bridge lee el ajuste runtime o limita y guarda el entero, sin recorrer el mundo.

Sin argumentos: Integer, límite actual (diferencia en unidades Z del mundo), no un ID, cantidad de objetos o Boolean. 0 significa límite cero, no fallo. Con value: Unit, sin valor, ni TRUE/FALSE ni valor anterior. Lea FindVertical() después de escribir.

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

3. SetFindVertical

El bridge lee el ajuste runtime o limita y guarda el entero, sin recorrer el mundo.

Integer opcional. Sin argumento lee; value establece. Se limita a 0..120; un negativo pasa a 0, no a ilimitado. Runtime nuevo: 2; un estado restaurado puede diferir. Los decimales se truncan hacia cero; también admite cadenas numéricas decimal/0x. Use Integer para evitar conversiones implícitas.

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

4. FindType

La búsqueda posterior lee el ajuste cuando no hay sustitución explícita. Items del suelo y Mobiles pasan los filtros de distancia y altura correspondientes.

FindTypeEx y FindTypesArrayEx aplican estos límites al suelo, no al contenido de contenedores. Siguen vigentes tipo, color, Ignore y objetos cargados. FindAtCoord ignora ambos. distance/maxZ explícitos de comandos ampliados pueden sustituirlos; -1 en esos parámetros usa el valor por defecto, a diferencia de asignar -1 al ajuste. FindList también filtra Z en contenedores; la excepción anterior no se le aplica.

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

5. FindList

La búsqueda posterior lee el ajuste cuando no hay sustitución explícita. Items del suelo y Mobiles pasan los filtros de distancia y altura correspondientes.

FindTypeEx y FindTypesArrayEx aplican estos límites al suelo, no al contenido de contenedores. Siguen vigentes tipo, color, Ignore y objetos cargados. FindAtCoord ignora ambos. distance/maxZ explícitos de comandos ampliados pueden sustituirlos; -1 en esos parámetros usa el valor por defecto, a diferencia de asignar -1 al ajuste. FindList también filtra Z en contenedores; la excepción anterior no se le aplica.

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

Se guarda en el runtime del script y se comparte entre sus procedimientos; runtimes independientes tienen valores separados. Leer/escribir no busca, no borra FindItem/FindCount/GetFoundItems, no envía paquetes, no mueve al personaje ni carga objetos lejanos.

Ejemplos

Leer, establecer y comprobar los límites

# Leer, establecer y comprobar los límites
#
# Lee o cambia la diferencia de altura permitida por defecto en la búsqueda.
#
# Sin argumentos: Integer, límite actual (diferencia en unidades Z del mundo), no un ID,
# cantidad de objetos o Boolean. 0 significa límite cero, no fallo. Con value: Unit, sin valor,
# ni TRUE/FALSE ni valor anterior. Lea FindVertical() después de escribir.

SUB Main()
    # previous guarda el ajuste real. value:=10 fija un límite normal; 1000 se reduce a 120. Print
    # lee por separado. Finally restaura previous.

    VAR previous = UO.FindVertical()
    TRY
        UO.FindVertical(value:=10)
        UO.Print(CStr(UO.FindVertical()))
        UO.FindVertical(1000)
        UO.Print(CStr(UO.FindVertical()))
    FINALLY
        UO.FindVertical(previous)
    END TRY
END SUB

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

  • previous guarda el ajuste real. value:=10 fija un límite normal; 1000 se reduce a 120. Print lee por separado. Finally restaura previous.

Búsqueda temporal en el suelo

# Búsqueda temporal en el suelo
#
# Lee o cambia la diferencia de altura permitida por defecto en la búsqueda.
#
# Sin argumentos: Integer, límite actual (diferencia en unidades Z del mundo), no un ID,
# cantidad de objetos o Boolean. 0 significa límite cero, no fallo. Con value: Unit, sin valor,
# ni TRUE/FALSE ni valor anterior. Lea FindVertical() después de escribir.

SUB Main()
    # previous conserva el valor del llamador. 10 cambia solo FindVertical; el otro límite
    # permanece. 0x0EED: gráfico del oro; -1: cualquier color; Container=-1: mundo; FALSE: sin
    # recursión de contenedores. id es un serial; <> 0 comprueba existencia. FindCount cuenta
    # objetos/pilas. Finally restaura el ajuste, no la lista.

    VAR previous = UO.FindVertical()
    TRY
        UO.FindVertical(10)
        VAR id = UO.FindTypeEx(0x0EED, -1, -1, FALSE)
        IF id <> 0 THEN
            UO.Print(HEX(id) + ':' + CStr(UO.FindCount()))
        ELSE
            UO.Print('0')
        END IF
    FINALLY
        UO.FindVertical(previous)
    END TRY
END SUB

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

  • previous conserva el valor del llamador. 10 cambia solo FindVertical; el otro límite permanece. 0x0EED: gráfico del oro; -1: cualquier color; Container=-1: mundo; FALSE: sin recursión de contenedores. id es un serial; <> 0 comprueba existencia. FindCount cuenta objetos/pilas. Finally restaura el ajuste, no la lista.

Función completa CountGroundInRange

# Función completa CountGroundInRange
#
# Lee o cambia la diferencia de altura permitida por defecto en la búsqueda.
#
# Sin argumentos: Integer, límite actual (diferencia en unidades Z del mundo), no un ID,
# cantidad de objetos o Boolean. 0 significa límite cero, no fallo. Con value: Unit, sin valor,
# ni TRUE/FALSE ni valor anterior. Lea FindVertical() después de escribir.

SUB Main()
    # CountGroundInRange(graphic, radius, height) guarda ambos límites, establece radius=5 y
    # height=10, busca graphic=0x0EED y devuelve FindCount(). Una pila cuenta como un objeto.
    # Función completa después de Main. Finally restaura incluso al salir con Return; los resultados
    # de búsqueda permanecen.

    VAR count = CountGroundInRange(0x0EED, 5, 10)
    UO.Print(CStr(count))
END SUB

FUNCTION CountGroundInRange(graphic, radius, 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)
    END TRY
END FUNCTION

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

  • CountGroundInRange(graphic, radius, height) guarda ambos límites, establece radius=5 y height=10, busca graphic=0x0EED y devuelve FindCount(). Una pila cuenta como un objeto. Función completa después de Main. Finally restaura incluso al salir con Return; los resultados de búsqueda permanecen.

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

Basic