Skip to content

API ArrayContains uk

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 Boolean: 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 Boolean: 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 Boolean: 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 Boolean: 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 Boolean: 1/True при збігу, інакше 0/False. Можна If ArrayContains(...) або порівняння
# з True/1. Це не індекс і не кількість.

SUB Main()
    # ASC перетворює hex-рядок на 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 перетворює hex-рядок на Integer. Відомий serial дає already queued; початковий String не збігся б із числом.
  • Локальна перевірка без запитів до сервера, переміщення предметів або зміни масиву. Приклади використовують задані дані, не поточний інвентар.

Посилання на точки маршруту

# Посилання на точки маршруту
#
# Перевіряє наявність значення серед дозволених або вже оброблених елементів масиву.
#
# Integer Boolean: 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