-
Notifications
You must be signed in to change notification settings - Fork 0
API ArrayContains uk
Русский · English · Українська · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
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". Регістр рядків враховується.
Перевіряє вид і порівнює зовнішні елементи до першого збігу. 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.
Перевіряє вид і порівнює зовнішні елементи до першого збігу. Integer 1 дорівнює Decimal 1.0, але не String "1". Регістр рядків враховується.
Вкладені Array та посилальні Object порівнюються за посиланням. Виняток — Structure: той самий оголошений тип і рівні поля дають рівність; поля Array/Object зберігають власні правила. Рекурсії немає; порожній масив дає 0. Незаповнені комірки містять Unit і можуть збігтися з Unit.
Код проєкту: external/InjectionScript/src/InjectionScript/Runtime/InjectionValue.cs; функція Equals.
Вкладені 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 двічі
#
# Перевіряє наявність значення серед дозволених або вже оброблених елементів масиву.
#
# 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.
- Локальна перевірка без запитів до сервера, переміщення предметів або зміни масиву. Приклади використовують задані дані, не поточний інвентар.
ClassicUO
Bad Newbie & Basic IDE
Найти в справочнике
Клиент и скрипты
Каталоги значений
Разработка и помощь