Skip to content

API GetArrayLength uk

Codex edited this page Oct 4, 2026 · 1 revision

GetArrayLength

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

API · Basic

ClassicUO • Runtime API

Рахує безпосередні комірки Array для безпечного перебору та індексування.

Точний синтаксис

GetArrayLength(arg:Any) -> Any

Параметри

  • arg — Будь-яке значення BASIC. Array дає зовнішній Length; String, число, Object і Unit дають 0.

Повертає

Integer >= 0. Порожній Array та інший тип дають 0, тому це не перевірка типу. Кількість, не Boolean і не останній індекс.

Поведінка

  • Локальна перевірка без запитів до сервера, переміщення предметів або зміни масиву. Приклади використовують задані дані, не поточний інвентар.
  • Перевіряє вид і читає Array.Length без обходу. DIM values(2) створює три комірки 0..2, включно з незаповненими.
  • Вкладені елементи не підсумовуються. Для String є Len; для List/Dictionary — їх Count. UO.GetArrayLength — сумісне ім’я тієї самої локальної перевірки.

Внутрішні функції: від виклику до результату

Перевіряє вид і читає Array.Length без обходу. DIM values(2) створює три комірки 0..2, включно з незаповненими.

1. GetArrayLength

Перевіряє вид і читає Array.Length без обходу. DIM values(2) створює три комірки 0..2, включно з незаповненими.

Integer >= 0. Порожній Array та інший тип дають 0, тому це не перевірка типу. Кількість, не Boolean і не останній індекс.

Код проєкту: external/InjectionScript/src/InjectionScript/Runtime/InternalSubrutines.cs; функція GetArrayLength.

Вкладені елементи не підсумовуються. Для String є Len; для List/Dictionary — їх Count. UO.GetArrayLength — сумісне ім’я тієї самої локальної перевірки.

Приклади

Підсумувати кількості

# Підсумувати кількості
#
# Рахує безпосередні комірки Array для безпечного перебору та індексування.
#
# Integer >= 0. Порожній Array та інший тип дають 0, тому це не перевірка типу. Кількість, не
# Boolean і не останній індекс.

SUB Main()
    # Три записи перебираються за індексами 0..2; цикл повертає 150. Суми не обчислює сама
    # GetArrayLength.
    # Локальна перевірка без запитів до сервера, переміщення предметів або зміни масиву. Приклади
    # використовують задані дані, не поточний інвентар.

    Dim amounts(2)
    amounts[0] = 50
    amounts[1] = 75
    amounts[2] = 25
    Dim total = 0
    For index = 0 To GetArrayLength(amounts) - 1
        total += amounts[index]
    Next
    Return total
END SUB

Пояснення параметрів і виконання:

  • Три записи перебираються за індексами 0..2; цикл повертає 150. Суми не обчислює сама GetArrayLength.
  • Локальна перевірка без запитів до сервера, переміщення предметів або зміни масиву. Приклади використовують задані дані, не поточний інвентар.

Точки й координати

# Точки й координати
#
# Рахує безпосередні комірки Array для безпечного перебору та індексування.
#
# Integer >= 0. Порожній Array та інший тип дають 0, тому це не перевірка типу. Кількість, не
# Boolean і не останній індекс.

SUB Main()
    # Дві точки по три поля: результат 2|3, не шість. Персонаж не рухається.
    # Локальна перевірка без запитів до сервера, переміщення предметів або зміни масиву. Приклади
    # використовують задані дані, не поточний інвентар.

    Dim first(2)
    first[0] = 100
    first[1] = 200
    first[2] = 0
    Dim second(2)
    second[0] = 101
    second[1] = 200
    second[2] = 0
    Dim route(1)
    route[0] = first
    route[1] = second
    Return CStr(GetArrayLength(route)) & "|" & CStr(GetArrayLength(route[0]))
END SUB

Пояснення параметрів і виконання:

  • Дві точки по три поля: результат 2|3, не шість. Персонаж не рухається.
  • Локальна перевірка без запитів до сервера, переміщення предметів або зміни масиву. Приклади використовують задані дані, не поточний інвентар.

Захист першого індексу

# Захист першого індексу
#
# Рахує безпосередні комірки Array для безпечного перебору та індексування.
#
# Integer >= 0. Порожній Array та інший тип дають 0, тому це не перевірка типу. Кількість, не
# Boolean і не останній індекс.

SUB Main()
    # String дає 0: результат no route до читання індексу. Так само перевіряється порожній Array,
    # але випадки не розрізняються.
    # Локальна перевірка без запитів до сервера, переміщення предметів або зміни масиву. Приклади
    # використовують задані дані, не поточний інвентар.

    Dim route = "not an array"
    If GetArrayLength(route) = 0 Then
        Return "no route"
    End If
    Return route[0]
END SUB

Пояснення параметрів і виконання:

  • String дає 0: результат no route до читання індексу. Так само перевіряється порожній Array, але випадки не розрізняються.
  • Локальна перевірка без запитів до сервера, переміщення предметів або зміни масиву. Приклади використовують задані дані, не поточний інвентар.

Clone this wiki locally