Skip to content

API ArrayContains de

Codex edited this page Oct 4, 2026 · 1 revision

ArrayContains

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

API · Basic

ClassicUO • Runtime API

Prüft, ob ein Wert in einer erlaubten oder bereits verarbeiteten Array-Liste liegt.

Genaue Syntax

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

Parameter

  • array — Zu prüfendes Array; andere Wertarten ergeben 0.
  • pattern — Beliebiger gesuchter Wert unter den direkten Elementen.

Rückgabewert

Integer Boolean: 1/True bei Treffer, sonst 0/False. If ArrayContains(...) oder Vergleich mit True/1 ist möglich. Kein Index und keine Trefferzahl.

Verhalten

  • Lokale Abfrage ohne Serverzugriff, Gegenstandsbewegung oder Änderung des Arrays. Die Beispiele verwenden feste Beispieldaten, kein aktuelles Inventar.
  • Prüft die Wertart und vergleicht äußere Elemente bis zum ersten Treffer. Integer 1 entspricht Decimal 1.0, aber nicht String "1". Zeichenketten beachten Groß-/Kleinschreibung.
  • Verschachtelte Arrays und Referenzobjekte werden über Identität verglichen. Ausnahme: Structure-Werte desselben deklarierten Typs mit gleichen Feldern sind gleich; Array/Object-Felder behalten ihre eigenen Vergleichsregeln. Keine Rekursion; leeres Array ergibt 0. Unbelegte Plätze enthalten Unit und können Unit entsprechen.

Interne Funktionen: vom Aufruf zum Ergebnis

Prüft die Wertart und vergleicht äußere Elemente bis zum ersten Treffer. Integer 1 entspricht Decimal 1.0, aber nicht String "1". Zeichenketten beachten Groß-/Kleinschreibung.

1. ArrayContains

Prüft die Wertart und vergleicht äußere Elemente bis zum ersten Treffer. Integer 1 entspricht Decimal 1.0, aber nicht String "1". Zeichenketten beachten Groß-/Kleinschreibung.

Integer Boolean: 1/True bei Treffer, sonst 0/False. If ArrayContains(...) oder Vergleich mit True/1 ist möglich. Kein Index und keine Trefferzahl.

Projektquelle: external/InjectionScript/src/InjectionScript/Runtime/InjectionApi.cs; Funktion ArrayContains.

2. Equals

Prüft die Wertart und vergleicht äußere Elemente bis zum ersten Treffer. Integer 1 entspricht Decimal 1.0, aber nicht String "1". Zeichenketten beachten Groß-/Kleinschreibung.

Verschachtelte Arrays und Referenzobjekte werden über Identität verglichen. Ausnahme: Structure-Werte desselben deklarierten Typs mit gleichen Feldern sind gleich; Array/Object-Felder behalten ihre eigenen Vergleichsregeln. Keine Rekursion; leeres Array ergibt 0. Unbelegte Plätze enthalten Unit und können Unit entsprechen.

Projektquelle: external/InjectionScript/src/InjectionScript/Runtime/InjectionValue.cs; Funktion Equals.

3. ValueEquals

Verschachtelte Arrays und Referenzobjekte werden über Identität verglichen. Ausnahme: Structure-Werte desselben deklarierten Typs mit gleichen Feldern sind gleich; Array/Object-Felder behalten ihre eigenen Vergleichsregeln. Keine Rekursion; leeres Array ergibt 0. Unbelegte Plätze enthalten Unit und können Unit entsprechen.

Integer Boolean: 1/True bei Treffer, sonst 0/False. If ArrayContains(...) oder Vergleich mit True/1 ist möglich. Kein Index und keine Trefferzahl.

Projektquelle: external/InjectionScript/src/InjectionScript/Runtime/ObjectTypes/StructureObject.cs; Funktion ValueEquals.

