Skip to content

API ArrayContains es

Codex edited this page Oct 4, 2026 · 1 revision

ArrayContains

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

API · Basic

ClassicUO • Runtime API

Comprueba si un valor está en un array de elementos permitidos o ya procesados.

Sintaxis exacta

ArrayContains(array:Any, pattern:Any) -> Integer

Parámetros

  • array — Array que examinar; otro tipo devuelve 0.
  • pattern — Cualquier valor buscado entre los elementos directos.

Devuelve

Integer booleano: 1/True si coincide, 0/False si no. Se permite If ArrayContains(...) o comparar con True/1. No es un índice ni una cantidad.

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 compara elementos externos hasta la primera coincidencia. Integer 1 equivale a Decimal 1.0, pero no a String "1". Distingue mayúsculas.
  • Array anidados y objetos de referencia se comparan por identidad. Excepción: valores Structure del mismo tipo declarado con campos iguales son iguales; los campos Array/Object mantienen sus propias reglas. Sin búsqueda recursiva; array vacío: 0. Las casillas sin inicializar contienen Unit y pueden coincidir con Unit.

Funciones internas: de la llamada al resultado

Comprueba el tipo y compara elementos externos hasta la primera coincidencia. Integer 1 equivale a Decimal 1.0, pero no a String "1". Distingue mayúsculas.

1. ArrayContains

Comprueba el tipo y compara elementos externos hasta la primera coincidencia. Integer 1 equivale a Decimal 1.0, pero no a String "1". Distingue mayúsculas.

Integer booleano: 1/True si coincide, 0/False si no. Se permite If ArrayContains(...) o comparar con True/1. No es un índice ni una cantidad.

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

2. Equals

Comprueba el tipo y compara elementos externos hasta la primera coincidencia. Integer 1 equivale a Decimal 1.0, pero no a String "1". Distingue mayúsculas.

Array anidados y objetos de referencia se comparan por identidad. Excepción: valores Structure del mismo tipo declarado con campos iguales son iguales; los campos Array/Object mantienen sus propias reglas. Sin búsqueda recursiva; array vacío: 0. Las casillas sin inicializar contienen Unit y pueden coincidir con Unit.

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

3. ValueEquals

Array anidados y objetos de referencia se comparan por identidad. Excepción: valores Structure del mismo tipo declarado con campos iguales son iguales; los campos Array/Object mantienen sus propias reglas. Sin búsqueda recursiva; array vacío: 0. Las casillas sin inicializar contienen Unit y pueden coincidir con Unit.

Integer booleano: 1/True si coincide, 0/False si no. Se permite If ArrayContains(...) o comparar con True/1. No es un índice ni una cantidad.

Código del proyecto: external/InjectionScript/src/InjectionScript/Runtime/ObjectTypes/StructureObject.cs; función ValueEquals.

Array anidados y objetos de referencia se comparan por identidad. Excepción: valores Structure del mismo tipo declarado con campos iguales son iguales; los campos Array/Object mantienen sus propias reglas. Sin búsqueda recursiva; array vacío: 0. Las casillas sin inicializar contienen Unit y pueden coincidir con Unit.

Ejemplos

Gráficos permitidos

# Gráficos permitidos
#
# Comprueba si un valor está en un array de elementos permitidos o ya procesados.
#
# Integer booleano: 1/True si coincide, 0/False si no. Se permite If ArrayContains(...) o
# comparar con True/1. No es un índice ni una cantidad.

SUB Main()
    # 0x0EED aparece en la lista: devuelve allowed. No busca ni mueve objetos.
    # Consulta local sin servidor, movimiento de objetos ni cambios en el array. Los ejemplos usan
    # datos fijos, no el inventario real.

    Dim allowed(1)
    allowed[0] = 0x0EED
    allowed[1] = 0x0F7A
    Dim graphic = 0x0EED
    If ArrayContains(allowed, graphic) = True Then
        Return "allowed"
    End If
    Return "skip"
END SUB

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

  • 0x0EED aparece en la lista: devuelve allowed. No busca ni mueve objetos.
  • Consulta local sin servidor, movimiento de objetos ni cambios en el array. Los ejemplos usan datos fijos, no el inventario real.

No procesar dos veces un serial

# No procesar dos veces un serial
#
# Comprueba si un valor está en un array de elementos permitidos o ya procesados.
#
# Integer booleano: 1/True si coincide, 0/False si no. Se permite If ArrayContains(...) o
# comparar con True/1. No es un índice ni una cantidad.

SUB Main()
    # ASC convierte el texto hexadecimal a Integer. El serial conocido devuelve already queued; la
    # String original no coincidiría con el número.
    # Consulta local sin servidor, movimiento de objetos ni cambios en el array. Los ejemplos usan
    # datos fijos, no el inventario real.

    Dim queued(1)
    queued[0] = 0x40001234
    queued[1] = 0x40005678
    Dim incoming = "0x40001234"
    Dim serial = ASC(incoming, 0)
    If serial = 0 Then
        Return "invalid"
    End If
    If ArrayContains(queued, serial) Then
        Return "already queued"
    End If
    Return "new"
END SUB

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

  • ASC convierte el texto hexadecimal a Integer. El serial conocido devuelve already queued; la String original no coincidiría con el número.
  • Consulta local sin servidor, movimiento de objetos ni cambios en el array. Los ejemplos usan datos fijos, no el inventario real.

Referencias de puntos

# Referencias de puntos
#
# Comprueba si un valor está en un array de elementos permitidos o ya procesados.
#
# Integer booleano: 1/True si coincide, 0/False si no. Se permite If ArrayContains(...) o
# comparar con True/1. No es un índice ni una cantidad.

SUB Main()
    # route contiene point, no sameCoordinates. Coordenadas iguales no hacen idénticos dos arrays:
    # resultado 1|0.
    # Consulta local sin servidor, movimiento de objetos ni cambios en el array. Los ejemplos usan
    # datos fijos, no el inventario real.

    Dim point(1)
    point[0] = 100
    point[1] = 200
    Dim sameCoordinates(1)
    sameCoordinates[0] = 100
    sameCoordinates[1] = 200
    Dim route(0)
    route[0] = point
    Return CStr(ArrayContains(route, point)) & "|" & CStr(ArrayContains(route, sameCoordinates))
END SUB

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

  • route contiene point, no sameCoordinates. Coordenadas iguales no hacen idénticos dos arrays: resultado 1|0.
  • 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