-
Notifications
You must be signed in to change notification settings - Fork 0
API ArrayContains de
Русский · English · Українська · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
ClassicUO • Runtime API
Prüft, ob ein Wert in einer erlaubten oder bereits verarbeiteten Array-Liste liegt.
ArrayContains(array:Any, pattern:Any) -> Integer
-
array— Zu prüfendes Array; andere Wertarten ergeben 0. -
pattern— Beliebiger gesuchter Wert unter den direkten Elementen.
Integer Boolean: 1/True bei Treffer, sonst 0/False. If ArrayContains(...) oder Vergleich mit True/1 ist möglich. Kein Index und keine Trefferzahl.
- 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.
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.
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.
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.
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.
# 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 SUBErlä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
#
# 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 SUBErlä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
#
# 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 SUBErlä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.
ClassicUO
Bad Newbie & Basic IDE
Найти в справочнике
Клиент и скрипты
Каталоги значений
Разработка и помощь