Verschachtelte Arrays und Referenzobjekte werden über Identität verglichen. Ausnahme: Structure-Werte desselben deklarierten Typs mit gleichen Feldern sind gleich; Array/Object-Felder behalten ihre eigenen Vergleichsregeln. Keine Rekursion; leeres Array ergibt 0. Unbelegte Plätze enthalten Unit und können Unit entsprechen.

Beispiele

Erlaubte Gegenstandsgrafiken

# Erlaubte Gegenstandsgrafiken
#
# Prüft, ob ein Wert in einer erlaubten oder bereits verarbeiteten Array-Liste liegt.
#
# Integer Boolean: 1/True bei Treffer, sonst 0/False. If ArrayContains(...) oder Vergleich mit
# True/1 ist möglich. Kein Index und keine Trefferzahl.

SUB Main()
    # 0x0EED steht in der Liste: Ergebnis allowed. Kein Gegenstand wird gesucht oder bewegt.
    # Lokale Abfrage ohne Serverzugriff, Gegenstandsbewegung oder Änderung des Arrays. Die Beispiele
    # verwenden feste Beispieldaten, kein aktuelles Inventar.

    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

Erläuterung der Parameter und Ausführung:

  • 0x0EED steht in der Liste: Ergebnis allowed. Kein Gegenstand wird gesucht oder bewegt.
  • Lokale Abfrage ohne Serverzugriff, Gegenstandsbewegung oder Änderung des Arrays. Die Beispiele verwenden feste Beispieldaten, kein aktuelles Inventar.

Eine Seriennummer nur einmal bearbeiten

# Eine Seriennummer nur einmal bearbeiten
#
# Prüft, ob ein Wert in einer erlaubten oder bereits verarbeiteten Array-Liste liegt.
#
# Integer Boolean: 1/True bei Treffer, sonst 0/False. If ArrayContains(...) oder Vergleich mit
# True/1 ist möglich. Kein Index und keine Trefferzahl.

SUB Main()
    # ASC wandelt die Hex-Einstellung ausdrücklich in Integer um. Die bekannte Seriennummer ergibt
    # already queued; der ursprüngliche String passt nicht zur Zahl.
    # Lokale Abfrage ohne Serverzugriff, Gegenstandsbewegung oder Änderung des Arrays. Die Beispiele
    # verwenden feste Beispieldaten, kein aktuelles Inventar.

    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

Erläuterung der Parameter und Ausführung:

  • ASC wandelt die Hex-Einstellung ausdrücklich in Integer um. Die bekannte Seriennummer ergibt already queued; der ursprüngliche String passt nicht zur Zahl.
  • Lokale Abfrage ohne Serverzugriff, Gegenstandsbewegung oder Änderung des Arrays. Die Beispiele verwenden feste Beispieldaten, kein aktuelles Inventar.

Referenzen auf Routenpunkte

# Referenzen auf Routenpunkte
#
# Prüft, ob ein Wert in einer erlaubten oder bereits verarbeiteten Array-Liste liegt.
#
# Integer Boolean: 1/True bei Treffer, sonst 0/False. If ArrayContains(...) oder Vergleich mit
# True/1 ist möglich. Kein Index und keine Trefferzahl.

SUB Main()
    # route enthält point, nicht sameCoordinates. Gleiche Koordinaten sind keine identische
    # Array-Referenz: Ergebnis 1|0.
    # Lokale Abfrage ohne Serverzugriff, Gegenstandsbewegung oder Änderung des Arrays. Die Beispiele
    # verwenden feste Beispieldaten, kein aktuelles Inventar.

    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

Erläuterung der Parameter und Ausführung:

  • route enthält point, nicht sameCoordinates. Gleiche Koordinaten sind keine identische Array-Referenz: Ergebnis 1|0.
  • Lokale Abfrage ohne Serverzugriff, Gegenstandsbewegung oder Änderung des Arrays. Die Beispiele verwenden feste Beispieldaten, kein aktuelles Inventar.

Clone this wiki locally