Skip to content

API ArrayContains ja

Codex edited this page Oct 4, 2026 · 1 revision

ArrayContains

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

API · Basic

ClassicUO • Runtime API

許可済み・処理済みの配列に値が含まれるかを調べます。

正確な構文

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

パラメーター

  • array — 検索対象の Array。他の種類なら 0。
  • pattern — 直接の要素から探す任意の値。

戻り値

Integer の真偽値。一致なら 1/True、それ以外は 0/False。If ArrayContains(...) または True/1 との比較が使えます。添字や一致数ではありません。

動作

  • ローカル処理です。サーバーへの要求、アイテムの移動、配列の変更は行いません。例は現在の所持品ではなく固定データを使います。
  • 種類を確認し、外側の要素を最初の一致まで比較します。Integer 1 と Decimal 1.0 は等しいですが String "1" とは異なります。文字列は大文字小文字を区別します。
  • 入れ子の Array と参照 Object は参照で比較します。例外として、同じ宣言型の Structure は各フィールドが等しければ等しい値です。Array/Object フィールドにはそれぞれの比較規則が適用されます。再帰検索なし。空配列は 0。未初期化の要素は Unit なので Unit と一致する場合があります。

内部関数:呼び出しから結果まで

種類を確認し、外側の要素を最初の一致まで比較します。Integer 1 と Decimal 1.0 は等しいですが String "1" とは異なります。文字列は大文字小文字を区別します。

1. ArrayContains

種類を確認し、外側の要素を最初の一致まで比較します。Integer 1 と Decimal 1.0 は等しいですが String "1" とは異なります。文字列は大文字小文字を区別します。

Integer の真偽値。一致なら 1/True、それ以外は 0/False。If ArrayContains(...) または True/1 との比較が使えます。添字や一致数ではありません。

プロジェクトのソース: external/InjectionScript/src/InjectionScript/Runtime/InjectionApi.cs; 関数 ArrayContains.

2. Equals

種類を確認し、外側の要素を最初の一致まで比較します。Integer 1 と Decimal 1.0 は等しいですが String "1" とは異なります。文字列は大文字小文字を区別します。

入れ子の Array と参照 Object は参照で比較します。例外として、同じ宣言型の Structure は各フィールドが等しければ等しい値です。Array/Object フィールドにはそれぞれの比較規則が適用されます。再帰検索なし。空配列は 0。未初期化の要素は Unit なので Unit と一致する場合があります。

プロジェクトのソース: external/InjectionScript/src/InjectionScript/Runtime/InjectionValue.cs; 関数 Equals.

3. ValueEquals

入れ子の Array と参照 Object は参照で比較します。例外として、同じ宣言型の Structure は各フィールドが等しければ等しい値です。Array/Object フィールドにはそれぞれの比較規則が適用されます。再帰検索なし。空配列は 0。未初期化の要素は Unit なので Unit と一致する場合があります。

Integer の真偽値。一致なら 1/True、それ以外は 0/False。If ArrayContains(...) または True/1 との比較が使えます。添字や一致数ではありません。

プロジェクトのソース: external/InjectionScript/src/InjectionScript/Runtime/ObjectTypes/StructureObject.cs; 関数 ValueEquals.

入れ子の Array と参照 Object は参照で比較します。例外として、同じ宣言型の Structure は各フィールドが等しければ等しい値です。Array/Object フィールドにはそれぞれの比較規則が適用されます。再帰検索なし。空配列は 0。未初期化の要素は Unit なので Unit と一致する場合があります。

使用例

許可するアイテム画像番号

# 許可するアイテム画像番号
#
# 許可済み・処理済みの配列に値が含まれるかを調べます。
#
# Integer の真偽値。一致なら 1/True、それ以外は 0/False。If ArrayContains(...) または True/1
# との比較が使えます。添字や一致数ではありません。

SUB Main()
    # 一覧に 0x0EED があるので allowed を返します。アイテムの検索や移動は行いません。
    # ローカル処理です。サーバーへの要求、アイテムの移動、配列の変更は行いません。例は現在の所持品ではなく固定データを使います。

    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

パラメーターと実行の説明:

  • 一覧に 0x0EED があるので allowed を返します。アイテムの検索や移動は行いません。
  • ローカル処理です。サーバーへの要求、アイテムの移動、配列の変更は行いません。例は現在の所持品ではなく固定データを使います。

同じ serial の重複処理を防ぐ

# 同じ serial の重複処理を防ぐ
#
# 許可済み・処理済みの配列に値が含まれるかを調べます。
#
# Integer の真偽値。一致なら 1/True、それ以外は 0/False。If ArrayContains(...) または True/1
# との比較が使えます。添字や一致数ではありません。

SUB Main()
    # ASC で16進文字列を Integer に変換します。登録済みの serial は already queued を返します。元の String は数値と一致しません。
    # ローカル処理です。サーバーへの要求、アイテムの移動、配列の変更は行いません。例は現在の所持品ではなく固定データを使います。

    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

パラメーターと実行の説明:

  • ASC で16進文字列を Integer に変換します。登録済みの serial は already queued を返します。元の String は数値と一致しません。
  • ローカル処理です。サーバーへの要求、アイテムの移動、配列の変更は行いません。例は現在の所持品ではなく固定データを使います。

経路の点の参照

# 経路の点の参照
#
# 許可済み・処理済みの配列に値が含まれるかを調べます。
#
# Integer の真偽値。一致なら 1/True、それ以外は 0/False。If ArrayContains(...) または True/1
# との比較が使えます。添字や一致数ではありません。

SUB Main()
    # route は point の参照を含み、sameCoordinates は含みません。座標が等しくても別配列なので結果は 1|0。
    # ローカル処理です。サーバーへの要求、アイテムの移動、配列の変更は行いません。例は現在の所持品ではなく固定データを使います。

    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

パラメーターと実行の説明:

  • route は point の参照を含み、sameCoordinates は含みません。座標が等しくても別配列なので結果は 1|0。
  • ローカル処理です。サーバーへの要求、アイテムの移動、配列の変更は行いません。例は現在の所持品ではなく固定データを使います。

Clone this wiki locally