Skip to content

API ArrayContains it

Codex edited this page Oct 4, 2026 · 1 revision

ArrayContains

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

API · Basic

ClassicUO • Runtime API

Verifica se un valore è fra gli elementi consentiti o già elaborati di un array.

Sintassi esatta

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

Parametri

  • array — Array da controllare; un altro tipo restituisce 0.
  • pattern — Qualsiasi valore da cercare negli elementi diretti.

Restituisce

Integer booleano: 1/True se presente, altrimenti 0/False. Si può usare If ArrayContains(...) o confrontare con True/1. Non è un indice né un conteggio.

Comportamento

  • Query locale: nessun server, spostamento o modifica dell’array. Gli esempi usano dati prestabiliti, non l’inventario corrente.
  • Controlla il tipo e confronta gli elementi esterni fino alla prima corrispondenza. Integer 1 equivale a Decimal 1.0, non a String "1". Maiuscole e minuscole sono distinte.
  • Array annidati e oggetti di riferimento si confrontano per identità. Eccezione: valori Structure dello stesso tipo dichiarato con campi uguali sono uguali; i campi Array/Object mantengono le proprie regole. Nessuna ricorsione; array vuoto: 0. Le celle non inizializzate contengono Unit e possono corrispondere a Unit.

Funzioni interne: dalla chiamata al risultato

Controlla il tipo e confronta gli elementi esterni fino alla prima corrispondenza. Integer 1 equivale a Decimal 1.0, non a String "1". Maiuscole e minuscole sono distinte.

1. ArrayContains

Controlla il tipo e confronta gli elementi esterni fino alla prima corrispondenza. Integer 1 equivale a Decimal 1.0, non a String "1". Maiuscole e minuscole sono distinte.

Integer booleano: 1/True se presente, altrimenti 0/False. Si può usare If ArrayContains(...) o confrontare con True/1. Non è un indice né un conteggio.

Sorgente del progetto: external/InjectionScript/src/InjectionScript/Runtime/InjectionApi.cs; funzione ArrayContains.

2. Equals

Controlla il tipo e confronta gli elementi esterni fino alla prima corrispondenza. Integer 1 equivale a Decimal 1.0, non a String "1". Maiuscole e minuscole sono distinte.

Array annidati e oggetti di riferimento si confrontano per identità. Eccezione: valori Structure dello stesso tipo dichiarato con campi uguali sono uguali; i campi Array/Object mantengono le proprie regole. Nessuna ricorsione; array vuoto: 0. Le celle non inizializzate contengono Unit e possono corrispondere a Unit.

Sorgente del progetto: external/InjectionScript/src/InjectionScript/Runtime/InjectionValue.cs; funzione Equals.

3. ValueEquals

Array annidati e oggetti di riferimento si confrontano per identità. Eccezione: valori Structure dello stesso tipo dichiarato con campi uguali sono uguali; i campi Array/Object mantengono le proprie regole. Nessuna ricorsione; array vuoto: 0. Le celle non inizializzate contengono Unit e possono corrispondere a Unit.

Integer booleano: 1/True se presente, altrimenti 0/False. Si può usare If ArrayContains(...) o confrontare con True/1. Non è un indice né un conteggio.

Sorgente del progetto: external/InjectionScript/src/InjectionScript/Runtime/ObjectTypes/StructureObject.cs; funzione ValueEquals.

Array annidati e oggetti di riferimento si confrontano per identità. Eccezione: valori Structure dello stesso tipo dichiarato con campi uguali sono uguali; i campi Array/Object mantengono le proprie regole. Nessuna ricorsione; array vuoto: 0. Le celle non inizializzate contengono Unit e possono corrispondere a Unit.

Esempi

Grafiche consentite

# Grafiche consentite
#
# Verifica se un valore è fra gli elementi consentiti o già elaborati di un array.
#
# Integer booleano: 1/True se presente, altrimenti 0/False. Si può usare If ArrayContains(...) o
# confrontare con True/1. Non è un indice né un conteggio.

SUB Main()
    # 0x0EED è nell’elenco: risultato allowed. Nessun oggetto viene cercato o spostato.
    # Query locale: nessun server, spostamento o modifica dell’array. Gli esempi usano dati
    # prestabiliti, non l’inventario corrente.

    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

Spiegazione dei parametri e dell’esecuzione:

  • 0x0EED è nell’elenco: risultato allowed. Nessun oggetto viene cercato o spostato.
  • Query locale: nessun server, spostamento o modifica dell’array. Gli esempi usano dati prestabiliti, non l’inventario corrente.

Non elaborare due volte un serial

# Non elaborare due volte un serial
#
# Verifica se un valore è fra gli elementi consentiti o già elaborati di un array.
#
# Integer booleano: 1/True se presente, altrimenti 0/False. Si può usare If ArrayContains(...) o
# confrontare con True/1. Non è un indice né un conteggio.

SUB Main()
    # ASC converte il testo esadecimale in Integer. Il serial noto dà already queued; la String
    # originale non corrisponderebbe al numero.
    # Query locale: nessun server, spostamento o modifica dell’array. Gli esempi usano dati
    # prestabiliti, non l’inventario corrente.

    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

Spiegazione dei parametri e dell’esecuzione:

  • ASC converte il testo esadecimale in Integer. Il serial noto dà already queued; la String originale non corrisponderebbe al numero.
  • Query locale: nessun server, spostamento o modifica dell’array. Gli esempi usano dati prestabiliti, non l’inventario corrente.

Riferimenti ai punti

# Riferimenti ai punti
#
# Verifica se un valore è fra gli elementi consentiti o già elaborati di un array.
#
# Integer booleano: 1/True se presente, altrimenti 0/False. Si può usare If ArrayContains(...) o
# confrontare con True/1. Non è un indice né un conteggio.

SUB Main()
    # route contiene point, non sameCoordinates. Coordinate uguali non rendono identici due array:
    # risultato 1|0.
    # Query locale: nessun server, spostamento o modifica dell’array. Gli esempi usano dati
    # prestabiliti, non l’inventario corrente.

    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

Spiegazione dei parametri e dell’esecuzione:

  • route contiene point, non sameCoordinates. Coordinate uguali non rendono identici due array: risultato 1|0.
  • Query locale: nessun server, spostamento o modifica dell’array. Gli esempi usano dati prestabiliti, non l’inventario corrente.

Clone this wiki locally