Skip to content

API UO GetArrayLength es

Codex edited this page Oct 4, 2026 · 1 revision

UO.GetArrayLength

Русский · English · Українська · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어

API · Basic

ClassicUO • Runtime API

Cuenta las casillas directas de un Array para recorrerlo y acceder a índices con seguridad.

Sintaxis exacta

UO.GetArrayLength(arg:Any) -> Any

Parámetros

  • arg — Cualquier valor BASIC. Array devuelve Length exterior; String, número, Object y Unit devuelven 0.

Devuelve

Integer >= 0. Array vacío y otro tipo devuelven 0: no valida el tipo. Es cantidad, no Boolean ni último índice.

Comportamiento

  • Consulta local sin servidor, movimiento de objetos ni cambios en el array. Los ejemplos usan datos fijos, no el inventario real.
  • Comprueba el tipo y lee Array.Length sin recorrer ni sumar. DIM values(2) crea tres casillas 0..2, incluso sin inicializar.
  • No cuenta recursivamente. Para String usar Len; para List/Dictionary su Count. UO.GetArrayLength es el nombre compatible de la misma consulta local.

Funciones internas: de la llamada al resultado

Comprueba el tipo y lee Array.Length sin recorrer ni sumar. DIM values(2) crea tres casillas 0..2, incluso sin inicializar.

1. GetArrayLength

Comprueba el tipo y lee Array.Length sin recorrer ni sumar. DIM values(2) crea tres casillas 0..2, incluso sin inicializar.

Integer >= 0. Array vacío y otro tipo devuelven 0: no valida el tipo. Es cantidad, no Boolean ni último índice.

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

No cuenta recursivamente. Para String usar Len; para List/Dictionary su Count. UO.GetArrayLength es el nombre compatible de la misma consulta local.

Ejemplos

Sumar cantidades

# Sumar cantidades
#
# Cuenta las casillas directas de un Array para recorrerlo y acceder a índices con seguridad.
#
# Integer >= 0. Array vacío y otro tipo devuelven 0: no valida el tipo. Es cantidad, no Boolean
# ni último índice.

SUB Main()
    # El bucle recorre tres entradas 0..2 y devuelve 150. El bucle suma, no GetArrayLength.
    # Consulta local sin servidor, movimiento de objetos ni cambios en el array. Los ejemplos usan
    # datos fijos, no el inventario real.

    Dim amounts(2)
    amounts[0] = 50
    amounts[1] = 75
    amounts[2] = 25
    Dim total = 0
    For index = 0 To UO.GetArrayLength(amounts) - 1
        total += amounts[index]
    Next
    Return total
END SUB

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

  • El bucle recorre tres entradas 0..2 y devuelve 150. El bucle suma, no GetArrayLength.
  • Consulta local sin servidor, movimiento de objetos ni cambios en el array. Los ejemplos usan datos fijos, no el inventario real.

Separar puntos y coordenadas

# Separar puntos y coordenadas
#
# Cuenta las casillas directas de un Array para recorrerlo y acceder a índices con seguridad.
#
# Integer >= 0. Array vacío y otro tipo devuelven 0: no valida el tipo. Es cantidad, no Boolean
# ni último índice.

SUB Main()
    # Dos puntos con tres campos cada uno: resultado 2|3, no seis. No mueve al personaje.
    # Consulta local sin servidor, movimiento de objetos ni cambios en el array. Los ejemplos usan
    # datos fijos, no el inventario real.

    Dim first(2)
    first[0] = 100
    first[1] = 200
    first[2] = 0
    Dim second(2)
    second[0] = 101
    second[1] = 200
    second[2] = 0
    Dim route(1)
    route[0] = first
    route[1] = second
    Return CStr(UO.GetArrayLength(route)) & "|" & CStr(UO.GetArrayLength(route[0]))
END SUB

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

  • Dos puntos con tres campos cada uno: resultado 2|3, no seis. No mueve al personaje.
  • Consulta local sin servidor, movimiento de objetos ni cambios en el array. Los ejemplos usan datos fijos, no el inventario real.

Proteger el primer índice

# Proteger el primer índice
#
# Cuenta las casillas directas de un Array para recorrerlo y acceder a índices con seguridad.
#
# Integer >= 0. Array vacío y otro tipo devuelven 0: no valida el tipo. Es cantidad, no Boolean
# ni último índice.

SUB Main()
    # String devuelve 0: retorna no route antes del acceso. La misma comprobación admite un Array
    # vacío sin distinguir ambos casos.
    # Consulta local sin servidor, movimiento de objetos ni cambios en el array. Los ejemplos usan
    # datos fijos, no el inventario real.

    Dim route = "not an array"
    If UO.GetArrayLength(route) = 0 Then
        Return "no route"
    End If
    Return route[0]
END SUB

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

  • String devuelve 0: retorna no route antes del acceso. La misma comprobación admite un Array vacío sin distinguir ambos casos.
  • Consulta local sin servidor, movimiento de objetos ni cambios en el array. Los ejemplos usan datos fijos, no el inventario real.

Clone this wiki locally