Skip to content

API ArrayContains fr

Codex edited this page Oct 4, 2026 · 1 revision

ArrayContains

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

API · Basic

ClassicUO • Runtime API

Vérifie la présence dans un tableau de valeurs autorisées ou déjà traitées.

Syntaxe exacte

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

Paramètres

  • array — Array à examiner ; tout autre type renvoie 0.
  • pattern — Valeur quelconque recherchée parmi les éléments directs.

Retour

Integer booléen : 1/True si trouvé, sinon 0/False. If ArrayContains(...) ou comparaison à True/1 convient. Ce n’est ni un indice ni un nombre de résultats.

Comportement

  • Requête locale sans serveur, déplacement ni modification du tableau. Les exemples utilisent des données fixes, pas l’inventaire réel.
  • Vérifie le type puis compare les éléments externes jusqu’au premier résultat. Integer 1 égale Decimal 1.0, mais pas String "1". La casse des chaînes compte.
  • Array imbriqués et objets de référence sont comparés par identité. Exception : les valeurs Structure du même type déclaré et de champs égaux sont égales ; les champs Array/Object gardent leurs règles. Pas de récursion ; tableau vide : 0. Les cases non initialisées contiennent Unit et peuvent correspondre à Unit.

Fonctions internes : de l’appel au résultat

Vérifie le type puis compare les éléments externes jusqu’au premier résultat. Integer 1 égale Decimal 1.0, mais pas String "1". La casse des chaînes compte.

1. ArrayContains

Vérifie le type puis compare les éléments externes jusqu’au premier résultat. Integer 1 égale Decimal 1.0, mais pas String "1". La casse des chaînes compte.

Integer booléen : 1/True si trouvé, sinon 0/False. If ArrayContains(...) ou comparaison à True/1 convient. Ce n’est ni un indice ni un nombre de résultats.

Source du projet: external/InjectionScript/src/InjectionScript/Runtime/InjectionApi.cs; fonction ArrayContains.

2. Equals

Vérifie le type puis compare les éléments externes jusqu’au premier résultat. Integer 1 égale Decimal 1.0, mais pas String "1". La casse des chaînes compte.

Array imbriqués et objets de référence sont comparés par identité. Exception : les valeurs Structure du même type déclaré et de champs égaux sont égales ; les champs Array/Object gardent leurs règles. Pas de récursion ; tableau vide : 0. Les cases non initialisées contiennent Unit et peuvent correspondre à Unit.

Source du projet: external/InjectionScript/src/InjectionScript/Runtime/InjectionValue.cs; fonction Equals.

3. ValueEquals

Array imbriqués et objets de référence sont comparés par identité. Exception : les valeurs Structure du même type déclaré et de champs égaux sont égales ; les champs Array/Object gardent leurs règles. Pas de récursion ; tableau vide : 0. Les cases non initialisées contiennent Unit et peuvent correspondre à Unit.

Integer booléen : 1/True si trouvé, sinon 0/False. If ArrayContains(...) ou comparaison à True/1 convient. Ce n’est ni un indice ni un nombre de résultats.

Source du projet: external/InjectionScript/src/InjectionScript/Runtime/ObjectTypes/StructureObject.cs; fonction ValueEquals.

Array imbriqués et objets de référence sont comparés par identité. Exception : les valeurs Structure du même type déclaré et de champs égaux sont égales ; les champs Array/Object gardent leurs règles. Pas de récursion ; tableau vide : 0. Les cases non initialisées contiennent Unit et peuvent correspondre à Unit.

Exemples

Autoriser des graphismes

# Autoriser des graphismes
#
# Vérifie la présence dans un tableau de valeurs autorisées ou déjà traitées.
#
# Integer booléen : 1/True si trouvé, sinon 0/False. If ArrayContains(...) ou comparaison à
# True/1 convient. Ce n’est ni un indice ni un nombre de résultats.

SUB Main()
    # 0x0EED figure dans la liste : résultat allowed. Aucun objet n’est recherché ni déplacé.
    # Requête locale sans serveur, déplacement ni modification du tableau. Les exemples utilisent
    # des données fixes, pas l’inventaire réel.

    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

Explication des paramètres et du déroulement:

  • 0x0EED figure dans la liste : résultat allowed. Aucun objet n’est recherché ni déplacé.
  • Requête locale sans serveur, déplacement ni modification du tableau. Les exemples utilisent des données fixes, pas l’inventaire réel.

Éviter un serial déjà traité

# Éviter un serial déjà traité
#
# Vérifie la présence dans un tableau de valeurs autorisées ou déjà traitées.
#
# Integer booléen : 1/True si trouvé, sinon 0/False. If ArrayContains(...) ou comparaison à
# True/1 convient. Ce n’est ni un indice ni un nombre de résultats.

SUB Main()
    # ASC convertit explicitement le texte hexadécimal en Integer. Le serial connu donne already
    # queued ; le String initial ne correspondrait pas au nombre.
    # Requête locale sans serveur, déplacement ni modification du tableau. Les exemples utilisent
    # des données fixes, pas l’inventaire réel.

    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

Explication des paramètres et du déroulement:

  • ASC convertit explicitement le texte hexadécimal en Integer. Le serial connu donne already queued ; le String initial ne correspondrait pas au nombre.
  • Requête locale sans serveur, déplacement ni modification du tableau. Les exemples utilisent des données fixes, pas l’inventaire réel.

Références des points du trajet

# Références des points du trajet
#
# Vérifie la présence dans un tableau de valeurs autorisées ou déjà traitées.
#
# Integer booléen : 1/True si trouvé, sinon 0/False. If ArrayContains(...) ou comparaison à
# True/1 convient. Ce n’est ni un indice ni un nombre de résultats.

SUB Main()
    # route contient point, pas sameCoordinates. Les mêmes coordonnées ne rendent pas deux tableaux
    # identiques : résultat 1|0.
    # Requête locale sans serveur, déplacement ni modification du tableau. Les exemples utilisent
    # des données fixes, pas l’inventaire réel.

    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

Explication des paramètres et du déroulement:

  • route contient point, pas sameCoordinates. Les mêmes coordonnées ne rendent pas deux tableaux identiques : résultat 1|0.
  • Requête locale sans serveur, déplacement ni modification du tableau. Les exemples utilisent des données fixes, pas l’inventaire réel.

Clone this wiki locally